You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在带Plesk的Ubuntu VPS上同域名配置PHP站点与Python Flask应用

现有配置的问题

你提供的配置存在3个核心错误,无法直接使用:

  • ServerName 仅支持填写域名,不能携带路径后缀/python,该字段不识别路径参数
  • 当前配置的WSGIScriptAlias / 会把根域名下的所有请求都转发给Flask,会覆盖你原有的PHP站点配置
  • 你用的Order allow,deny是Apache 2.2的旧语法,Ubuntu默认搭载的是Apache 2.4,应该用Require all granted替代

可用部署方案

方案1:使用路径前缀 https://example.com/python 访问

不需要新建独立的VirtualHost,直接修改原有的主站点(对应example.com的.conf配置文件),在现有配置里新增以下规则即可:

# 新增Flask路径转发规则
WSGIScriptAlias /python /var/www/myapp/pyapp.wsgi
<Directory /var/www/myapp/myapp/>
    Require all granted
</Directory>
Alias /python/static /var/www/myapp/myapp/static
<Directory /var/www/myapp/myapp/static/>
    Require all granted
</Directory>

注意:如果你的Flask应用里写了固定的路由前缀,需要和这里的/python保持一致,避免路由404。

方案2:使用子域名 https://python.example.com 访问

需要先把python.example.com解析到当前VPS,再新建独立的VirtualHost配置文件,配置内容如下:

<VirtualHost *:80>
        ServerName python.example.com
        ServerAdmin admin@mywebsite.com
        WSGIScriptAlias / /var/www/myapp/pyapp.wsgi
        <Directory /var/www/myapp/myapp/>
            Require all granted
        </Directory>
        Alias /static /var/www/myapp/myapp/static
        <Directory /var/www/myapp/myapp/static/>
            Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/python-app-error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/python-app-access.log combined
</VirtualHost>

配置完成后执行以下命令生效:

  • 启用wsgi模块:a2enmod wsgi
  • 启用站点配置(仅方案2需要执行):a2ensite 你的配置文件名.conf
  • 测试配置语法:apache2ctl configtest
  • 重载Apache:systemctl reload apache2

Plesk用户注意事项

因为你使用了Plesk面板,不建议直接修改sites-available下的原生配置,Plesk自动更新配置时会覆盖手动修改的内容,最好在Plesk面板对应站点的「Apache与Nginx设置」里,把上面的规则填写到「附加Apache指令」框里即可。

内容的提问来源于stack exchange,提问作者Hanuman Ram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:45:01