在 Debian 上优化 LAMP(Linux + Apache + MySQL/MariaDB + PHP),可以从系统、Apache、数据库、PHP 及缓存等多个层面入手。下面给你一套实用、可落地的优化方案(以 Debian 11/12 为例,Apache 2.4,MariaDB/MySQL,PHP 8.x)。
apt update && apt upgrade -y
优化 /etc/sysctl.conf:
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
vm.swappiness = 10
sysctl -p
/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
查看当前 MPM:
apachectl -V | grep MPM
推荐:
prefork 或 event + php-fpmevent启用 event + php-fpm(推荐):
apt install php-fpm
a2enmod proxy_fcgi setenvif
a2enconf php8.2-fpm
/etc/apache2/mods-enabled/mpm_event.conf
<IfModule mpm_event_module>
StartServers 4
MinSpareThreads 64
MaxSpareThreads 128
ThreadsPerChild 64
MaxRequestWorkers 512
MaxConnectionsPerChild 5000
</IfModule>
a2dismod autoindex status dav dav_fs
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 1 month"
ExpiresByType text/css "access plus 1 week"
</IfModule>
/etc/php/8.2/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 120
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 40
pm.max_requests = 1000
/etc/php/8.2/fpm/php.ini
memory_limit = 256M
upload_max_filesize = 32M
post_max_size = 48M
opcache.enable=1
opcache.memory_consumption=128
opcache.revalidate_freq=60
apt install mysqltuner
mysqltuner
/etc/mysql/mariadb.conf.d/50-server.cnf
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
query_cache_type = 0
max_connections = 200
thread_cache_size = 32
原则:
innodb_buffer_pool_size ≈ 70% 内存
apt install php8.2-opcache
apt install redis-server php-redis
用于:
ufw 限制端口mod_security(可选)goaccess)apt install apache2-utils
ab -n 1000 -c 100 http://localhost/
如果你愿意,我可以:
你现在的 Debian 版本和服务器配置是?