在 Debian 上优化 LAMP(Linux + Apache + MySQL/MariaDB + PHP)可以从系统层、Apache、MySQL/MariaDB、PHP、缓存与运维几个方面入手。下面给你一套实用、可落地的优化方案。
apt update && apt upgrade -y
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
vm.swappiness = 10
sysctl -p
/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
a2dismod php* mpm_prefork
a2enmod mpm_event
a2enmod proxy_fcgi setenvif
a2enconf php*-fpm
/etc/apache2/mods-enabled/mpm_event.conf
<IfModule mpm_event_module>
StartServers 4
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 200
MaxConnectionsPerChild 1000
</IfModule>
a2dismod status autoindex cgi
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"
</IfModule>
apt install php-fpm php-cli php-mysql
/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
pm.max_requests = 500
memory_limit = 128M
opcache.enable=1
opcache.memory_consumption=128
opcache.revalidate_freq=60
upload_max_filesize = 20M
post_max_size = 20M
apt install mariadb-server
示例(2G~4G 内存):
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
query_cache_type = 0
max_connections = 200
slow_query_log = 1
OPTIMIZE TABLE table_name;
已包含在 php-opcache
apt install redis-server
用于:
ufw allow 22,80,443/tcp
ufw enable
apt install certbot python3-certbot-apache
certbot --apache
apt install htop iotop nload
数据库:
SHOW PROCESSLIST;
| 场景 | 建议 |
|---|---|
| 小型网站 | event + php-fpm + opcache |
| 高并发 | Redis + CDN + 静态化 |
| 数据库重 | 提升 innodb_buffer_pool |
| 动态接口 | 减少 PHP 请求时间 |
如果你愿意,可以告诉我:
我可以直接给你一套针对性配置。