优化 Debian 上的 LAMP(Linux + Apache + MySQL/MariaDB + PHP)环境,通常从系统层、Apache、数据库、PHP、缓存与运维几个维度来做。下面给你一套比较实用、可落地的优化方案。
apt update && apt upgrade -y
建议用较新的 Debian 稳定版(如 Debian 11/12)。
systemctl disable bluetooth
systemctl disable avahi-daemon
只保留 SSH、LAMP 相关服务。
编辑 /etc/security/limits.conf:
* soft nofile 65535
* hard nofile 65535
并在 /etc/systemd/system.conf 中:
DefaultLimitNOFILE=65535
/var/www 单独分区/var/lib/mysql)放高性能磁盘查看当前 MPM:
apachectl -V | grep MPM
推荐:
eventprefork启用 event + PHP-FPM(推荐):
a2dismod phpX mpm_prefork
a2enmod mpm_event proxy_fcgi setenvif
a2enconf phpX-fpm
编辑 /etc/apache2/mods-enabled/mpm_event.conf:
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 5000
</IfModule>
a2enmod deflate expires headers
示例:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 30 days"
ExpiresByType text/css "access plus 7 days"
</IfModule>
a2dismod status autoindex cgi
apt install php-fpm
编辑 /etc/php/X/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
apt install php-opcache
php.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
apt install mariadb-server
编辑 /etc/mysql/mariadb.conf.d/50-server.cnf:
[mysqld]
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
query_cache_type = 0
max_connections = 200
slow_query_log = 1
mysqlcheck -oA --auto-repair
apt install redis-server php-redis
应用层(如 WordPress):
ufw allow 22
ufw allow 80
ufw allow 443
ufw enable
htopnetdatalogrotateapt install unattended-upgrades
| 现象 | 可能原因 |
|---|---|
| CPU 高 | PHP 慢 / SQL 慢 |
| 内存爆 | FPM 进程过多 |
| 磁盘 IO 高 | 没开缓存 |
| 并发上不去 | Apache MPM 不对 |
如果你愿意,我可以:
你现在的服务器配置和用途是什么?