开头
如果你刚接触 PHP,十有八九会把时间耗在环境搭建上,装完 PHP 再装 MySQL,装完 MySQL 又发现 Web 服务器没起来,等一切跑通半天已经过去了。这套流程我们太熟悉了。用 PhpStorm 做开发,核心不只是装一个 IDE 那么简单,而是要把它和 PHP 解释器、Web 服务器、数据库、调试器串成一条完整链路。今天这篇就围绕PHP + PhpStorm 环境配置与应用展开,我把从零搭建到日常开发能用到的配置、坑点和实战技巧一次性讲清楚,适合刚入门的新手,也适合想规范开发流程的老手。
先说结论:PhpStorm 本身不内置 PHP 运行环境,它只是一个编辑器,真正执行 PHP 代码靠的是系统里的 PHP 解释器;而浏览器访问 PHP 页面还需要 Web 服务器(Apache/Nginx)配合。三者的关系可以简单理解成:PhpStorm 负责写代码,PHP 负责解析执行,Web 服务器负责接收请求并把结果返回给浏览器。把这条链路理清了,后面的配置就不会乱。
1. 环境配置的整体设计与组件选型
1.1 PHP 开发环境到底由哪些部分构成
很多新手容易把"环境配置"当成一步操作,其实它由四个独立部分构成:PHP 解释器、Web 服务器、数据库、IDE。搞清楚每个部分的作用,你才知道自己在配什么。
PHP 解释器是核心,它的职责是把 .php 文件解析成 HTML 输出。Windows 下有线程安全版(TS)和非线程安全版(NTS)之分。如果你用 Apache 以模块方式运行 PHP,选 TS 版;如果用 Nginx + FastCGI 方式(也就是 php-cgi),选 NTS 版。这个细节在配置 php.ini 时看不出来,但它会影响运行稳定性和扩展加载方式。
Web 服务器负责 HTTP 层面的工作。Apache 配置简单、.htaccess支持好,适合新手和传统 PHP 项目;Nginx 性能更高、内存占用少,适合生产环境和前后端分离项目。很多集成环境(比如 PHPStudy)都支持一键切换,你可以在本地都试一遍,找到自己习惯的组合。
数据库方面,PHP 传统搭配是 MySQL/MariaDB。PhpStorm 自带数据库工具,可以在 IDE 里直接连数据库查表、执行 SQL,不用单独开一个数据库客户端。这个后面会细说。
1.2 集成环境和手动搭建怎么选
配置 PHP 开发环境有两条路线:一是用 PHPStudy、XAMPP、Laragon 这类集成环境,二是手动下载 PHP、Nginx/Apache、MySQL 分别安装配置。
集成环境的优势是开箱即用,你只需要下载、安装、启动,就能得到一个完整可用的 PHP 环境。PHPStudy 在国内用得很多,它的面板可以切换 PHP 版本、Apache/Nginx、MySQL 版本,对新手非常友好,而且内置了 phpMyAdmin 和 Composer,日常开发几乎不用额外折腾。我见过很多培训机构的教学环境就是 PHPStudy,因为学生水平参差不齐,集成环境能大幅降低出错的概率。
手动搭建的优势在于你能理解每一个配置项的含义。比如你手动安装 PHP 后,要自己修改 php.ini 里的extension_dir指向扩展目录,自己配置 Nginx 的fastcgi_pass指向 PHP-CGI 进程。这个过程比较繁琐,但走一遍之后,以后遇到环境问题你会有清晰的排查思路,不会一上来就懵。
我的建议是:新手先用 PHPStudy 把项目跑起来,建立"代码写到运行"的完整感知;当你不满足于一键操作、想搞清楚底层逻辑时,再手动搭一套。本篇文章主要围绕 PHPStudy + PhpStorm 的组合来讲,这也是目前国内 PHP 开发者最普及的本地开发方式。
1.3 PHP 版本怎么选,别盲目追新
PHP 官方一直在迭代,现在 8.x 已经成为主流。PHP 8.0 引入了 JIT(即时编译)、命名参数、构造器属性提升等特性,8.1 加入了枚举、Fibers、readonly 属性,8.2 又新增了只读类和 DNF 类型。如果你是新项目,直接上 8.2 或 8.3 没有问题,性能和语法体验都很好。
但如果你要维护老项目,就要看项目代码的兼容性了。很多遗留系统还跑在 PHP 5.6 或 7.4 上,代码里满是mysql_*函数或者废弃的语法。这种项目贸然升级到 PHP 8.x 大概率会报错。所以版本选择的原则是:新项目用新版本,老项目按需选版本,不要为了追求新而让代码跑不起来。
PHPStudy 支持多版本共存和切换,你可以在面板里给不同站点指定不同的 PHP 版本。这个功能非常实用,特别是同时维护多个项目时,你再也不用为版本切换折腾环境了。
2. PhpStorm 安装与初始化配置
2.1 下载、安装与许可证选择
PhpStorm 是 JetBrains 家族的产品,官方下载地址在 JetBrains 官网,找到 PhpStorm 页面,选择合适的操作系统版本下载。安装过程没什么特别的,下一步下一步就行。需要注意的一点是安装时把"添加到 PATH"选项勾上,后面在命令行里调用 PhpStorm 的打开命令会方便一些。
关于许可证,PhpStorm 是商业软件,但它提供 30 天免费试用,学生和教师可以申请免费的教育授权。如果你是个人开发者且预算有限,可以选择购买个人版许可证,价格在 JetBrains 官网上有明确标注。不建议去碰破解版,一方面有法律和网络安全风险,另一方面破解工具经常捆绑木马,在你电脑上搞小动作你根本察觉不到。说句实话,用正版软件不仅安心,还能第一时间获得新版本特性,这笔账怎么算都划算。
PhpStorm 支持导入其他 JetBrains IDE 的设置,比如你之前用过 IntelliJ IDEA 或 PyCharm,可以在首次启动时选择导入,这样主题、快捷键、代码风格都能无缝迁移过来。
2.2 首次启动必须做的几个关键设置
PhpStorm 首次启动后,先别急着写代码,花十分钟把基础设置搞定,后面会省很多事。
第一是设置界面主题和字体。在Settings(Windows 下按Ctrl+Alt+S)里的Appearance & Behavior > Appearance选择喜欢的主题,建议选深色主题,长时间盯屏幕眼睛会舒服一点。字体方面,在Editor > Font里设置编辑器字体,推荐 JetBrains Mono 或 Consolas,字号 14 到 16 之间,具体看你的屏幕分辨率和个人习惯。中文字体渲染如果不理想,可以在Color Scheme > Color Scheme Font里单独设置 fallback 字体为微软雅黑或思源黑体。
第二是配置 PHP 解释器。在Settings > Languages & Frameworks > PHP页面,点击CLI Interpreter旁边的...按钮,选择Local Web Server (WSL, Docker, Vagrant, etc.)或Other Local,然后浏览到 PHP 可执行文件的路径。在 PHPStudy 环境下,PHP 路径一般是D:\phpstudy_pro\Extensions\php\php8.2.9nts\php.exe这样。如果你用 PHPStudy 的php -v能正常输出版本信息,说明解释器已经可以用了。设置完成后,PhpStorm 会提示你配置 Composer 路径,建议把 Composer 也指过去,后面安装依赖包会非常方便。
第三是配置 Web 服务器。选择Settings > Build, Execution, Deployment > Deployment,添加一个本地服务器,类型选Local or mounted folder,Web 服务器 URL 填你在 PHPStudy 里配置的站点地址。如果你是第一次用 PhpStorm,建议把 Deployment 的Upload方式设置为Always,这样可以保证每次保存代码后文件同步到 Web 根目录(如果使用了映射路径)。
2.3 Xdebug 调试配置:断点调试的核心
PHP 开发调试有一个利器叫 Xdebug,它可以让你的代码在指定行停下来,查看变量的值、调用栈、执行流程。PhpStorm 对 Xdebug 的支持非常完善,配置好之后,你可以在 IDE 里直接打断点、点调试按钮,像 Java 的 IDEA 一样调试 PHP 代码。
第一步,确认 PHP 环境里有没有安装 Xdebug。在命令行执行php -m,如果输出列表里有xdebug,说明已经装了。PHPStudy 的部分 PHP 版本自带 Xdebug,而且已经写入了 php.ini。如果没有,你需要在 php.ini 中加一行zend_extension=xdebug,具体扩展路径以你环境中的实际为准。
第二步,配置 PhpStorm 的调试器。在Settings > Languages & Frameworks > PHP > Debug里,Xdebug 端口默认是 9003(新版 Xdebug 3 默认 9003,旧版是 9000)。确认端口一致即可。另外,PHPStudy 里的 xdebug 配置项建议把xdebug.mode=debug打开,xdebug.start_with_request=yes可以设置为trigger而不是yes,这样每次请求都会自动进入调试模式,否则你必须在 URL 后加XDEBUG_TRIGGER=1参数。
第三步,在 PhpStorm 里点右上角的电话图标,选择一个 PHP Web Page 调试配置,填写站点地址和起始文件,然后就可以开始断点调试了。点击绿色爬虫按钮,PhpStorm 会启动调试会话,浏览器请求到达后就会停在你的断点上。第一次体验时会有一点延迟,这是 Xdebug 在建立通信连接,属于正常现象。
2.4 Composer 配置与依赖管理
Composer 是 PHP 的依赖管理工具,类似于 Node.js 的 npm。现代 PHP 项目几乎都依赖 Composer 来安装第三方包,比如 Laravel 框架、PhpSpreadsheet 表格库、PHPMailer 邮件库等等。
PhpStorm 集成了 Composer 支持,在Settings > Languages & Frameworks > PHP > Composer里可以指定 Composer 的可执行文件路径,以及全局的vendor目录位置。这样在 PhpStorm 里打开一个带composer.json的项目时,IDE 会自动识别依赖,并提供代码补全和跳转。在项目目录下执行composer install,或者在 IDE 的终端里执行都可以,效果一样。
如果你用 PHPStudy 搭环境,它会自带一个composer.phar,有的版本还提供了图形化按钮。我的习惯是先在系统层面安装 Composer(直接下载 Composer-Setup.exe 安装),让 composer 命令全局可用,然后在 PhpStorm 里指向这个全局 Composer。这样不管在 IDE 里还是命令行里,行为都是一致的。
3. 实操过程与核心环节实现
3.1 用 PhpStorm 创建第一个 PHP 项目
设置完成之后,真正开始动手。打开 PhpStorm,选择New Project,在左侧选择PHP,右侧的PHP Language Level选 8.2,CLI Interpreter选刚才配置好的解释器。如果你要创建的是纯 PHP 项目,不需要框架,直接空项目就行;如果要创建 Laravel 项目,更推荐先通过 Composer 创建再在 PhpStorm 里打开目录。
第一次跑 PHP 项目,我建议用 PhpStorm 内置的 PHP 内置服务器,它不需要配置 Nginx/Apache。做法是:打开要运行的 .php 文件,点击右上角的下拉配置,选择Edit Configurations,点+号,选PHP Built-in Web Server,在Document root里选择项目根目录,Router script可留空,然后 Apply。运行这个配置,PhpStorm 会启动一个本地 PHP 服务器,浏览器自动打开http://localhost:端口/index.php,代码就能跑起来了。
这个方式适合学习和临时测试。如果你要模拟真实的线上环境,还是要走 PHPStudy 里的站点配置,把站点的根目录指向项目目录,然后用 PhpStorm 的 Deployment 功能做文件同步,或者直接把项目创建在 Web 根目录下。
3.2 配置 PHPStudy 虚拟主机与站点映射
PHPStudy 默认的站点目录是D:\phpstudy_pro\WWW,你可以在里面建项目文件夹,比如D:\phpstudy_pro\WWW\myblog,然后通过http://localhost/myblog访问。
如果你想要一个独立的域名地址来访问项目,可以在 PHPStudy 面板里点击站点管理,创建站点,填入你自定义的域名(本地建议用myblog.test这类后缀),指定网站目录,然后保存。PHPStudy 会自动修改 hosts 文件,把该域名指向 127.0.0.1,同时创建对应的 Nginx 或 Apache 虚拟主机配置。这样你浏览器访问http://myblog.test,就到你的项目目录了。
在 PhpStorm 里,如果你把项目根目录直接选为站点目录,就不需要额外的文件同步。但如果你开发目录在别处,需要部署到站点目录,那么就要配置 Deployment。新建 Deployment 服务器,类型选Local or mounted folder,Folder填站点目录,然后在Mappings里把本地路径和部署路径对应起来。保存文件的瞬间 PhpStorm 会把文件上传(这里实际上是复制)到站点目录,浏览器一刷新就是最新代码。
3.3 实战:写一个带表单处理和数据展示的页面
单纯配置完环境不算完,得实际写点东西验证链路是否通。我建一个简单的联系方式提交页面,包含 HTML 表单和 PHP 处理脚本。
项目结构大概是:
demo/ ├── index.php └── submit.phpindex.php里放一个简单的表单,action指向submit.php,方法为POST,字段有姓名、邮箱和留言内容。submit.php接收数据,然后做基本的校验、格式化,最后输出到页面上。
这里我要强调一个 PHP 知识:$_POST、$_GET、$_REQUEST这几个超全局变量的使用边界。新手最容易犯的错误是直接用$_REQUEST取值,因为它可以同时接收 GET 和 POST 参数,省事。但在安全要求高的场景里,应该明确区分:读取 URL 参数用$_GET,读取表单 POST 数据用$_POST,读取上传文件用$_FILES。模糊处理会让参数来源不可控,容易出问题。
写好后,在 PhpStorm 里右键index.php,选Run 'index.php',用内置服务器打开页面,填写表单并提交,观察submit.php的输出结果。如果页面正常显示了你提交的数据,说明 PHP 解释器、Web 服务器、IDE 协作的整条链路已经完整跑通了。
3.4 用 PHP 生成图片:GD 库的简单应用
关于php图片生产这个热搜词,我估计很多人是想在 PHP 里动态生成验证码、缩略图或二维码。PHP 最常用的图片处理扩展是 GD 库,它支持创建图像、画线、写字、缩放、裁剪等操作。
在 PHPStudy 中,GD 库一般默认开启。你可以写一个脚本验证:
<?php header('Content-Type: image/png'); $im = imagecreatetruecolor(400, 200); $bg = imagecolorallocate($im, 255, 255, 255); $textColor = imagecolorallocate($im, 0, 0, 0); imagefilledrectangle($im, 0, 0, 400, 200, $bg); imagestring($im, 5, 20, 20, 'Hello PHP', $textColor); imagepng($im); imagedestroy($im);这个脚本会直接输出一张 400x200 的 PNG 图片,上面写了 "Hello PHP"。访问时需要在浏览器里直接请求该 PHP 文件,而不是在 HTML 中嵌入。如果页面显示乱码,说明header('Content-Type: image/png')之前有输出,检查 BOM 或者空格。
实际项目里,这种动态生成图片的技术常用于验证码、动态图表、图片水印等场景。PhpStorm 对 GD 库函数也有代码提示,前提是 PHP 解释器配置正确且 GD 扩展已启用。你也可以在 PhpStorm 的Settings > Languages & Frameworks > PHP里查看当前解释器加载的所有扩展,确认 gd 在列表中。
3.5 PHP 接口跨域问题:JSONP 方案的实现
php跨域+jsonp也是高频搜索词,前端请求接口时经常遇到跨域问题,JSONP 是一种比较老但理解成本低的解决方案。它的原理是:利用<script>标签的src属性不受同源策略限制的特性,让前端通过动态创建 script 标签来请求接口,后端返回一段可执行的 JavaScript 代码。
PHP 端实现 JSONP 很简单。假设请求 URL 是http://api.example.com/user.php?callback=handleResult,后端代码大致如下:
<?php $callback = $_GET['callback'] ?? ''; $data = ['name' => '张三', 'age' => 28]; header('Content-Type: application/javascript'); echo $callback . '(' . json_encode($data, JSON_UNESCAPED_UNICODE) . ')';前端页面里,你需要提前定义一个全局函数handleResult,然后动态插入 script 标签来请求数据。服务端返回后,等于是调用了这个函数,把数据传进去。
这里有一个细节要提醒:$callback参数直接拼接在返回的 JavaScript 代码里,存在 XSS 风险。正常情况下你应该对$callback做合法性校验,只允许字母、数字、下划线和点,其他字符一律过滤。此外,JSONP 只支持 GET 请求,不支持 POST,也不适合上传文件等场景。现在更推荐用 CORS 方案来解决跨域,PhpStorm 里调试跨域接口时,你可以在响应头加上Access-Control-Allow-Origin: *来临时验证。
3.6 PHP 类与面向对象设计的写法
php类这个热搜词说明不少人卡在面向对象上。PHP 的类定义语法很直观,用class关键字,访问修饰符有public、protected、private。构造函数用__construct,析构函数用__destruct(用得很少)。
一个完整的类示例:
<?php class User { private string $name; private int $age; public function __construct(string $name, int $age) { $this->name = $name; $this->age = $age; } public function getInfo(): string { return "姓名:{$this->name},年龄:{$this->age}"; } }PhpStorm 对面向对象代码的支持非常好,当你输入User::class或者实例化new User时,IDE 会提示构造函数的参数。类的方法支持快速生成,你可以在类名上按Alt+Insert,选择 Generate,自动生成 getter/setter、构造函数、toString 等方法。
在项目实践中,我建议你再补上命名空间namespace和自动加载。PhpStorm 可以自动补全use语句,写类文件时按住Alt+Enter,选择Import class,它会自动在文件顶部添加对应的 use 导入。这是提高 PHP 开发效率的重要技巧。
3.7 PHP 错误处理与日志记录
环境配置好了,代码也写了,接下来必须关注错误处理。PHP 的错误分几个级别:E_NOTICE(提示)、E_WARNING(警告)、E_ERROR(致命错误)。开发环境建议打开全部错误报告,把错误直接显示在页面上;生产环境则要把错误写入日志,不能直接暴露给用户。
在 PhpStorm 里配置错误显示,可以在Settings > Languages & Frameworks > PHP的Debug页面里设置,也可以在 php.ini 里改:
display_errors = On error_reporting = E_ALL log_errors = On error_log = "D:/phpstudy_pro/Extensions/php/php_error.log"Log 文件的路径需要根据自己的环境调整。设置好后,PHP 会把错误写入日志文件。后端的逻辑错误很多时候不会在页面上体现,你必须通过查看日志来定位。PhpStorm 自带终端,你可以用tail -f实时查看日志(Windows 可以用Get-Content -Wait),这样问题一出现就能立刻看到报错信息,省去反复刷新页面的步骤。
4. 常见问题与排查技巧实录
4.1 常见问题速查表
我在日常解答和项目调试中整理了一份高频问题清单,放在一起对照着看会更清晰:
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| 浏览器显示 "Cannot GET /" | 内置服务器运行路径不对 | 检查 Document root 是否为项目根目录 |
| PHP 代码被原样输出 | Web 服务器没解析 PHP | 确认 PHP-FPM/CGI 模块已启用,站点配置正确 |
| php -v 正常但 PhpStorm 不识别 | CLI Interpreter 路径配置错误 | 在 PHP 设置中重新指定 php.exe 路径 |
| 页面中文乱码 | 文件编码或响应头编码不一致 | 文件统一使用 UTF-8,添加header('Content-Type: text/html; charset=utf-8') |
| 打开 index.php 变成下载文件 | Nginx/Apache 缺少 PHP 解析配置 | 检查服务器配置文件里的 location 或 AddType 指令 |
| Xdebug 断点没反应 | 端口不一致或 mode 未开启 | 核对 PhpStorm 端口为 9003,xdebug.mode=debug |
| Composer 命令不存在 | Composer 未全局安装 | 安装 Composer 并加入 PATH |
| 修改代码后浏览器不生效 | 浏览器缓存或文件未同步 | 强制刷新(Ctrl+F5),检查 Deployment 同步状态 |
4.2 端口占用导致服务启动失败
PHPStudy 启动 Nginx/Apache 或者 MySQL 时,偶尔会报"端口被占用",最常见的占用者是其他 Web 服务(比如 IIS、另一个 Nginx)或者其他软件(比如某些网盘软件监听了 80 端口)。
排查方法是在命令行执行netstat -ano | findstr :80,找到占用 80 端口的进程 PID,再到任务管理器里定位是哪个程序。如果这个程序不需要占 80 端口,就把它关掉;如果确实需要,那就把 PHPStudy 的站点端口改掉,比如改成 8080。
PhpStorm 内置服务器默认端口是随机的,一般不冲突。但如果你用 PhpStorm 同时开多个内置服务器,会看到端口号一直增加,这是正常现象,不用管。
4.3 项目路径混乱导致 404 和 502
用 PhpStorm 和 PHPStudy 组合时,最常见的路径问题是你把项目放在了某个目录,但 Deployment 映射没有指对,导致浏览器访问到的文件还是旧版本,甚至直接 404。解决方法是先在 Deployment 配置里检查 URL 和本地路径的映射关系,然后打开 PHPStudy 的站点管理,对比站点域名和根目录是否一致。
还有一个高频坑:Nginx 下 PHP 请求出现 502 Bad Gateway,十有八九是 PHP-CGI 进程没有启动或者 php.ini 里配置有误。在 PHPStudy 里这种问题很少,因为服务管理帮你处理了进程调度。但如果是手动搭建的环境,你就要确认php-cgi.exe -b 127.0.0.1:9000是否在运行。
如果出现 502,我建议先把 PHPStudy 的 Nginx 停掉重新启动,再检查站点配置文件里的fastcgi_pass端口和 PHP 监听端口是否一致。很多时候只是端口没对上,改完就好。
4.4 代码不生效,是不是缓存的问题
PHP 本身是解释执行的语言,理论上每次请求都会重新解析文件,不存在编译缓存。但实际开发中你可能会被两种"缓存"坑到。
第一种是浏览器缓存。修改了 CSS/JS,刷新页面还是旧样式,按Ctrl+F5强制刷新能解决大部分问题。第二种是 PHP 的 OPcache。PHP 8 默认在生产模式下会启用 OPcache,如果你在本地也开着,代码修改后可能需要等opcache.revalidate_freq指定的秒数才会生效,或者直接重启 PHP 服务。在 PHPStudy 面板里,PHP 的配置文件里有 opcache 相关选项,本地开发建议把opcache.enable设为 Off,或者在 URL 后加随机参数来绕过缓存。
PhpStorm 里还有一个"缓存"问题:当你的项目文件很多时,索引(Index)可能要花不少时间。如果你发现 IDE 里代码提示突然不准,通常是在后台重建索引。这个时候不要强行操作,等它跑完再说。
4.5 PhpStorm 卡顿、内存占用过高的优化
PhpStorm 是 Java 写的,内存占用本来就偏高,这是正常现象。但如果卡到影响操作了,可以做几件事优化。
在 PhpStorm 的Help > Change Memory Settings里可以调整 IDE 的内存上限。如果你的电脑内存足够(16GB 以上),可以设为 2048MB 或 4096MB。如果内存本来就紧张,建议把不用的插件禁用掉,特别是那些标着"没有用"的插件,在Settings > Plugins里逐个审查。
另外,PhpStorm 打开大项目时会对所有文件建索引,如果项目里有node_modules或者vendor目录,建议把这类目录标记为Library或排除在索引之外。方法是右键目录,选择Mark Directory as > Excluded,这样 PhpStorm 就不会去扫描它们,索引时间和内存占用会显著下降。
4.6 免费的替代方案:VSCode 或其他轻量编辑器
我知道很多人会搜vscode php,原因很简单:PhpStorm 是收费的,VSCode 免费。如果你预算有限,VSCode 完全可以用,安装 PHP Intelephense 插件、Code Runner 插件,配置好php.executablePath,就能获得不错的编辑体验。但说实话,论 PHP 项目的整体开发体验,PhpStorm 在代码分析、框架支持、调试集成的深度上还是明显胜出的,特别是大型项目和框架级开发,用 PhpStorm 效率会高很多。
我的建议是:初学者可以先从 VSCode 入手,零成本试试 PHP 开发的感觉,觉得这条路走得通、决定深入 PHP 了,再换 PhpStorm 也来得及。工具是服务效率的,不是门面,别为了用而用。
5. 我在实际配置与应用中的几点体会
这套 PHP + PhpStorm 环境配置,我前前后后帮几十个新手远程排查过,也把自己的开发机重置过好多次。每次重新配环境,我都能发现一些之前忽略的小细节。
一点体会是:环境配置这件事,最难的不是安装,而是理解每个组件在链路中的位置。你只要搞懂了"浏览器请求 → Web 服务器 → PHP 解释器 → 文件系统/数据库 → 响应返回"这条路径,任何环境问题都能顺着链路排查。遇到报错先别慌,看错误信息,看日志,理清路径,绝大多数问题都能解决。
还有一点必须提:环境配置完成之后,建议第一时间用 PhpStudy 做一个环境快照,或者把 php.ini、站点配置文件复制一份备份。下次环境出问题,你不至于从头折腾。配置文件和项目代码一样,值得用版本管理的思想去维护。
另外,脚本和配置路径中涉及盘符的地方,Windows 下要区分大小写习惯。PhpStorm 里可以设置路径的大小写敏感性,Windows 默认不区分,但 Linux 生产环境区分,为避免本地能跑线上报错的情况,建议尽早模拟生产环境的行为,路径统一用小写。
最后分享一个小技巧:PhpStorm 自带一个 HTTP Client,你可以在 IDE 里直接写.http文件并发起请求,不需要切换到浏览器或者 Postman。调试 API 的时候特别方便,请求记录还能保留下来,下次直接运行测试,这个功能很多人没发现,但真的好用。
环境搭建只是开始,之后大量时间都会花在写代码和调试上。希望这篇东西能帮你把第一步走稳,剩下的路,你自己踩踩就会了。