Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Apache2 CGI配置_Python_Apache_Ubuntu_Default - Fatal编程技术网

Python Apache2 CGI配置

Python Apache2 CGI配置,python,apache,ubuntu,default,Python,Apache,Ubuntu,Default,我在访问我用python编写的非常简单的cgi脚本时遇到了困难,并且在找到解决方案时遇到了太多的困难。我有一种感觉,这将是一个相当容易的解决办法,但我自己也不明白 url:localhost/cgi-bin/test.cgi(我还尝试将其命名为test.py) 我得到的错误是一个简单的404,我认为下面的ScriptAlias可以解决这个问题。此外,如果我尝试访问localhost/cgi-bin/I,我会得到一个403:access-Denied。我尝试将权限重置为777(我知道这很愚蠢),但

我在访问我用python编写的非常简单的cgi脚本时遇到了困难,并且在找到解决方案时遇到了太多的困难。我有一种感觉,这将是一个相当容易的解决办法,但我自己也不明白

url:localhost/cgi-bin/test.cgi(我还尝试将其命名为test.py) 我得到的错误是一个简单的404,我认为下面的ScriptAlias可以解决这个问题。此外,如果我尝试访问localhost/cgi-bin/I,我会得到一个403:access-Denied。我尝试将权限重置为777(我知道这很愚蠢),但没有更好的结果

/etc/apache2/httpd.conf(不对default/etc/apache2/apache2.conf进行特殊编辑):

test.cgi:

#!/usr/bin/python 
import cgi
#cgi.test()
print 'Content-type: text/html\n\n'
print 'test'
此外,在更改httpd.conf文件后,我还重新启动了apache2。除了我已经看过的以外,我想不出还有什么可以包括在内: 但我不明白作者指的是什么。我强烈认为这是我的一个配置中的一个错误,但代码似乎非常简单

如果有人能帮我克服这个愚蠢的难题,我将不胜感激

编辑:

错误日志:

--clip--
[Thu Sep 26 23:34:59 2013] [error] [client 127.0.0.1] script not found or unable to stat: /usr/lib/cgi-bin/test.cgi
[Thu Sep 26 23:42:08 2013] [error] [client 127.0.0.1] script not found or unable to stat: /usr/lib/cgi-bin/test.cgi
系统信息:

lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.2 LTS
Release:    12.04
Codename:   precise
uname -a
Linux #### 3.2.0-39-generic #62-Ubuntu SMP Thu Feb 28 00:28:53 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
我想我找到了罪魁祸首:

/etc/apache2/sites enabled/000默认值:

1    <VirtualHost *:80>
2     ServerAdmin webmaster@localhost
3 
4     DocumentRoot /var/www
5     <Directory />
6         Options FollowSymLinks
7         AllowOverride None
8     </Directory>
9     <Directory /var/www/>
10         Options Indexes FollowSymLinks MultiViews
11         AllowOverride None
12         Order allow,deny
13         allow from all
14     </Directory>
15 
16     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
17     <Directory "/usr/lib/cgi-bin">
18         AllowOverride None
19         Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
20         Order allow,deny
21         Allow from all
22     </Directory>
1
2服务器管理员webmaster@localhost
3.
4 DocumentRoot/var/www
5.
6个选项下面的符号链接
7.允许不超过
8.
9
10个选项索引跟随符号链接多视图
11允许不超过
12命令允许,拒绝
13允许所有人
14
15
16 ScriptAlias/cgi-bin//usr/lib/cgi-bin/
17
18允许不超过
19选项+执行CGI-多视图+符号链接所有者匹配
命令允许,拒绝
21允许所有人
22

特别是第16行。我从未想过根据您的错误日志查看此目录,您没有编辑正确的配置,或者其他什么。 注意,上面写着/usr/lib/cgi-bin? 只是为了好玩,如果您将脚本复制到/usr/lib/cgi-bin,那么请尝试一下,它是否有效? 这个apache安装在什么操作系统上

还有一件事,在配置文件的某个地方是否有另一个ScriptAlias?
可能这正在覆盖您的/cgi-bin/?

映射,您的apache错误日志中有任何线索吗?cgi-bin目录不允许使用direcotry列表,如果直接访问cgi(),该怎么办?我已经提供了一个显示错误的示例。看起来它正在搜索正确的目录。你是对的,我误读了错误日志。我将该文件复制到所提到的目录中,并像champ一样执行。我想更大的问题是为什么会有这个目录?有人在配置中设置了它。这就是为什么我问什么是操作系统。您正在编辑的配置文件的位置是什么?/etc/apache2/httpd.conf是我编辑的。我使用的是默认的/etc/apache2/apache2.conf,它似乎没有提到该目录,/etc/apache2/conf.d/Every系统中的任何文件似乎都以不同的方式分解apache配置。你在linux/unix上吗?find/-name httpd.conf-name apache2.conf-printin/etc/apache2/sites enabled在我的错误日志中有一个文件包含指向目录的另一个scriptAlias指令。多亏了你的帮助,我已经解决了这个问题
lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.2 LTS
Release:    12.04
Codename:   precise
uname -a
Linux #### 3.2.0-39-generic #62-Ubuntu SMP Thu Feb 28 00:28:53 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
1    <VirtualHost *:80>
2     ServerAdmin webmaster@localhost
3 
4     DocumentRoot /var/www
5     <Directory />
6         Options FollowSymLinks
7         AllowOverride None
8     </Directory>
9     <Directory /var/www/>
10         Options Indexes FollowSymLinks MultiViews
11         AllowOverride None
12         Order allow,deny
13         allow from all
14     </Directory>
15 
16     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
17     <Directory "/usr/lib/cgi-bin">
18         AllowOverride None
19         Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
20         Order allow,deny
21         Allow from all
22     </Directory>