【问题标题】:apache ScriptAlias cgi-bin directoryapache ScriptAlias cgi-bin 目录
【发布时间】:2013-09-25 00:41:58
【问题描述】:

这对我来说已经困扰了好几天了,我终于能够解决它。

我正在开发 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 的行应该是什么?

【问题讨论】:

  • 你查看过服务器的错误日志吗?
  • 我做了,实际上没有记录。我放弃了,同时我正在使用 nginx(以防万一有人想尝试它......现在我的问题是 perl 本身)

标签: apache cgi fedora


【解决方案1】:

确实,检查错误日志 (/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。

【讨论】:

    【解决方案2】:

    此方案适用于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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      相关资源
      最近更新 更多