PhpStorm 本身不提供 FTP 服务器功能,仅支持连接已存在的远程 FTP/SFTP 服务;必须先在 Ubuntu/CentOS 上部署 vsftpd 或启用 OpenSSH 的 SFTP(sshd),再在 PhpStorm 中配置连接参数,否则“Test Connection”必然失败。

PhpStorm 本身不提供 FTP 服务器功能,它只支持连接并操作已存在的远程 FTP/SFTP 服务。你必须先在目标服务器(Ubuntu/CentOS 等)上部署好 vsftpd 或 OpenSSH 的 SFTP 服务,再在 PhpStorm 中配置连接参数——否则“Test Connection”必然失败。
为什么不能直接在 PhpStorm 里启动 FTP 服务器
PhpStorm 是 IDE,不是服务器软件。它的 Deployment 功能本质是客户端行为:发起 FTP/SFTP 连接、上传/下载文件、比对路径。所谓“配置 FTP 服务器”,实际是配置一个指向外部 FTP/SFTP 服务的连接通道。
常见错误现象:Connection refused、Authentication failed、测试按钮灰掉或无响应——90% 源于服务器端未运行服务,或防火墙/SELinux 阻断了端口(FTP 默认 21,SFTP 默认 22)。
- Ubuntu 上需手动安装并启用
vsftpd:运行sudo apt install vsftpd && sudo systemctl enable --now vsftpd - CentOS 上对应命令是
sudo yum install vsftpd && sudo systemctl enable --now vsftpd - SFTP 不需要额外装软件,只要
sshd正常运行且PasswordAuthentication yes(或密钥已配好)即可用
PhpStorm 中添加 FTP/SFTP 连接的具体步骤
路径是 File → Settings → Build, Execution, Deployment → Deployment → Configuration(macOS 是 PhpStorm → Preferences)。
立即学习“PHP免费学习笔记(深入)”;
关键操作点:
- 点击左上角
+,选择SFTP(强烈推荐,比 FTP 更安全;若选FTP,务必确认服务器已启用被动模式并开放对应端口范围) -
Host填服务器 IP 或域名,Port填22(SFTP)或21(FTP) -
Root path必须是绝对路径,例如/var/www/html/myapp;不能写成./myapp或留空 - 认证方式优先选
Key pair(配合id_rsa),比密码更稳定;若用密码,请确认用户有对应目录的写权限 - 填完后务必点
Test Connection—— 成功才继续,别跳过
本地路径和远程路径映射容易出错的地方
映射不对会导致上传到错目录、自动同步失效、甚至 Browse Remote Host 显示空白。
Mappings 标签页中要核对三项:
-
Local path:自动填充的是当前打开的项目根目录,若项目结构嵌套(如~/projects/myapp/src),需手动调整为实际代码所在路径 -
Deployment path on server:应与前面Root path一致,或为其子路径(如/src);若填成相对路径(如src)会拼接出错 -
Web path on server:仅用于生成预览链接,填http://example.com/myapp即可,不影响上传逻辑
特别注意:如果远程目录不存在,PhpStorm 不会自动创建。上传前请先用终端登录服务器,执行 mkdir -p /var/www/html/myapp 并 chown www-data:www-data /var/www/html/myapp(Ubuntu)或 chown apache:apache(CentOS)。
启用自动上传但没反应?检查 Options 设置
自动上传开关不在 Connection 或 Mappings 里,而在独立的 Options 页面(同一级菜单,非子标签)。
常见疏漏:
- 未勾选
Upload changed files automatically to the default server - 误选了
On explicit save却忘了按Ctrl+S(很多人以为编辑完就传,其实得手动保存) - 选了
On file change,但因文件被其他进程占用(如 Webpack 监听中)、或 PhpStorm 索引未完成,导致触发延迟甚至失效 - 上传时出现
Permission denied错误,其实是远程目录权限不够,和 PhpStorm 设置无关
建议初期用 On explicit save + 手动右键 Upload to [server] 验证通路,再切自动模式。
最常被忽略的一点:SFTP 连接下,Root path 和 Deployment path on server 必须严格匹配服务器上的真实路径大小写和斜杠方向;Windows 本地开发时尤其要注意,C:\project 映射到 /var/www/project,别写成 \var\www\project —— PhpStorm 不会帮你转义。


















