phpstorm如何与Ubuntu上的Web服务器协同工作
导读:整体思路 在 Ubuntu 上准备并运行 Apache/Nginx + PHP-FPM,确保 Web 与 PHP 正常协同。 在 PhpStorm 中配置与服务器的 SFTP 部署(自动/手动上传)与 远程解释器(可选,用于 CLI 运行...
整体思路
- 在 Ubuntu 上准备并运行 Apache/Nginx + PHP-FPM,确保 Web 与 PHP 正常协同。
- 在 PhpStorm 中配置与服务器的 SFTP 部署(自动/手动上传)与 远程解释器(可选,用于 CLI 运行与测试)。
- 安装并配置 Xdebug 3,打通 PhpStorm 远程调试(断点、变量、堆栈查看)。
- 通过浏览器触发请求(可配合 XDEBUG_SESSION_START=PHPSTORM 或浏览器扩展)即可命中断点进行调试。
一 准备 Ubuntu 上的 Web 与 PHP 环境
- 安装 Web 与 PHP(以 PHP 8.1 为例,可按需调整版本):
- Apache:sudo apt install apache2 libapache2-mod-php8.1
- Nginx:sudo apt install nginx php8.1-fpm
- 通用:sudo apt install php8.1 php8.1-cli php8.1-mysql php8.1-curl 等常用扩展
- 启动并设置开机自启:
- sudo systemctl enable --now apache2 或 sudo systemctl enable --now nginx
- sudo systemctl enable --now php8.1-fpm
- 目录与权限(示例):
- 网站根目录常用 /var/www/html;确保运行用户(如 www-data)对项目目录有读写权限。
- 防火墙放行(如使用 ufw):
- sudo ufw allow 80,443/tcp 或 sudo ufw allow ‘Nginx Full’ / ‘Apache Full’。
二 在 PhpStorm 配置与服务器的协同
- SFTP 部署(代码同步)
- 打开 Tools → Deployment → Configuration → + → SFTP,填写:
- Host(服务器 IP/域名)、Port(默认 22)、User、Password/密钥
- Root path:服务器项目根目录(如 /var/www/html)
- Mappings:Local path → Deployment path on server(项目根目录映射为 /)
- 可选:Tools → Deployment → Automatic Upload(Always),保存即自动同步。
- 打开 Tools → Deployment → Configuration → + → SFTP,填写:
- 远程解释器(用于 CLI 命令、单元测试等)
- File → Settings → PHP → CLI Interpreter → Add → Remote (SSH),选择或新建 SSH 配置,指定 PHP 可执行文件路径(如 /usr/bin/php8.1),测试连接后应用。
三 配置 Xdebug 3 与 PhpStorm 远程调试
- 安装 Xdebug(与 PHP 版本匹配):
- sudo apt install php8.1-xdebug
- 配置 Xdebug(推荐在 /etc/php/8.1/mods-available/xdebug.ini 中统一设置):
- zend_extension=xdebug.so
- xdebug.mode=debug
- xdebug.client_host=127.0.0.1
- xdebug.client_port=9003
- xdebug.start_with_request=yes
- xdebug.idekey=PHPSTORM
- 重启服务使配置生效:
- Apache:sudo systemctl restart apache2
- Nginx + PHP-FPM:sudo systemctl restart php8.1-fpm & & sudo systemctl restart nginx
- PhpStorm 调试设置
- File → Settings → PHP → Debug:确保 Debug port = 9003
- File → Settings → PHP → Servers:新建服务器,Name 任意;Host 为服务器域名/IP;Port 80/443;Debugger 选 Xdebug
- 若项目在子目录(如 /var/www/html/myapp),将 Absolute path on the server 设为该目录,确保路径映射正确
- 启动监听:点击工具栏 电话听筒 图标(Start Listening for PHP Debug Connections)
- 触发调试
- 浏览器访问目标 URL,附加参数:?XDEBUG_SESSION_START=PHPSTORM
- 或使用 Xdebug Helper 等浏览器扩展一键开启调试会话
- 命中 断点 后可在 PhpStorm 查看变量、调用堆栈并单步执行。
四 常见问题与排查要点
- 端口连通性
- 确认 9003(Xdebug)未被占用:ss -lntp | grep 9003
- 云服务器需放行 22/80/443;本地虚拟机注意网络模式(桥接/NAT)与端口转发
- 路径映射
- PhpStorm 的 Servers → Absolute path on the server 必须与服务器实际项目路径一致,否则断点无法命中
- Xdebug 版本差异
- Xdebug 2 使用 xdebug.remote_enable/remote_autostart;Xdebug 3 使用 xdebug.mode=debug 等新参数,混用会导致不生效
- Web 服务器与 PHP-FPM
- Nginx 需将 .php 请求转发给 PHP-FPM(如 fastcgi_pass unix:/run/php/php8.1-fpm.sock; ),修改后记得重启 Nginx
- 权限与所有权
- 确保 Web 服务用户对部署目录有合适权限(如 www-data 所属,目录 755、文件 644)
五 快速验证清单
- 在服务器:echo “< ?php phpinfo(); ” > /var/www/html/info.php,浏览器访问 http://服务器IP/info.php 能看到 PHP 信息
- 在 PhpStorm:配置好 SFTP 后,做一次手动 Upload,刷新服务器页面验证文件已更新
- 在 PhpStorm:开启 监听,浏览器访问 http://服务器IP/your-app/?XDEBUG_SESSION_START=PHPSTORM,确认 断点命中 与变量面板可用
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: phpstorm如何与Ubuntu上的Web服务器协同工作
本文地址: https://pptw.com/jishu/787261.html
