内容: 说实话,刚入行那会儿,我也觉得在本地搞环境简直是噩梦。那时候不懂啥叫Nginx,也不懂PHP-FPM是干啥的,就死磕Apache,结果改个配置文件能把电脑搞崩。现在干了15年,看多了各种花里胡哨的一键安装包,心里反而更倾向于那种虽然笨拙但可控的方式。今天不整那些虚的,就聊聊怎么用最稳妥的方式,搞定如何部署本地php,让你不再对着报错日志怀疑人生。
先说结论,别去官网下载那个所谓的“集成包”了,除非你只是随便玩玩。对于正经开发,尤其是想深入理解底层逻辑的,我推荐用Docker或者手动搭建LNMP。为啥?因为线上服务器大概率不是Windows,你本地要是全在Windows上跑,上线那天绝对会出各种玄学bug。
咱们先从最基础的说起。如果你非要用传统方式,比如XAMPP或者WampServer,虽然方便,但版本管理是个大坑。你想升级PHP版本?删库重装?太麻烦。这时候,你就得想想如何部署本地php更优雅。我的建议是,哪怕是用虚拟机,也要把Web服务器和PHP解释器分开。
我就拿我自己最近的一个项目举例。为了测试一个新上的框架,我需要PHP 8.2配合Nginx。以前我可能得去下个安装包,然后手动配环境变量,还得担心端口冲突。这次我用了Docker,虽然刚开始觉得配置docker-compose.yml有点头大,但一旦配好,那就是真香。
具体咋弄呢?第一步,别急着装软件。先去官网下载对应版本的PHP源码或者二进制包。别信那些“绿色版”,很多都阉割了扩展。比如你要用Redis,就得确认你的PHP版本有没有编译好redis扩展。这一步很关键,很多人部署失败,就是因为扩展没装对。
第二步,配置Nginx。别用Apache了,虽然它稳定,但Nginx处理静态资源快啊。在conf文件里,把root指向你的项目目录,然后location ~ \.php$这块,一定要配好fastcgi_pass。很多新手在这里栽跟头,要么路径写错,要么权限不够,导致访问PHP文件直接下载而不是执行。
这里有个坑,就是文件权限。在Linux环境下,Nginx运行的用户通常是www-data,而你的项目文件如果是root创建的,那就读不了。所以,如何部署本地php的时候,记得chown -R www-data:www-data /var/www/html。别嫌麻烦,这一步省了,后面排查权限问题能把你搞疯。
再说说数据库。MySQL或者MariaDB,尽量别用最新版,除非你确定你的代码兼容。我见过太多人盲目追新,结果MySQL 8.0的默认认证插件把老代码搞挂了。用5.7或者8.0 LTS版,稳当。
最后,也是最重要的一点,别指望一次成功。我每次部署,至少会报错三次。第一次是路径不对,第二次是权限问题,第三次是PHP扩展没开。这时候,别慌,看日志。Nginx的error.log和PHP的php.ini里的log_error,这两个文件是你的救命稻草。别光盯着浏览器那个白屏发呆,日志里写得清清楚楚。
总结一下,如何部署本地php,核心不在于工具多快,而在于你对流程的掌控。手动搭建虽然慢,但你能清楚知道每一步在干嘛。等你熟悉了这套流程,再回头看那些一键安装包,就会觉得它们像是个黑盒,虽然方便,但出了问题你根本无从下手。
别怕麻烦,技术这东西,就是在一遍遍的报错中练出来的。当你第一次看到浏览器里打印出phpinfo(),那种成就感,比买啥新电脑都爽。去试试吧,别犹豫,动手才是硬道理。