Remote Host 视图不能直接编辑远程文件,仅支持只读浏览;必须配置SSH连接、正确设置Root path(绝对路径)、确保用户shell合法且SFTP子系统启用,并通过手动Upload或启用On explicit save action自动上传才能同步修改。

Remote Host 视图能直接打开并编辑远程文件吗
能,但不是“点开就可写”,必须先完成 SSH 连接配置 + 目录映射,且文件系统权限、SSH 用户权限、远程 shell 类型都得过关。Remote Host 是只读浏览入口,双击打不开或文件名变灰,大概率是 Root path 填错(比如填了 ~ 或留空)、用户 shell 被设为 /bin/false(SFTP 需要合法 shell),或者服务器端 sshd_config 里禁用了 SFTP 子系统。
Connection refused / Permission denied 怎么快速验证是不是 PhpStorm 的锅
根本不是 PhpStorm 的问题——它只是调用底层 SSH。先在终端跑这句:
ssh -i /path/to/private_key user@host -p 22
如果失败,别配 PhpStorm:
-
Connection refused:检查systemctl status sshd、防火墙(ufw status)、端口是否填成 80 或 3306 -
Permission denied (publickey):私钥格式不对(OpenSSH 新格式-----BEGIN OPENSSH PRIVATE KEY-----不被老版 PhpStorm 认,用ssh-keygen -p -m PEM -f id_rsa转);公钥没追加到~/.ssh/authorized_keys;或用户主目录权限太松(chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys)
SFTP 映射后改了文件为什么没同步到服务器
Remote Host 视图本身不上传——它只是展示远程目录结构。改完保存,文件仍只存在本地缓存中。要真正落盘到服务器,必须触发上传动作:
立即学习“PHP免费学习笔记(深入)”;
- 手动上传:右键文件 →
Upload to [server],或快捷键Ctrl+Shift+Alt+Up(Windows/Linux) - 自动上传:进
Tools → Deployment → Options,勾选Upload changed files automatically to the default server,并选On explicit save action(别选On file change,否则 vendor 下改个字母就卡死) - 注意:
Excluded paths(如.env)只影响自动上传监听范围,手动Upload仍会传——所以 .env 改了可能被手误覆盖
为什么改完保存,远程文件时间戳没变、Git 也看不到变更
PhpStorm 默认不自动写磁盘,编辑器标题栏带 * ≠ 文件已落盘。这是设计行为,不是 Bug。检查真实修改时间用:
ls -l /path/on/server/file.php
若时间没变,说明还没上传。可靠解法只有两个:
- 按
Ctrl+S(或Cmd+S)显式保存 → 触发自动上传(前提是上面的On explicit save action已启用) - 开
Settings → Appearance & Behavior → System Settings → Save files on frame deactivation:切出 PhpStorm 窗口时自动保存本地副本,再配合自动上传策略才真正闭环
关键点在于:Remote Host 不是“实时挂载”,它没有 fuse 或 sshfs 那层抽象;所有写操作都经由 SFTP 协议显式发起,漏掉任一环,服务器上的文件就纹丝不动。


















