当 CGI 位于链接文件夹中时,Apache2 上的 CGI 脚本会给出 403 禁止错误

当 CGI 位于链接文件夹中时,Apache2 上的 CGI 脚本会给出 403 禁止错误

我正在运行 Ubuntu 16.04 作为虚拟机。我安装了 Apache2 2.4.18。

我有一个包含要使用的 cgi 脚本的文件夹。为此,我在 /usr/lib/cgi-bin 中放置了指向该文件夹的符号链接。

当我从 Firefox 调用脚本时localhost/cgi-bin/linkName/script.cgi出现 403 禁止错误。

当我将 script.cgi 复制到/usr/lib/cgi-bin并用 调用它时localhost/cgi-bin/script.cgi,它会运行,但由于缺少周围的文件和文件夹,因此会出现软件错误。

我有chmod 777链接和它链接到的文件夹,但仍然收到错误。

除了将所有文件和文件夹复制到之外我还能做什么/usr/lib/cgi-bin

答案1

这是因为符号链接指向的目录不在您的文件中列出的目录内。因此,您需要在您的(或或) 文件"virtualhost".conf中写下访问所需的指令。例如:/etc/apache2/apache2.conf/etc/apache2/sites-available/*.conf/etc/apache2/conf-available/*.conf/usr/lib/cgi-bin

Alias /cgi-bin/linkName /usr/lib/cgi-bin

<Directory /usr/lib/cgi-bin>
        Options +ExecCGI FollowSymLinks
        DirectoryIndex disabled
        AllowOverride None
        Require all granted
        # etc..   
</Directory>

也许(但我不确定是否有必要)sudo chown -R www-data:www-data /usr/lib/cgi-bin:。

如果您这样做了,Alias /cgi-bin/linkName /usr/lib/cgi-bin那么您不需要创建符号链接。

相关内容