在 Ubuntu 上优化 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 通常可以从 系统层、Apache、MySQL、PHP、缓存和安全 几个方面入手。下面给你一套比较实用、可落地的优化方案。
sudo apt update && sudo apt upgrade -y
编辑:
sudo nano /etc/security/limits.conf
添加:
* soft nofile 65535
* hard nofile 65535
systemctl list-unit-files --type=service
关闭不需要的服务(如 bluetooth、cups 等)。
查看当前 MPM:
apache2ctl -V | grep MPM
preforkevent(推荐)启用 event:
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
编辑:
sudo nano /etc/apache2/mods-available/mpm_event.conf
示例(2G–4G 内存):
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 3000
</IfModule>
sudo nano /etc/apache2/apache2.conf
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
sudo a2enmod deflate
配置:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
sudo a2enmod expires
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
</IfModule>
sudo apt install mysqltuner
mysqltuner
按建议修改配置。
编辑:
sudo nano /etc/mysql/my.cnf
示例(4G 内存):
[mysqld]
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
max_connections = 200
query_cache_size = 0
query_cache_type = 0
tmp_table_size = 64M
max_heap_table_size = 64M
MySQL 8 已移除 query cache
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php-fpm
sudo nano /etc/php/*/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
disable_functions = exec,passthru,shell_exec,system
sudo apt install php-opcache
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
sudo apt install redis-server
sudo ufw allow 22,80,443/tcp
sudo ufw enable
htop
iotop
netdata
如果你能告诉我:
我可以给你一份精准配置模板。