2010-01-07 78 views
0

我必須在PHP腳本導入GPG鍵,它的工作原理使用COMMANDE線GPG通過PHP密鑰導入不工作(在外殼作品)

gpg --import "/home/me/pubkey.txt" 

但使用PHP gpg類不起作用即使使用gnupg_import函數也可以使用import方法。

我的配置是:

  • 紅帽企業Linux 5
  • PHP 5.1.6
  • 的GnuPG 1.4.5
  • GPGME 1.1.8
  • GPG擴展1.3.1

我也試過使用execsystem的PHP函數,但沒有成功,使用相同的命令行(exec('cat "/home/me/pubkey.txt"')工作,因此文件是可讀的)。

編輯: 它可以在GnuPG 1.4.9,PHP 5.2.6的Unbuntu 9.10服務器上運行。

+0

什麼是錯誤信息? – 2010-01-07 10:37:24

+0

問題是沒有gnupg_geterror()給出的錯誤消息。沒有PHP警告,什麼都沒有。 – 2010-01-07 10:44:41

+0

您是否嘗試過使用可選引用參數執行exec和system,並且print_r它們的值? gpg可執行文件在safe_mode_exec_dir中嗎?例如。在我的Ubuntu上的貓在/ bin /中,而gpg在/ usr/bin /中,請參閱http://us.php.net/manual/en/function.exec.php上的註釋 – Residuum 2010-01-07 11:11:12

回答

1

Got it! 我是這個問題的人,Fabien在SO上發佈了這個問題。

這是一個文件權限問題:它試圖在/ root(HOME env var)上的.gnupg文件中寫入,但PHP無法寫入它。

我們必須更改此文件的權限,以便PHP可以在其中寫入或將其移至PHP可寫的目錄。

什麼是最佳解決方案?