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

如何集成Nginx Proxy Manager与PHP应用实现共存运行?

解决Nginx Proxy Manager与原有PHP应用共存的方案

针对你遇到的NPM和原生Nginx端口冲突、无法同时运行PHP应用的问题,提供几个实用的解决思路:

方案一:将原生Nginx作为NPM的后端服务

这个方案保留你原有的Nginx配置,让NPM统一接管80/443端口,反向代理PHP应用请求到原生Nginx:

  1. 修改原生Nginx的监听端口:
    打开主配置文件/etc/nginx/nginx.conf(或对应站点配置文件),将listen 80;和listen 443 ssl;改为非80/443的端口,比如listen 8080;和listen 4433 ssl;。
  2. 重启原生Nginx:
    执行命令sudo systemctl restart nginx,验证PHP应用可通过http://localhost:8080/phpmyadmin正常访问。
  3. 在NPM中添加代理主机:
    • 进入NPM面板,点击"Add Proxy Host"
    • 填写你的PHP应用域名(如phpmyadmin.yourdomain.com)
    • 目标URL设置为http://localhost:8080(对应原生Nginx的新监听端口)
    • 保存配置后,即可通过原域名访问PHP应用,NPM会自动转发请求到原生Nginx。

方案二:直接在NPM中配置PHP处理

放弃原生Nginx,让NPM直接处理PHP请求,需要依赖php-fpm:

  1. 安装php-fpm(以Ubuntu为例):
    执行sudo apt install php-fpm,根据你的PHP版本调整命令(如php8.2-fpm)。
  2. 在NPM中配置PHP应用:
    • 添加新的"Proxy Host",填写域名后,切换到"Files"选项卡,设置"Website Root"为PHP应用的文件路径(如/var/www/phpmyadmin)。
    • 切换到"Advanced"选项卡,添加以下Nginx配置片段:
      location ~ \.php$ {
          fastcgi_pass unix:/run/php/php8.2-fpm.sock; # 路径根据PHP版本调整
          fastcgi_index index.php;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
      }
      
  3. 保存配置后,NPM会直接解析PHP文件,无需依赖原生Nginx。

方案三:端口隔离(适合Docker环境)

如果你的NPM是用Docker部署的,可以通过网络配置实现端口隔离:

  • 让原生Nginx监听主机的非80/443端口,NPM容器映射80/443到主机端口;
  • 在NPM中配置代理主机时,目标URL填写主机的内网IP加原生Nginx端口(如http://192.168.1.100:8080),确保容器能访问主机网络。

注意事项

  • 调整端口后,确保防火墙开放对应端口(如8080);
  • 配置php-fpm时,需保证NPM的运行用户(通常是nginx)有权限访问PHP应用目录和php-fpm套接字;
  • 若使用SSL,在NPM中统一配置证书即可,无需在原生Nginx中重复配置。

内容的提问来源于stack exchange,提问作者Pete L

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:00:53