php ini常用配置参数
- 2025-06-23 19:57:00
- 丁国栋
- 原创 5
php.ini
是 PHP 的主配置文件,其中包含了控制 PHP 行为的各种参数。下面是一些 常用的配置参数,并根据它们的 重要性排序,排序依据包括:
- 对 PHP 程序运行的影响程度(如内存、错误处理、安全)
- 网站部署常见性(如文件上传、时区)
- 是否影响开发与生产环境的差异
常用 php.ini
配置参数排序(含说明)
1. error_reporting
- 作用:设置错误报告级别
- 示例:
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
- 重要性:调试和生产环境必须区分,避免暴露敏感信息。
- 参考: https://www.php.net/manual/en/errorfunc.constants.php
2. display_errors
- 作用:是否将错误显示在页面上
- 示例:
display_errors = Off
(生产环境建议设置为Off) - 重要性:开发和部署环境必须严格控制,避免安全风险。
3. memory_limit
- 作用:PHP 脚本最大可使用内存
- 示例:
memory_limit = 128M
- 重要性:防止单个脚本消耗过多资源,影响服务器稳定性。
4. upload_max_filesize
- 作用:允许上传的单个文件的最大大小
- 示例:
upload_max_filesize = 10M
- 重要性:影响上传功能,尤其是图片/文档类网站。
5. post_max_size
- 作用:POST 数据的最大大小(包含文件上传)
- 示例:
post_max_size = 20M
- 重要性:必须大于等于
upload_max_filesize
,否则上传失败。
6. max_execution_time
- 作用:脚本最大执行时间(秒)
- 示例:
max_execution_time = 30
- 重要性:防止脚本死循环或运行过久。
7. date.timezone
- 作用:设置默认时区
- 示例:
date.timezone = Asia/Shanghai
- 重要性:影响时间函数输出,避免时间不一致。
8. session.save_handler
和 session.save_path
- 作用:session 类型和文件保存路径
- 示例:
session.save_handler = files|redis
,session.save_path = "/var/lib/php/sessions"|tcp://127.0.0.1:6379?auth=password
- 重要性:影响 session 功能是否正常,尤其是共享主机部署。
9. file_uploads
- 作用:是否启用 HTTP 文件上传
- 示例:
file_uploads = On
- 重要性:影响表单文件上传功能。
10. allow_url_fopen
- 作用:是否允许使用 URL 打开文件(如
fopen("http://...")
) - 示例:
allow_url_fopen = Off
- 重要性:安全相关,生产环境建议关闭,除非必要。
其他常用参数(根据需要启用)
参数名 | 作用 | 示例 |
---|---|---|
max_input_vars |
控制表单提交变量的最大数目 | max_input_vars = 1000 |
default_charset |
默认字符编码 | default_charset = "UTF-8" |
short_open_tag |
是否支持短标签 <? ?> |
short_open_tag = Off |
log_errors |
是否记录错误日志 | log_errors = On |
error_log |
自定义错误日志路径 | error_log = /var/log/php_errors.log |
extension |
启用 PHP 扩展模块 | extension=mysqli |
在 生产环境 中,error_reporting
的设置应确保:
- 错误不会显示给终端用户(防止信息泄露)
- 错误记录到日志中(方便开发者排查)
- 只报告严重错误,避免日志中出现大量不必要的提示信息
推荐设置(生产环境)
error_reporting = E_ERROR
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
参数说明:
E_ERROR
:致命运行时错误E_WARNING
:运行时警告(非致命错误)E_PARSE
:编译时解析错误display_errors = Off
:不在页面上显示错误log_errors = On
:将错误写入日志error_log
:指定错误日志文件路径(确保该路径可写)
进阶建议:
- 不要使用
E_ALL
,因为它会包含E_NOTICE
和E_DEPRECATED
,这些在生产环境中通常不需要。 - 确保日志目录权限正确,否则 PHP 可能无法写入错误日志。
- 定期清理日志文件,防止磁盘空间占满。
发表评论