Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过浏览器在php中执行系统调用?_Php_C_Apache_Shell Exec_Gnupg - Fatal编程技术网

如何通过浏览器在php中执行系统调用?

如何通过浏览器在php中执行系统调用?,php,c,apache,shell-exec,gnupg,Php,C,Apache,Shell Exec,Gnupg,我有一个C程序,系统调用centOS 6.0对文件进行加密,我的代码是: #include <stdlib.h> int main () { system ("gpg -c --batch --passphrase mypass file.txt"); return 0; } 我选择编写c程序的原因是,我需要密码短语出现在代码中,但不可见,当我删除包含密码短语的.c文件时,我只剩下了.exe,没有可见的密码短语 我已通过发出以下命令将权限更改为apache用户: chown a

我有一个C程序,系统调用centOS 6.0对文件进行加密,我的代码是:

#include <stdlib.h>
int main () {
 system ("gpg -c --batch --passphrase mypass file.txt");
 return 0;
}
我选择编写c程序的原因是,我需要密码短语出现在代码中,但不可见,当我删除包含密码短语的.c文件时,我只剩下了.exe,没有可见的密码短语

我已通过发出以下命令将权限更改为apache用户:

chown apache.apache /var/www/html/
并在/etc/sudoers中添加了下一行:

apache   ALL=(ALL)    NOPASSWD:ALL
注意:我唯一遇到问题的命令是gpg,我可以使用我需要使用的任何其他命令进行系统调用,我甚至可以运行python脚本和其他不包含任何与gpg相关的C程序


我希望能尽快回复!我需要用很多这个加密文件

检查error\u log in/var/log/httpd/error\u log我看到了这一行:

gpg: Fatal: can't create directory `/var/www/.gnupg': Permission denied
然后我在这个网站上找到了一个解决方案->

我在gpg命令中添加了-homedir选项以及在apache的error.log中找到的路径,它工作得非常好


谢谢大家

你认为它是一个c文件是站不住脚的,把它放在一个php文件中,然后删除它。你能更具体一点吗?我不理解不能保存的部分。请使用gpg的绝对路径或确保它位于apache的路径中。实际上,在二进制文件上运行字符串将显示其中的纯文本密码短语,将其编译成二进制文件不会以任何方式混淆它。@dev null居住者我尝试过,但仍然没有任何结果,在哪里可以更改apache Web服务器使用的PATH变量?complex857感谢您提供的信息!但我仍然需要运行该命令。
gpg: Fatal: can't create directory `/var/www/.gnupg': Permission denied