PHPStorm远程开发前必须确认:①远程SSH服务运行正常;②本地终端可成功SSH登录;③PHPStorm所用JDK版本≥11。

PHPStorm 连接远程服务器前必须确认的三件事
远程开发不是点几下就能通的,先检查这三项是否满足,否则后续所有配置都会卡住:
- 远程服务器已开启 SSH 服务,且
sshd正在运行(可执行systemctl status sshd验证) - 本地能通过终端直接连上:比如
ssh user@host -p 22能成功登录(别跳过这步,很多问题其实出在这里) - PHPStorm 使用的 JDK 版本 ≥ 11(旧版 JDK 8 对现代 SSH 密钥格式支持差,尤其遇到
Invalid key format错误时优先升级)
用 Deployment 配置 SFTP 同步(最常用、最稳的路径)
这不是“远程解释器”那种全量映射,而是把本地项目实时同步到远程目录,适合调试线上环境或部署前验证。
- 在
Settings > Build, Execution, Deployment > Deployment中点击+添加新配置,类型选SFTP -
Connection标签页填入主机、端口、用户名;密码方式登录就填密码;密钥登录必须指定Private key file(注意:PHPStorm 不支持 OpenSSH 新格式的sk-ssh-ed25519@openssh.com,需用ssh-keygen -m PEM -t ed25519重生成兼容格式) -
Mappings标签页里,Local path指你本地项目根目录,Deployment path填远程绝对路径(如/var/www/html/myapp),别漏掉开头的/ - 启用自动上传:勾选
Upload changed files automatically to the default server,并选On explicit save action(避免边写边传引发冲突)
配置 Remote Interpreter 时绕不开的坑
这个功能让 PHPStorm 直接调用远程 PHP 解释器做语法检查、Composer、Xdebug,但容易因路径和权限失败:
- 添加解释器时选
SSH Configuration,复用上面建好的 SFTP 连接即可 - 关键是
Interpreter path必须填远程服务器上真实的 PHP 二进制路径,常见位置有:/usr/bin/php、/opt/plesk/php/8.1/bin/php、/home/user/.phpenv/shims/php;不确定就登录服务器执行which php - 如果提示
Failed to download composer.phar或Permission denied,大概率是远程用户对/tmp无写权限,改用~/.composer作为 Composer home,并在Environment variables里加COMPOSER_HOME=/home/user/.composer - Xdebug 远程调试需额外配置:确保远程
php.ini中启用了xdebug.mode=debug和xdebug.client_host指向你的本地 IP(不是localhost)
文件修改后没同步?先看这四个地方
SFTP 同步失效往往不是连接问题,而是被某些隐式规则拦截了:
立即学习“PHP免费学习笔记(深入)”;
- 检查
Settings > Deployment > Options中是否勾选了Exclude items from upload,默认会忽略.git、node_modules等,但如果你的远程环境依赖这些,就得手动删掉对应规则 - 文件权限变更(比如 chmod)不会触发自动上传,PHPStorm 只监听内容变化;需要上传权限设置,得右键文件 →
Deployment > Upload to …手动操作 - 远程路径如果挂载的是 NFS 或某些容器卷,可能不支持 inotify,导致“保存后远程没更新”,此时只能切回
On explicit save action模式 - 如果用了 WSL2 作为本地环境,而 PHPStorm 装在 Windows 上,
Local path必须指向 Windows 路径(如D:\project),不能填/mnt/d/project,否则同步逻辑会找不到文件
远程开发真正麻烦的从来不是配置步骤,而是每台服务器的 SSH 策略、用户权限、PHP 安装方式、临时目录策略都不一样——多试一次 ssh -v user@host 查握手细节,比反复点“Test Connection”有用得多。



















