【问题标题】:Apache giving "No such file or directory" error when trying to run cgiApache 在尝试运行 cgi 时给出“没有这样的文件或目录”错误
【发布时间】:2015-08-15 03:09:01
【问题描述】:
No such file or directory: AH01241: exec of '/usr/lib/cgi-bin/haml.cgi' failed

这是我现在遇到的主要错误。尝试运行自定义 CGI,cgi 目前在我拥有的另一台服务器上成功运行,但似乎我忽略了该服务器上的一些配置选项。

我已将 cgi-bin 目录设置为允许执行 CGI:

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

我将 haml.cgi 的权限设置为 777,只是为了消除任何权限问题:

root@jp:/usr/lib/cgi-bin# ls -lah

total 16K
drwxr-xr-x  2 root www-data 4.0K Aug 14 18:28 .
drwxr-xr-x 64 root root     4.0K Oct 28  2014 ..
-rwxrwxrwx  1 root www-data  505 Aug 14 18:20 haml.cgi

我已启用 cgid:

root@jp:/etc/apache2# ls mods-enabled/
access_compat.load  alias.load       authz_core.load  autoindex.load  deflate.load  filter.load     mpm_event.load    setenvif.load
actions.conf        auth_basic.load  authz_host.load  cgid.conf       dir.conf      mime.conf       negotiation.conf  status.conf
actions.load        authn_core.load  authz_user.load  cgid.load       dir.load      mime.load       negotiation.load  status.load
alias.conf          authn_file.load  autoindex.conf   deflate.conf    env.load      mpm_event.conf  setenvif.conf

我的网站本身设置为 exec cgi:

DocumentRoot /home/j/web/
DirectoryIndex index.haml index.html
<Directory "/home/j/web">
    AllowOverride All
    Allow from All
    Options +ExecCGI
</Directory>

我在这里遗漏了什么吗?知道为什么 CGI 没有运行吗?

【问题讨论】:

    标签: apache ubuntu cgi


    【解决方案1】:

    实际上是我的 ruby​​ 安装给我带来了问题。直接运行 cgi 向我展示了这个:

    root@jp:/usr/lib/cgi-bin# ./haml.cgi
    bash: ./haml.cgi: /usr/bin/ruby: bad interpreter: No such file or directory
    

    【讨论】:

    • 不错!这结束了我自己的搜索。不要因为接受你的回答而骄傲。
    • 我对 Python 脚本有类似的问题。解释器不是#!/usr/bin/python,而是#!/usr/bin/python3。当我单独运行 CGI 并遇到错误的解释器错误时,我意识到
    猜你喜欢
    • 2011-12-18
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 2012-08-08
    • 2022-01-12
    • 2019-10-11
    • 1970-01-01
    相关资源
    最近更新 更多