我有一个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'中。 –