2010-08-26 59 views
3

我就需要運行通過命令行Perl腳本的腳本工作(使用shell_exec())訪問。要設置我需要在我的終端上生成GPG密鑰的腳本,並將他們的公鑰導入我的GPG密鑰環中。如何使GPG密鑰PHP了shell_exec

perl腳本工作正常,當我運行它作爲root用戶,而是通過PHP運行時,它拋出此錯誤消息:

「錯誤試圖註冊請求時出錯」我認爲這意味着我以root用戶設置的GPG密鑰不能被用戶訪問PHP正在其下運行其shell命令(即apache)。

我應該如何解決這個問題?

我不知道我是否需要以apache身份登錄並導入密鑰,或者是否有命令以root用戶身份運行,以便將它們共享給apache用戶......任何想法都會很棒: )

回答

2

正確。顯然,你不希望一些像「apache」這樣的凡人用戶能夠以root身份簽名!

所以你需要爲apache用戶配置GPG。這通常很痛苦,因爲apache用戶通常無法獲得shell。

我會嘗試建立/home/<apache-user>目錄,如果不存在的話(可能沒有)。然後嘗試爲apache用戶設置GPG。您可以通過將--homedir=/home/<apache-user>傳遞給gpg二進制文件來使其以root身份工作。

+0

應該--homedir而不是--home -dir至少在我的gpg 2.0.8版本中 – 2013-03-17 21:27:09

3

,你可以這樣運行了下阿帕奇用戶一個shell:

su apache -s /bin/ksh 

,那麼你可以初始化GPG。注意阿帕奇默認的主目錄爲/ var/WWW,您可能需要:

chmod a+w /var/www 

,使GPG創建.gnupg子目錄

相關問題