Apache 显示 Python 代码而不是执行它

Apache 显示 Python 代码而不是执行它

运行 Ubuntu 22.04、Apache 2.4.18 和 Python 3.5.2 的 VPS 服务器

当我尝试访问该服务器上的网页时,它会显示 python 代码而不是执行它......

我尝试过的最后一条指南是这样的:https://howtoforge.es/como-ejecutar-scripts-de-python-con-apache-y-mod-wsgi-en-ubuntu-20-04/

但问题仍然存在。

答案1

安装 wsgi

在装有 Python 3 的 Ubuntu 22.04 上,你必须安装libapache2-mod-wsgi-py3

sudo apt install libapache2-mod-wsgi-py3
sudo a2enmod wsgi
sudo service apache2 restart

配置虚拟主机

您的手册提到创建一个新的 vhost 配置/etc/apache2/conf-available/wsgi.conf。但是,这不是必需的,如果您的服务器上没有其他站点,则可以使用默认的 Apache 配置:/etc/apache2/conf-available/000-default.conf。在该行之前添加以下行:

WSGIScriptAlias ​​/wsgi /var/www/html/wsgy.py

不要忘记重新启动 Apache 服务器:

sudo service apache2 restart

创建 Python 脚本

要配置mod_wsgi,您必须创建一个将由 Apache Web 服务器提供的 Python 脚本: 。手册中的sudo nano /var/www/html/wsgi.py示例返回错误 500,因此您可以改用此代码:wsgi.py

def application(environ, start_response):
    status = '200 OK'
    output = b'Hello World!\n'
    response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))]
    start_response(status, response_headers)
    return [output]

访问 Python 网站

  • 要访问 Python 文件,您应该使用http://your-server-ip/wsgi或在 vhost 文件中配置的任何别名。

  • 打开http://your-server-ip/wsgi.py仍然会返回 Python 代码而不是执行它。

相关内容