php源码搭建后需手动复制php.ini-production并配置5个基础参数:memory_limit、upload_max_filesize、post_max_size、max_execution_time、date.timezone及error_reporting;扩展需编译后用完整路径启用,修改后须重启服务并验证。

PHP源码搭建后,php.ini 是控制运行行为的核心配置文件。它不随编译自动生效,必须手动复制模板、编辑参数并重启服务。基础配置的关键不在“全改”,而在“改对位置、改准数值、改后验证”。
定位并启用正确的 php.ini 文件
源码编译安装后,不会自动生成 php.ini。需从源码包中手动复制模板:
- 进入解压后的 PHP 源码目录(如
php-8.2.12/) - 执行:
cp php.ini-production /usr/local/php/etc/php.ini(路径需与 configure 时--with-config-file-path一致) - 确认生效路径:运行
php --ini或创建info.php输出phpinfo(),查看 “Loaded Configuration File” 项 - 切勿修改
php.ini-development—— 它默认开启错误显示,仅适合本地调试
必须设置的 5 个基础参数
以下参数影响脚本能否正常运行,缺一不可:
- memory_limit = 256M:单脚本最大内存,默认常为 128M,处理图片或大数组易爆内存
-
upload_max_filesize = 64M:上传单个文件上限,需同步调整
post_max_size = 72M(必须 ≥ upload_max_filesize) - max_execution_time = 300:脚本最长执行时间(秒),CLI 环境可设为 0(不限制)
-
date.timezone = Asia/Shanghai:取消注释并填入有效时区,否则
date()、strtotime()返回警告 - error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT:报告所有错误但过滤过时和严格警告,兼顾开发与兼容性
扩展模块启用方式
源码编译时未启用的扩展(如 gd、opcache),不能仅靠 extension=gd 就生效:
- 先确认扩展已编译进 PHP:运行
php -m | grep gd;若无输出,需用phpize单独编译安装 - 在
php.ini中写明完整路径更稳妥:extension=/usr/local/php/lib/php/extensions/no-debug-zts-20220829/gd.so - OPcache 必须同时启用:添加
zend_extension=opcache.so(注意是zend_extension,非extension) - 修改后务必运行
php -m验证模块是否加载成功
验证配置是否真正生效
改完保存 ≠ 生效。常见失效原因包括:
- Web 服务(Apache/Nginx)和 PHP-FPM 服务都需重启:
systemctl restart php-fpm nginx - CLI 和 Web SAPI 使用不同 php.ini:用
php --ini和phpinfo()分别确认 - 某些参数(如
error_reporting)会被运行时函数覆盖,建议在php.ini中设好再用代码微调 - OPcache 缓存旧字节码?执行
opcache_reset()或重启 PHP-FPM 清除
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











