1

这几天来一直是我的问题,我已经能够解决它。

我正在使用 Fedora 14 并使用 Apache/2.2.17 (Unix)

文档根目录是 /var/www 并且在我的 httpd.conf 中配置得很好

我在 /var/www 中有几个文件夹,其中包含需要运行 CGI 的 perl 文件,相反,有时 perl 文件作为下载提供,有时会出现错误 500

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求。

请联系服务器管理员 root@localhost 并告知他们错误发生的时间,以及您所做的任何可能导致错误的事情。

服务器错误日志中可能提供有关此错误的更多信息。

cgi_module 正在加载,即使我使用 ScriptAlias 和目录标记,文件仍然没有被脚本运行。

我什至尝试创建一个虚拟主机,但它不起作用。

例如,如果我想要一个位于 apache 根目录 (/var/www) 内的名为“pyl”的目录,那么 httpd.conf 的行会是什么?

4

2 回答 2

6

事实上,检查错误日志(/var/log/apache2/error.log?),检查您的文件和目录权限。

还要确保您的ScriptAlias指令已正确更新。

因此,请查看您的站点配置文件(即sites-available/default)并更改它:

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">

..对此:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">

..并重新加载apache2。

于 2013-11-15T23:58:31.217 回答
1

本方案适用于Apache2.4.51版本或其他版本。目录结构可以随版本而变化。

  1. 更改下面的默认 CGI 配置文件:

    nano /etc/apache2/conf-available/serve-cgi-bin.conf
    

    改变:

    ScriptAlias /cgi/ /home/user/your-folder
                 <Directory "/home/user/your-folder">
    
  2. 将您的*.cgi, *.py, *.sh, 等文件移动到您的文件夹

  3. 应用chmod 755到您的文件夹:

    chmod 755 /your-folder
    
  4. 重启apache2:

    systemctl restart apache2
    

您可以运行的示例 pyhton 代码:

nano /home/user/your-folder/pythonapp.py

代码:

#!/usr/bin/python3
print("Content-type:text/html")
print()
print("""
        <!doctype html>
        <html><head></head><title>CGI-Python</title>
        <body> Python App </body>
        </html>
        """)

保存并运行您的网址:

server-ip-or-host/cgi/pythonapp.py
于 2021-12-26T23:07:15.527 回答