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

How to allow perl cgi-bin script to run system commands?

我目前正在开发一个 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 运行 这些命令?

谢谢!

好的,找到问题并修复。

我遵循的步骤:

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

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

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

就是这样。这解决了我的问题。