在Ubuntu上优化PHP与Apache可以通过以下几个步骤来实现:
1. 安装和启用PHP-FPM
- 使用
apt-get
安装PHP-FPM:sudo apt-get install php-fpm
- 编辑PHP-FPM配置文件
/etc/php/7.x/fpm/pool.d/www.conf
(根据实际安装的PHP版本修改7.x
),调整以下设置以优化性能:pm.max_children
:设置最大子进程数。pm.start_servers
:设置启动时的服务器进程数。pm.min_spare_servers
和pm.max_spare_servers
:设置空闲服务器进程的最小和最大数量。
- 重启PHP-FPM服务:
sudo systemctl restart php7.x-fpm
2. 配置Apache使用PHP-FPM
- 编辑Apache配置文件
/etc/apache2/mods-enabled/proxy_fcgi.conf
,添加以下内容:SetHandler "proxy:unix:/run/php/php7.x-fpm.sock|fcgi://localhost" - 替换
7.x
为实际的PHP版本。 - 重启Apache服务:
sudo systemctl restart apache2
3. 安装和启用OPcache
- 安装OPcache扩展:
sudo apt-get install php-opcache
- 在
php.ini
文件中启用OPcache:[opcache] zend_extension = /usr/lib/php/2.x/opcache.so opcache.enable = 1 opcache.memory_consumption = 64 opcache.max_accelerated_files = 4000 opcache.revalidate_freq = 2 opcache.fast_shutdown = 1
- 重启Apache服务以使更改生效。
4. 调整PHP配置
- 编辑
php.ini
文件,调整以下设置以优化性能:memory_limit
:根据服务器内存调整。post_max_size
和upload_max_filesize
:根据实际需求调整。max_execution_time
:根据脚本需求调整。max_input_vars
和max_input_time
:根据输入数据量调整。
5. 安装和配置常用PHP扩展
- 根据项目需求安装必要的PHP扩展,例如:
sudo apt-get install php7.x-mysql php7.x-curl php7.x-json php7.x-mbstring php7.x-xml php7.x-intl php7.x-gd php7.x-curl php7.x-xmlrpc php7.x-bz2 php7.x-interbase php7.x-pgsql php7.x-recode php7.x-sybase php7.x-xsl php7.x-dba php7.x-phpdbg php7.x-snmp php7.x-tidy php7.x-zip
6. 优化Apache配置
- 编辑Apache的主配置文件
/etc/apache2/apache2.conf
或虚拟主机配置文件,进行以下优化:- 启用KeepAlive以减少TCP连接的开销。
- 使用
mod_expires
和mod_deflate
等缓存技术提高响应速度。 - 合理设置并发连接数。
- 如果需要,使用
mod_proxy
等实现负载均衡。
7. 监控和调优
- 使用工具如New Relic、Blackfire等监控应用程序性能,找出瓶颈并进行相应的优化。
请注意,每个应用程序都有其特点,因此在进行优化时,请根据你的具体情况进行调整。