Ubuntu LAMP服务器配置技巧
使用Tasksel工具一键安装LAMP环境,避免手动逐个安装的繁琐:sudo tasksel install lamp-server。安装完成后,通过sudo tasksel install lamp-server命令自动处理依赖关系,快速搭建基础环境。安装后务必更新系统和软件:sudo apt update && sudo apt upgrade,确保所有组件为最新版本,修复已知安全漏洞。
Prefork模式适合小型站点,但并发能力有限;Event模式(推荐)支持更高并发,适合中型及以上站点。修改/etc/apache2/mods-enabled/mpm_event.conf文件,调整MaxRequestWorkers(最大并发请求数,如150)、MaxConnectionsPerChild(每个子进程处理的最大请求数,如1000)等参数,平衡性能与资源消耗。KeepAlive(减少TCP连接建立开销)和mod_deflate(Gzip压缩,减小传输数据量)。在/etc/apache2/apache2.conf中添加:KeepAlive On、KeepAliveTimeout 5、MaxKeepAliveRequests 100;启用mod_deflate后,在虚拟主机配置中添加压缩规则:AddOutputFilterByType DEFLATE text/html text/plain text/css application/json application/javascript。/etc/apache2/sites-available/example.com.conf)管理多站点,内容示例:<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
<Directory "/var/www/example.com/public_html">
Require all granted
AllowOverride All # 允许.htaccess覆盖配置
</Directory>
</VirtualHost>
启用虚拟主机:sudo a2ensite example.com.conf,然后重启Apache:sudo systemctl restart apache2。sudo mysql_secure_installation命令,完成以下操作:设置root密码、删除匿名用户、禁止root远程登录、删除测试数据库,提升数据库安全性。id、username)创建索引,使用EXPLAIN分析慢查询(SELECT * FROM users WHERE username='test'),优化SQL语句(如避免SELECT *、减少子查询)。/etc/mysql/my.cnf(MySQL 8.0为/etc/mysql/mysql.conf.d/mysqld.cnf),优化内存使用:innodb_buffer_pool_size = 1G(设置为物理内存的50%-70%,用于缓存数据和索引)、max_connections = 200(根据并发需求调整,避免过多连接导致内存耗尽)。APCu(推荐)或OPcache缓存编译后的PHP代码,减少重复编译开销。安装APCu:sudo apt install php-apcu,修改/etc/php/8.1/apache2/php.ini(版本号根据实际调整):extension=apcu.so、apc.enabled=1、apc.shm_size=128M。foreach中执行SELECT),使用预处理语句防止SQL注入($stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?"); $stmt->execute([$id]);),减少不必要的文件操作(如频繁读取配置文件)。UFW(Uncomplicated Firewall)限制访问,仅开放必要端口(HTTP 80、HTTPS 443、SSH 22):sudo ufw allow 80/tcp、sudo ufw allow 443/tcp、sudo ufw allow 22/tcp,然后启用防火墙:sudo ufw enable。/etc/ssh/sshd_config:PermitRootLogin no)、使用密钥认证(PubkeyAuthentication yes)、修改默认SSH端口(Port 2222),降低SSH暴力破解风险。/var/www/html)设置合理权限:sudo chown -R www-data:www-data /var/www/html(www-data为Apache默认用户)、sudo chmod -R 755 /var/www/html(目录权限755,文件权限644),避免敏感文件(如config.php)泄露。Memcached或Redis缓存数据库查询结果(如用户会话、热门文章),减少数据库访问次数。安装Redis:sudo apt install redis-server,在PHP代码中使用redis扩展(extension=redis.so)连接缓存服务器。logwatch(sudo apt install logwatch)监控系统日志(每日发送日志摘要),使用fail2ban(sudo apt install fail2ban)防止暴力破解(自动封禁多次失败的IP),定期清理临时文件(/tmp)和旧日志,保持服务器整洁。