在Ubuntu上优化Apache的PHP运行环境可以通过以下步骤进行:
安装PHP和Apache模块:
sudo apt-get update
sudo apt-get install php libapache2-mod-php
启用OPcache:
编辑 /etc/php/7.x/apache2/php.ini
文件(其中7.x是安装的PHP版本),取消以下行的注释或添加这些行:
zend_extension = opcache.so
opcache.enable = 1
opcache.memory_consumption = 64
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 2
opcache.fast_shutdown = 1
然后重启Apache:
sudo systemctl restart apache2
选择合适的MPM模式:
根据服务器需求选择合适的MPM,例如 prefork
、worker
或 event
。可以通过以下命令查看当前模式:
httpd -V
prefork
适用于非线程安全的PHP。worker
或 event
适用于线程安全的版本。调整MPM配置:
针对所选的MPM调整参数,如 MaxRequestWorkers
、ThreadLimit
等,以匹配服务器的资源。
启用KeepAlive:
在Apache中启用KeepAlive以减少TCP连接的开销。在 httpd.conf
文件中添加或取消以下行的注释:
KeepAlive On
限制并发连接数:
合理设置并发连接数,防止服务器过载。在 httpd.conf
文件中调整 MaxClients
参数。
调整PHP设置:
编辑 /etc/php/7.x/apache2/php.ini
文件,调整以下设置以优化性能:
memory_limit = 256M
max_execution_time = 30
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
使用PHP-FPM: 使用PHP-FPM(FastCGI Process Manager)而不是mod_php,可以提高性能并减少内存消耗。安装PHP-FPM:
sudo apt-get install php7.x-fpm
配置PHP-FPM:
编辑 /etc/php/7.x/fpm/pool.d/www.conf
文件,调整以下设置以优化性能:
pm.max_children = 15
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
mod_expires
和 mod_deflate
等缓存技术提高响应速度。在 httpd.conf
文件中添加或取消以下行的注释:LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
移除不用的模块: 移除不需要的Apache模块以减少资源消耗。
使用持久连接: 使用持久连接或连接池来优化数据库连接。
优化代码: 检查并优化PHP代码,避免使用低效的算法和数据结构,减少不必要的计算和资源消耗。
通过以上步骤,可以显著提升Ubuntu上Apache与PHP的运行效率和性能。每个应用程序都有其特点,因此在进行优化时,请根据具体情况进行调整。