在Debian上部署和优化LAMP(Linux, Apache, MySQL/MariaDB, PHP)栈是一个常见的需求,尤其是在需要高性能和高稳定性的Web应用中。以下是一些优化性能的步骤和建议:
apt
安装指定版本及其模块,例如:sudo apt install php8.2 libapache2-mod-php8.2 php8.2-mysql php8.2-fpm
mod_rewrite
和mod_expires
等模块以优化静态内容处理。sudo a2enmod rewrite
sudo a2enmod expires
/etc/apache2/apache2.conf
或/etc/apache2/sites-available/000-default.conf
,调整以下参数:
StartServers
: 控制启动时的服务器进程数。MinSpareServers
和MaxSpareServers
: 控制空闲服务器进程的数量。MaxRequestWorkers
: 限制同时处理请求的服务器进程数。MaxConnectionsPerChild
: 限制每个服务器进程处理的请求数。/etc/mysql/mariadb.conf.d/50-server.cnf
,调整以下参数:
innodb_buffer_pool_size
: 设置InnoDB缓冲池大小,通常是系统内存的50%-80%。query_cache_size
: 启用查询缓存,但要注意其开销。max_connections
: 设置最大并发连接数。mysqlcheck
进行数据库优化和修复。sudo mysqlcheck -u root -p --all-databases --auto-repair
/etc/php/8.2/apache2/php.ini
,调整以下参数:
memory_limit
: 根据应用需求调整内存限制。max_execution_time
: 设置脚本的最大执行时间。upload_max_filesize
和post_max_size
: 调整文件上传大小。/etc/php/8.2/fpm/pool.d/www.conf
,调整以下参数:
pm.max_children
: 设置池中的子进程数。pm.start_servers
: 设置启动时的子进程数。pm.min_spare_servers
和pm.max_spare_servers
: 控制空闲子进程的数量。sudo apt install php8.2-opcache
sudo phpenmod opcache
sudo systemctl restart apache2
/etc/network/interfaces
或netplan
(如果使用Netplan)。sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
htop
、glances
或Prometheus
和Grafana
监控系统性能。通过以上步骤,可以显著提高Debian上LAMP栈的性能和稳定性。根据具体需求和环境,可能需要进一步调整和优化。