在 Debian 上搭建 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 并做到“稳定”,核心不是某个神秘参数,而是版本选择、服务隔离、资源限制、日志与监控。下面给你一套生产可用的稳定配置思路(以 Debian 11/12 为例)。
cat /etc/debian_version
推荐:
❌ 不要用 testing / sid 跑生产
apt update && apt upgrade -y
apt install -y curl wget vim ufw fail2ban
ufw allow 22
ufw allow 80
ufw allow 443
ufw enable
apt install -y apache2
a2dismod mpm_prefork
a2enmod mpm_event
a2enmod rewrite headers ssl
/etc/apache2/mods-enabled/mpm_event.conf<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 2000
</IfModule>
✅ MaxConnectionsPerChild 防止内存泄漏
vim /etc/apache2/conf-enabled/timeout.conf
Timeout 30
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
apt install -y php-fpm php-cli php-mysql php-curl php-gd php-mbstring php-xml php-zip
a2enmod proxy_fcgi setenvif
a2enconf php-fpm
/etc/php/*/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 500
✅ pm.max_requests 防止 PHP 内存泄漏
upload_max_filesize = 20M
post_max_size = 20M
memory_limit = 128M
max_execution_time = 30
expose_php = Off
apt install -y mariadb-server
mysql_secure_installation
/etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
max_connections = 150
innodb_buffer_pool_size = 256M
query_cache_type = 0
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
✅ 小内存机器别乱开 query cache
mkdir -p /var/www/example.com/public
chown -R www-data:www-data /var/www/example.com
chmod -R 755 /var/www
Apache 虚拟主机:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example.com/public
<Directory /var/www/example.com/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
/var/log/apache2//var/log/php*fpm.log/var/log/mysql/apt install -y htop netdata
或最少装:
apt install -y logwatch
| 问题 | 原因 |
|---|---|
| 内存爆 | prefork + 高并发 |
| 网站卡死 | PHP 无 max_requests |
| 数据库崩 | buffer pool 太大 |
| 被入侵 | 目录 777 |
| 随机 503 | Apache/PHP 连接数不匹配 |
Debian LAMP 稳定 = Apache(event) + PHP-FPM + MariaDB + 合理连接数 + 日志监控
如果你愿意,我可以:
你现在是哪种用途?