php.ini是PHP的核心配置文件,负责全局设置,通常位于/etc/php.ini(CentOS默认路径)。常见配置项包括:
memory_limit(脚本最大内存限制,如256M)、max_execution_time(脚本最大执行时间,如30秒)、upload_max_filesize(单个上传文件大小,如10M)、post_max_size(POST请求最大数据量,需大于upload_max_filesize,如12M)。display_errors(生产环境建议设为Off,避免敏感信息泄露)、log_errors(开启错误日志,如On)、error_log(日志文件路径,如/var/log/php_errors.log)、error_reporting(错误报告级别,如E_ALL)。date.timezone(如Asia/Shanghai,避免时间显示异常)。file_uploads(是否允许文件上传,设为On)、upload_tmp_dir(上传文件临时目录,需确保可写)。extension=模块名.so(如extension=mysqli.so)加载动态扩展,或通过/etc/php.d/目录下的.ini文件(如opcache.ini)启用扩展。PHP-FPM(FastCGI进程管理器)用于优化PHP性能,配置文件通常位于/etc/php-fpm.d/www.conf(CentOS默认路径)。常见配置项包括:
pm(进程管理模式,推荐dynamic动态调整)、pm.max_children(最大子进程数,根据服务器内存计算,如50)、pm.start_servers(启动时的子进程数,如5)、pm.min_spare_servers(最小空闲子进程数,如5)、pm.max_spare_servers(最大空闲子进程数,如35)、pm.max_requests(每个子进程处理的最大请求数,防止内存泄漏,如500)。listen(监听方式,可选Unix socket如/run/php-fpm/www.sock或TCP端口如127.0.0.1:9000,Unix socket性能更优)、listen.owner/listen.group(监听文件的属主/属组,需与Web服务器用户一致,如nginx/nginx)。user/group(PHP-FPM进程运行的用户/组,如nginx/nginx,需与Web服务器用户一致)。需配置Web服务器与PHP处理器(PHP-FPM或mod_php)通信:
/etc/nginx/conf.d/default.conf)中添加location ~ \.php$块,关键配置包括:fastcgi_pass(指向PHP-FPM的监听地址,如unix:/run/php-fpm/www.sock或127.0.0.1:9000)、fastcgi_param SCRIPT_FILENAME(脚本文件路径,如$document_root$fastcgi_script_name)、include fastcgi_params(引入FastCGI参数)。mod_php模块(sudo yum install mod_php)和mod_proxy_fcgi模块(sudo yum install mod_proxy_fcgi),在虚拟主机配置中添加SetHandler "proxy:fcgi://localhost:9000"(若使用PHP-FPM的TCP监听),或LoadModule php_module modules/libphp.so(若使用mod_php)。OPcache通过缓存编译后的PHP字节码提升性能,需安装php-opcache扩展(sudo yum install php-opcache)并在php.ini中配置:
[opcache]段关键配置:opcache.enable=1(开启OPcache)、opcache.memory_consumption=128(缓存内存大小,如128M)、opcache.max_accelerated_files=4000(最大加速文件数,根据项目文件数量调整)、opcache.revalidate_freq=60(缓存验证频率,单位秒,如60秒)。php.ini中设置disable_functions(如phpinfo, passthru, exec, system, shell_exec),防止恶意代码执行。php.ini中设置expose_php=Off,避免暴露PHP版本信息。setenforce 0临时关闭,或semanage port -a -t http_port_t -p tcp 9000允许PHP-FPM端口),并通过firewall-cmd开放Web端口(如80/443)。以上配置项覆盖了CentOS下PHP环境的核心设置,需根据实际应用需求(如内存大小、并发量、安全要求)调整参数值,并在修改后重启对应服务(sudo systemctl restart php-fpm、sudo systemctl restart nginx/apache)使配置生效。