在Apache配置中优化PHP性能可以通过以下几个方面来实现:
PHP-FPM(FastCGI Process Manager)是一个PHP FastCGI实现,具有更好的性能和资源管理。
# 在httpd.conf或apache2.conf中添加
LoadModule php_module modules/libphp.so
AddHandler php-script .php
# 配置PHP-FPM
<FilesMatch \.php$>
SetHandler "proxy:fcgi://localhost:9000"
</FilesMatch>
# PHP-FPM配置文件(通常在/etc/php/7.x/fpm/pool.d/www.conf)
listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
OPcache可以缓存PHP字节码,减少脚本编译的开销。
# 在php.ini中启用OPcache
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
优化Apache的配置可以减少资源消耗和提高响应速度。
# 在httpd.conf或apache2.conf中调整
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 0
# 启用KeepAlive
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
使用Apache的模块缓存可以减少对PHP解释器的调用。
# 在httpd.conf或apache2.conf中启用模块缓存
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
<IfModule mod_cache.c>
<IfModule mod_cache_disk.c>
CacheRoot "/var/cache/apache2/mod_cache_disk"
CacheEnable disk /
CacheDirLevels 2
CacheDirLength 1
</IfModule>
</IfModule>
禁用不需要的Apache模块可以减少内存消耗和提高性能。
# 在httpd.conf或apache2.conf中禁用模块
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
启用Gzip压缩可以减少传输数据的大小,提高页面加载速度。
# 在httpd.conf或apache2.conf中启用Gzip压缩
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
根据应用的需求调整PHP的内存限制。
# 在php.ini中调整内存限制
memory_limit = 256M
使用持久连接可以减少TCP连接的建立和关闭开销。
# 在httpd.conf或apache2.conf中启用持久连接
KeepAlive On
MaxKeepAliveRequests 100
通过以上这些配置和优化,可以显著提高PHP在Apache服务器上的性能。记得在修改配置文件后重启Apache服务以使更改生效。