我有一個C程序進行系統調用(CentOS的6.0),加密文件,我的代碼是:如何通過瀏覽器在php中執行系統調用?
#include <stdlib.h>
int main() {
system ("gpg -c --batch --passphrase mypass file.txt");
return 0;
}
可執行對象被稱爲encrypt_file 當我通過命令行運行./encrypt_file直接運行完全我得到我的file.txt.gpg,但是當我嘗試通過瀏覽器執行它,我沒有得到任何迴應。 代碼在PHP:
shell_exec("./encrypt_file");
我選擇了把交流計劃的原因是我需要的密碼是在代碼,但不可見的,當我刪除包含所有我已經離開了密碼.c文件是我的.exe並沒有可見的密碼。
我已經變的權限apache用戶通過發出以下內容:
chown apache.apache /var/www/html/
而且添加在/ etc/sudoers文件的下一行:
apache ALL=(ALL) NOPASSWD:ALL
注:唯一的命令我有問題是gpg,我可以使用任何其他需要使用的命令進行系統調用,甚至可以運行python腳本以及其他不包含任何與gpg相關的C程序。
希望快速回復!我需要使用很多這個encrypt_file!
你作爲一個c文件的原因是沒有水,把它放在一個php文件中,然後刪除它。 – 2013-07-07 20:30:38
請問你能更具體一點嗎?我不明白「不喝水」的部分。 – HIDS2013
使用絕對路徑到gpg或確保它在Apache的'PATH'中。 –