怎样提升Ubuntu PHP配置性能
OPcache是PHP内置的字节码缓存扩展,可避免重复编译PHP脚本,显著降低CPU负载并提高响应速度。
sudo apt install php-opcache(根据PHP版本调整,如php7.4-opcache、php8.1-opcache)。/etc/php/{version}/fpm/php.ini(PHP-FPM)或/etc/php/{version}/cli/php.ini(命令行),添加/修改以下内容:zend_extension=opcache.so opcache.enable=1 opcache.memory_consumption=128 # 缓存内存大小(MB),根据服务器内存调整(如256M) opcache.max_accelerated_files=10000 # 缓存文件数量(需覆盖项目所有PHP文件) opcache.revalidate_freq=60 # 文件修改后重新验证间隔(秒),生产环境可设为0(禁用检查) opcache.fast_shutdown=1 # 快速关闭机制,减少内存释放时间 sudo systemctl restart php{version}-fpm(如php8.1-fpm)使配置生效。PHP-FPM的进程池配置直接影响服务器资源利用率,需根据服务器规格(CPU核心数、内存)调整:
pm.max_children为服务器可承受的最大进程数(如pm.max_children = 50,计算公式:(总内存 - 系统预留内存) / 单个PHP进程内存,单个进程内存可通过ps aux | grep php-fpm | awk '{print $6}' | sort -n | tail -1估算)。pm.start_servers(启动时进程数,如5)、pm.min_spare_servers(最小空闲进程,如5)、pm.max_spare_servers(最大空闲进程,如35),避免频繁创建/销毁进程。pm.process_idle_timeout)后销毁。pm.max_requests = 500(每个子进程处理的最大请求数),防止内存泄漏累积。优化PHP基础配置以适应高并发场景:
memory_limit(如memory_limit = 256M),根据应用需求调整(避免过大导致内存耗尽)。max_execution_time(如max_execution_time = 300,单位:秒),避免脚本无限执行。upload_max_filesize(如upload_max_filesize = 50M)和post_max_size(如post_max_size = 50M),匹配业务需求。location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php{version}-fpm.sock; # 替换{version}为实际版本 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } php{version}-fpm模块并配置代理:sudo a2enmod proxy_fcgi setenvif sudo a2enconf php{version}-fpm sudo systemctl restart apache2 htop(查看CPU/内存使用)、php-fpm-status(查看FPM进程状态,需开启pm.status_path = /status)、Prometheus+Grafana(可视化监控)跟踪性能指标。www.conf(/etc/php/{version}/fpm/pool.d/www.conf):slowlog = /var/log/php-fpm.slow.log request_slowlog_timeout = 1s # 慢请求阈值(秒) 重启PHP-FPM后,分析慢日志中的脚本和SQL语句,针对性优化。EXPLAIN分析执行计划)、启用数据库查询缓存(如MySQL的query_cache_type)。