运行 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 代码而不是执行它。