如何允许perl cgi-bin脚本运行系统命令?

时间:2015-02-11 06:28:06

标签: apache perl permission-denied 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()函数来运行一些系统命令。 它给了Can&#39t exec,没有这样的文件或目录 或许可被拒绝。

什么应该添加apache配置以允许cgi-bin运行这些命令?

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,发现问题并修复。

我遵循的步骤:

apt-get install apache2-suexec-custom
a2enmod suexec
/etc/init.d/apache2 reload

然后转到网站apache config并添加SuexecUserGroup asterisk asterisk 在这里星号是我没有运行命令的权限。

然后转到/etc/apache2/suexec/www-data,您会看到2条非评论行。我们需要为cgi-bin提供正确的绝对路径,为cgi-bin提供别名路径。默认情况下,它有/var/wwwpublic_html/cgi-bin

那就是它。这解决了我的问题。