我目前正在开发一个perl脚本作为我的网站中的cgi-bin。如何让perl cgi-bin脚本运行系统命令?
我成功配置它运行没有任何问题。这里是我为它所做的配置。
ScriptAlias /cgi-bin/ /my web directory/cgi-bin/
<Directory /my web directory/cgi-bin/>
Options ExecCGI
AddHandler cgi-script cgi pl
</Directory>
但我不能在脚本中使用system()函数来运行一些系统命令。 它给不能执行,没有这样的文件或目录 或权限被拒绝。
什么应该添加你的Apache配置允许cgi-bin运行这些命令?
谢谢!
你怎么使用'system()'?你是否包括路径,例如:'system('/ bin/ls')'或者只是'system('ls')'?如果是后者,那么环境根本就没有路径的可能性非常大。 – PaulProgrammer 2015-02-11 06:31:06
如果它运行在'chroot'监狱里,那么监狱里可能不存在这个二进制文件 – tripleee 2015-02-11 06:39:32
Hi @PaulProgrammer,那么我只是试过系统('ls')和系统('/ bin/ls')命令而且两者都没有问题。我目前所做的就是试图运行系统(“/ var/lib/asterisk/bin/module_admin”,“reload”)或系统(“amportal a r”)。这些是freepbx星号服务的reload命令。我的脚本由星号:asterisk和/ var/lib/asterisk/bin/module_admin也是一样的。 – 2015-02-11 06:39:58