新手必看:我在配置PHP环境时踩过的三个大坑
大家好,今天想和大家分享我这些年配置PHP环境时遇到的”血泪史”。每次帮新人搭建环境,总能看到他们犯和我当年一模一样的错误。下面这三个陷阱,我敢说90%的PHP开发者都踩过,特别是刚入门的时候。
1. 版本兼容性:你以为的”最新最好”可能是个坑
记得我第一次用Ubuntu 20.04时,直接用apt安装了默认的PHP 7.4,结果项目死活跑不起来。后来发现项目要求PHP 7.2,而7.4移除了某些函数…
血泪教训:
- 永远先看项目文档的PHP版本要求
- 不要盲目追求最新版,特别是生产环境
- 学会用
php -v
确认当前版本
# 查看已安装的PHP版本
php -v
# 切换PHP版本(适用于多版本共存)
sudo update-alternatives --config php
2. 扩展缺失:那些”莫名其妙”的报错
上周还有个朋友问我:”为什么我的Laravel项目报错说找不到mbstring扩展?明明在php.ini里取消注释了啊!”
这种情况我遇到过太多次了,问题通常出在:
- 修改了错误的php.ini文件(cli和fpm用的可能不同)
- 忘记重启PHP服务
- 扩展根本没安装
# 查找实际加载的php.ini
php --ini
# 安装常见扩展(以Ubuntu为例)
sudo apt install php-mbstring php-curl php-xml
3. 权限问题:最让人抓狂的”403 Forbidden”
这个坑我踩得最惨。有一次部署项目后,所有页面都显示403,折腾了整整一下午才发现:
- 网站目录所有者是root
- PHP-FPM运行用户是www-data
- storage目录没有写权限
正确做法:
# 修改目录所有者
sudo chown -R www-data:www-data /var/www/html
# 设置storage目录权限(Laravel特供)
sudo chmod -R 775 storage/
其实这些问题都不复杂,但新手时期真的很容易被卡住。希望这篇分享能帮你少走弯路。如果你也遇到过其他奇葩的PHP环境问题,欢迎在评论区分享~
太真实了,PHP版本兼容性这块真的坑哭我,上次项目死活跑不起来就是因为这个😭