1

我正在尝试在实验室中设置 LAMP 服务器,但无法让 Apache 执行 .py 文件。相反,它只是下载它们。起初我以为我的标题可能是错误的,但是当我更改它时,不幸的是我仍然没有执行 .py。从好的方面来说,我可以加载站点、运行 PHP 并 CRUD MySQL。我认为问题可能在于我如何设置我的虚拟主机。这是 Apache2.conf:

<VirtualHost *:80>
    Alias "/SiteIwant" "/var/www/SiteIwant"
    ServerName localhost
    DocumentRoot /var/www/SiteIwant
    CustomLog /var/www/SiteIwant/my_access.log combined
    ErrorLog /var/www/SiteIwant/my_error.log
        AddType application/x-httpd-php .php
        SetEnv LD_LIBRARY_PATH /etc/init.d/mysql
    <Directory /var/www/SiteIwant>
        Options None ExecCGI
        AddHandler cgi-script .cgi .pl .py
        #AddHandler mod_python .py
        DirectoryIndex index.php
        AllowOverride AuthConfig
        Order deny,allow
        Deny from All
            Allow from 999.999.999.0/24 #anonymized for posting here, but working
    </Directory>
#   <Directory /var/www/SiteIwant/cgi/>
    #   AllowOverride All
    #   Options +ExecCGI +SymLinksIfOwnerMatch
    #   Order allow,deny
    #   Allow from all
    #</Directory>
</VirtualHost>

我已经尝试过使用和不使用 cgi 文件夹上的规范,并且我已经chkmod +rwx *.py/var/www/SiteIwant/cgi. 只是为了踢球(之后没有帮助),我还将 /usr/bin 和 /usr/local/bin 中的 python 解释器的模式更改为 +rwx。

apache2.conf 文件中的所有其他内容都来自当前的 Ubuntu Server-LAMP 选项安装。

我觉得很困,就像我错过了一些愚蠢/小东西。

编辑:真的应该在服务器故障上问这个问题吗?

如果我把一个AddHandler cgi-script .cgi .pl .py虚拟主机放在外面,我会得到一个 403 权限错误,尽管 chmod 777 文件夹。

4

3 回答 3

1

迟到的答案,我也通过了那里,并通过在目录选项中添加 ExecCGI 或为了提高安全性来实现此功能,如下所示:

<Directory /path/to/www/yourfile.py>
Options +ExecCGI
</Directory>
于 2013-11-25T18:01:16.817 回答
0

您是否安装并启用了 apache wsgi 模块?

于 2013-06-26T20:48:56.157 回答
0

vhost 和/或全局配置中的这条语句应该足够了(你的配置中有它):

AddHandler cgi-script .py

更改配置后您是否重新加载了 Apache?如果这不起作用,你应该检查你的网络服务器的错误日志,它应该给出一些关于问题原因的提示。

此外,您没有描述当您访问托管 python 脚本的 URL 时会发生什么,您是否收到错误消息?

于 2013-06-26T20:54:18.160 回答