【问题标题】:setup cgi-bin server python with apache2.4.18使用 apache2.4.18 设置 cgi-bin 服务器 python
【发布时间】:2016-12-17 19:03:26
【问题描述】:

我在/var/www/cgi-bin 中有我的index.py

我的index.py 看起来像这样:

#!/usr/bin/python

print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'

我的 apache2 /etc/apache2/sites-enabled/000-default.conf 看起来像这样:

<VirtualHost *:80>
<Directory /var/www/cgi-bin>

  Options +ExecCGI
  AddHandler cgi-script .cgi .py
  Order allow,deny
  Allow from all

</Directory>    

</VirtualHost>

如果还有什么需要修改的,请告诉我,我已经启用了 cgi。

问题是无论我访问哪个 URL,我都会不断收到错误 Not Found localhostlocalhost/index.py

【问题讨论】:

  • 我的 Apache 知识有点生疏,但 index.py 是否设置了执行权限位?
  • 是的chmod 755
  • 你是不是直接尝试了127.0.0.1,而不是localhost?
  • 这样做了,没用。
  • 将 /etc/apache2/ports.conf 中的监听端口从 80 更改为 8080 等其他端口,然后运行 ​​'sudo systemctl daemon-reload' 和 'sudo service apache2 restart' 然后尝试 127.0 .0.1:8080

标签: python apache


【解决方案1】:

试试这个:

启用CGIa2enmod cgid

chmod a+x /var/www/cgi-bin/index.py 但检查cgi-bin 目录所有者是wwwdata 吗?

每个Virtualhost 都需要一个directory 定义!

restart 杀死所有 apache 线程需要一些时间!

   DocumentRoot /var/www/htdocs #A include B if owner are same !
   <Directory /var/www/htdocs/cgi-bin/ >
            FallbackResource /index.py
            Options +ExecCGI -MultiViews -SymLinksIfOwnerMatch -Indexes

            Order allow,deny
            Allow from all
            AddHandler cgi-script .py

    </Directory>

【讨论】:

  • Options 是缺少的。我的设置有点不同Options Indexes FollowSymLinks Includes ExecCGI
  • CGI 表示 通用网关接口-Indexes 表示从未声明包含的文件。 -FollowSymLinks 抱歉,我无法在此服务器上为每个 cgi 脚本设置过滤器(但可以在本地访问更多 cgi 脚本)。你知道我的 .py 脚本名称吗?快乐的注入(当然你需要时间哈希主键和变量模式)!
【解决方案2】:

使用此文件运行 cgi 脚本:

import cgi;
import cgitb;cgitb.enable()

【讨论】:

  • 不,这不是问题,问题出在 apache 设置上。
猜你喜欢
  • 2011-12-30
  • 1970-01-01
  • 2012-04-10
  • 2012-07-27
  • 1970-01-01
  • 2023-04-05
  • 2011-03-12
  • 2014-09-20
  • 1970-01-01
相关资源
最近更新 更多