一、CentOS PHP版本选择策略
__toString()魔术方法的返回值类型)。mod_proxy_fcgi模块,Nginx需通过PHP-FPM与PHP通信。二、CentOS PHP安装与基础配置
sudo yum install epel-release -y
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y # CentOS 7
# sudo yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y # CentOS 8
sudo yum-config-manager --enable remi-php74 # 启用PHP 7.4仓库
sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-opcache -y
/etc/php.ini文件,调整关键参数以适应服务器环境:
memory_limit = 256M(根据应用需求调整,避免过大导致内存溢出);max_execution_time = 300(脚本最大执行时间,单位秒,适合上传或处理大量数据的场景);upload_max_filesize = 50M、post_max_size = 50M(允许上传的文件大小,需与前端表单enctype="multipart/form-data"配合);date.timezone = Asia/Shanghai(避免时间相关函数报错)。/etc/php-fpm.d/www.conf文件,调整进程池参数以提升并发处理能力:
pm = dynamic(动态调整进程数,适合大多数场景);pm.max_children = 50(根据服务器内存计算,公式:(可用内存 - 1G) / 单个进程内存,如1GB内存可设为30-40);pm.min_spare_servers = 5、pm.max_spare_servers = 35(保持一定数量的空闲进程,避免频繁创建/销毁);request_terminate_timeout = 30s(防止单个脚本长时间占用资源)。sudo systemctl restart php-fpm
sudo systemctl restart httpd # Apache
# sudo systemctl restart nginx # Nginx
php -v
三、CentOS PHP性能优化配置
/etc/php.ini文件,添加以下配置:[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128 # OPcache缓存大小(MB),根据内存调整
opcache.interned_strings_buffer=8 # 内部字符串缓存大小
opcache.max_accelerated_files=4000 # 缓存的脚本文件数量
opcache.revalidate_freq=60 # 脚本重新验证时间(秒),避免频繁检查文件修改
pm.max_children(如服务器内存为2GB,可设为50-60)、pm.start_servers(如设为10,启动时的进程数)等参数,避免进程过多导致服务器崩溃。server块中添加PHP处理配置,确保fastcgi_pass指向PHP-FPM的socket或端口:location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
mod_proxy_fcgi模块,在VirtualHost中添加PHP处理配置:<FilesMatch \.php$>
SetHandler "proxy:fcgi://unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>
top、htop、vmstat等工具监控服务器资源使用情况(CPU、内存、磁盘IO),根据实际情况调整PHP-FPM进程数、OPcache缓存大小等参数。