为什么当我尝试访问 index.cgi 时会出现 (Apache2) 500?

为什么当我尝试访问 index.cgi 时会出现 (Apache2) 500?

index.cgi 及其父目录的模式为 755,由同一所有者拥有,即下面站点的 DocumentRoot。site-enabled/005-icons 文件具有:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName iconlibrary.mobi
    ServerAlias www.iconlibrary.mobi icon.stornge.com icons.stornge.com

    DocumentRoot /home/jonathan/ikon
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory /home/jonathan/ikon>
        Options ExecCGI Indexes FollowSymLinks MultiViews
        AllowOverride All
        AddHandler cgi-script .cgi
        DirectoryIndex index.cgi index.html
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

当我尝试从 Web 访问错误日志时,其中没有任何内容;当我尝试从命令行运行 index.cgi 时,它运行良好。

我认为 /index.cgi 无法运行可能是由于某些因素阻止 /*.cgi 运行而导致的副作用。我尝试将索引脚本作为 / 运行,然后作为 /index.cgi 运行,然后将其复制到 /icon.cgi,其行为与作为 / 或 /index.cgi 调用时的行为相同。

有什么建议吗?

- 编辑 -

在发帖之前,我浏览了 1 级技术支持问题:对于技术支持,“它插上电源了吗?它打开了吗?”我检查了日志并确认程序在从命令行执行时按预期运行,还检查了权限等。我真的希望得到 2 级或 3 级支持,而不是“检查您的日志文件;也许您有语法错误。”我在原始问题中已经说过,我检查了日志文件,当它提供 500 时什么也没有。

答案1

在这种情况下,500 错误通常意味着您的 CGI 脚本崩溃了。检查各种日志文件以查找线索,查找语法错误等。

相关内容