温馨提示×

怎样优化debian lamp

小樊
45
2026-09-01 20:18:47
栏目: 智能运维

优化 Debian 上的 LAMP(Linux + Apache + MySQL/MariaDB + PHP)环境,通常从系统层、Apache、数据库、PHP、缓存与运维几个维度来做。下面给你一套比较实用、可落地的优化方案。


一、系统层优化(基础)

1. 更新系统与内核

apt update && apt upgrade -y

建议用较新的 Debian 稳定版(如 Debian 11/12)。

2. 禁用不必要服务

systemctl disable bluetooth
systemctl disable avahi-daemon

只保留 SSH、LAMP 相关服务。

3. 调整文件描述符限制

编辑 /etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535

并在 /etc/systemd/system.conf 中:

DefaultLimitNOFILE=65535

4. 使用 SSD + 合理分区

  • /var/www 单独分区
  • 数据库目录(如 /var/lib/mysql)放高性能磁盘

二、Apache 优化

1. 选择合适的 MPM

查看当前 MPM:

apachectl -V | grep MPM

推荐:

  • 静态站 / 高并发event
  • 老 PHP(无 FPM)prefork

启用 event + PHP-FPM(推荐):

a2dismod phpX mpm_prefork
a2enmod mpm_event proxy_fcgi setenvif
a2enconf phpX-fpm

2. 调整 MPM 参数(event 示例)

编辑 /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>

3. 开启压缩与缓存

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>

4. 关闭多余模块

a2dismod status autoindex cgi

三、PHP 优化(PHP-FPM 为主)

1. 使用 PHP-FPM(强烈推荐)

apt install php-fpm

2. 调整 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

3. 禁用危险函数

disable_functions = exec,passthru,shell_exec,system

4. OPcache 加速

apt install php-opcache

php.ini

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000

四、MySQL / MariaDB 优化

1. 使用 MariaDB(Debian 默认)

apt install mariadb-server

2. 基础参数优化

编辑 /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

3. 定期维护

mysqlcheck -oA --auto-repair

五、缓存层(非常重要)

1. 开启 Apache + Redis/Memcached

apt install redis-server php-redis

应用层(如 WordPress):

  • Redis Object Cache
  • OPcache

2. 静态资源走 CDN

  • js/css/img 放 CDN
  • Apache 只处理动态请求

六、安全与运维优化

1. 防火墙

ufw allow 22
ufw allow 80
ufw allow 443
ufw enable

2. 日志与监控

  • htop
  • netdata
  • logrotate

3. 自动更新(谨慎)

apt install unattended-upgrades

七、常见性能瓶颈对照表

现象 可能原因
CPU 高 PHP 慢 / SQL 慢
内存爆 FPM 进程过多
磁盘 IO 高 没开缓存
并发上不去 Apache MPM 不对

如果你愿意,我可以:

  • ✅ 针对 WordPress / Laravel / 自研 PHP 给专项优化
  • ✅ 根据你服务器 内存 / CPU 给具体参数
  • ✅ 帮你做一份 LAMP 优化检查清单

你现在的服务器配置和用途是什么?

0