温馨提示×

phpstorm如何与Ubuntu服务器协同工作

小樊
45
2025-11-19 06:55:34
栏目: 云计算

整体思路 通过 SSHPHPStormUbuntu 服务器打通,使用远程解释器执行代码、用 SFTP 同步文件、按需对接 Apache/Nginx + PHP-FPMPHP 内置服务器,并配合 Xdebug 进行断点调试。这样可以在本地舒适编码,在服务器环境运行与调试,保证版本、扩展与依赖的一致性。

一、服务器端准备

  • 安装并启动 SSH 服务,建议使用密钥登录:
    • 安装:sudo apt update && sudo apt install openssh-server
    • 重启:sudo systemctl restart sshd
    • 安全建议:编辑 /etc/ssh/sshd_config,优先使用密钥(PasswordAuthentication no),必要时再开启密码登录
  • 安装 PHP 及常用扩展(按项目选择版本):
    • 示例:sudo apt install php php-cli php-mbstring php-xml php-curl php-mysql
    • 验证:php -v
  • 准备项目目录与权限(示例):
    • 创建:sudo mkdir -p /var/www/html/my_project
    • 赋权:sudo chown -R $USER:$USER /var/www/html/my_project && sudo chmod -R 755 /var/www/html/my_project
  • Web 服务两种常见方式(二选一或并存):
    • Apache + PHP:sudo apt install apache2 php libapache2-mod-php php-mysql && sudo systemctl start apache2 && sudo systemctl enable apache2
    • Nginx + PHP-FPM:sudo apt install nginx php-fpm php-mysql && sudo systemctl start php**{version}-fpm && sudo systemctl enable php{version}**-fpm
  • 临时测试可用内置服务器(仅本机访问):cd /var/www/html/my_project && php -S localhost:8000

二、PHPStorm连接与同步

  • 远程解释器(让 IDE 用服务器上的 PHP):
    • 路径:File > Settings > Languages & Frameworks > PHP > CLI Interpreter > Add > Remote/SSH
    • 填写:Host(服务器 IP/域名)、Port(默认 22)、Username、认证方式(推荐 Key pair
    • 指定远程 PHP 路径(常见:/usr/bin/php),点击 Test Connection 验证
  • 文件同步(Deployment,SFTP):
    • 路径:File > Settings > Build, Execution, Deployment > Deployment > + > SFTP
    • 填写:SFTP host、Port、Root path(如 /var/www/html/my_project)、认证信息
    • Mappings:设置 Local path 与 Deployment path on server(如 / 表示根目录)
    • 可选:Tools > Deployment > Automatic Upload 开启自动同步
  • 运行与访问(两种思路):
    • 远程内置服务器(推荐用于快速调试):Run > Edit Configurations > + > PHP Built-in Web Server
      • Document root:远程项目目录(如 /var/www/html/my_project
      • Port:本地端口(如 8080,避免冲突)
      • Interpreter:选择前述远程解释器
      • 浏览器访问:http://localhost:8080
    • 远程 Web 服务器(Apache/Nginx 场景):Run > Edit Configurations > + > PHP Web Page
      • URL:如 http://服务器IP/myproject
      • Web server:选择已配置的服务器
      • Start URL:如 /myproject/index.php
      • 注意设置 Path mappings(本地项目路径 ↔ 服务器目录)

三、远程调试配置

  • 服务器安装 Xdebug(版本与 PHP 匹配):sudo apt install php-xdebug
  • 编辑 php.ini(路径随 PHP 版本与 SAPI 不同,如 /etc/php/8.1/fpm/php.ini/etc/php/8.1/apache2/php.ini):
    • Xdebug 3 常用配置:
      • zend_extension=xdebug.so
      • xdebug.mode=debug
      • xdebug.start_with_request=yes(或触发式:xdebug.start_with_request=trigger
      • xdebug.client_host=127.0.0.1
      • xdebug.client_port=9003
    • 重启服务:sudo systemctl restart apache2 或 sudo systemctl restart php8.1-fpm
  • PHPStorm 调试:
    • Run > Edit Configurations > + > PHP Remote Debug
    • 选择 Server(与 Deployment 同名),IDE key 用 PHPSTORM
    • 开启工具栏 Listen for connections,在代码设断点,浏览器访问对应 URL 触发调试

四、协作与版本控制

  • 使用 Git:VCS > Checkout from Version Control 选择 Git,填入仓库 URL 克隆到本地;在 PHPStorm 内完成 Commit / Push / Pull、解决冲突、查看历史与分支管理
  • 团队远程调试:统一 xdebug.client_port=9003、约定触发方式(如带 ?XDEBUG_TRIGGER 的 URL),保证服务器防火墙与云安全组放行 9003 端口,便于多人同时调试

五、常见问题与排查

  • 端口与防火墙:确保本地 8080(或其他运行端口)与服务器 9003(Xdebug)未被占用;云服务器需在安全组放行对应端口;必要时执行 sudo ufw allow 端口
  • 权限与属主:Web 目录建议归属 www-data(或相应运行用户)并设 755,例如:sudo chown -R www-data:www-data /var/www/html/my_project
  • 路径映射:Remote/Local 路径不一致时,务必在运行配置或 Remote Debug 中设置正确的 Path mappings,否则断点无法命中
  • 连接方式:优先使用 SSH 密钥(禁用密码或保存在安全存储),在 Deployment 与 Remote Interpreter 中保持 Host/Port/Root Path/Mappings 一致
  • 服务选择:临时调试用 PHP Built-in Web Server 更便捷;生产环境建议使用 Nginx/Apache + PHP-FPM 并配合进程管理、日志与反向代理

0