PHP环境配置核心是版本、扩展与Web服务器三者协同:新项目选PHP 8.2/8.3(LTS+JIT),老项目依框架要求(如Laravel 11需≥8.2);Linux用apt install php8.2显式安装,Windows选TS版并配php.ini,macOS用Homebrew后加PATH;扩展按需启用mysqli/gd/curl等,装完用php -m和phpinfo()双验证;Apache用mod_php需a2enmod,Nginx必配php-fpm及fastcgi_pass,避免.php文件被下载。

PHP环境配置不是堆砌组件,而是一套协同逻辑:版本决定能力边界,扩展填补功能缺口,Web服务器负责把请求准确交给PHP处理。三者不匹配,轻则报错,重则白屏或下载源码。
选对PHP版本是起点
别盲目追新。新项目优先选PHP 8.2或8.3——它们有LTS支持、JIT优化和更严格的类型检查;老项目升级前先查框架文档,比如Laravel 11要求≥8.2,WordPress插件可能依赖mbstring但不会自动提醒你缺它。Linux下用apt install php8.2显式指定版本,避免系统默认装了8.1导致兼容问题。Windows用户从php.net下载时注意选“Thread Safe”版,macOS用Homebrew安装后记得把/opt/homebrew/bin加进~/.zshrc的PATH里。
扩展不是越多越好,而是按需启用
常用扩展如mysqli(数据库)、gd(图片处理)、curl(HTTP请求)必须装齐,否则运行时直接报Call to undefined function。Linux用包管理器最稳:sudo apt install php8.2-mysql php8.2-gd php8.2-curl;Windows则解压后在php.ini里取消extension=mysqli这类行的注释,并确认extension_dir = "ext"路径正确。装完务必验证:php -m | grep mysqli看CLI是否加载,phpinfo()网页里查Web环境是否生效——两者可能加载不同php.ini文件。
Web服务器要和PHP运行模式对上号
Apache通常用mod_php(直接嵌入),Nginx必须配php-fpm(独立进程)。Apache装完libapache2-mod-php8.2后,要执行a2enmod php8.2并重启服务;Nginx则要在server块里写fastcgi_pass 127.0.0.1:9000或指向.sock文件,且确保php8.2-fpm服务已启动。常见错误是页面直接下载.php文件——说明Web服务器根本没把PHP当处理器,不是PHP没装好,而是模块没挂载或配置没生效。
立即学习“PHP免费学习笔记(深入)”;
测试和排查抓三个关键点
• 运行php -v确认CLI可用
• 创建info.php放Web根目录,访问http://localhost/info.php看完整配置页
• 对照phpinfo()顶部显示的Loaded Configuration File路径,去编辑那个真实的php.ini,而不是凭印象改错位置



















