ubuntu lamp服务器配置技巧
导读:Ubuntu LAMP服务器配置技巧 一、安装优化:快速部署与基础配置 使用Tasksel工具一键安装LAMP环境,避免手动逐个安装的繁琐:sudo tasksel install lamp-server。安装完成后,通过sudo task...
Ubuntu LAMP服务器配置技巧
一、安装优化:快速部署与基础配置
使用Tasksel工具一键安装LAMP环境,避免手动逐个安装的繁琐:sudo tasksel install lamp-server。安装完成后,通过sudo tasksel install lamp-server命令自动处理依赖关系,快速搭建基础环境。安装后务必更新系统和软件:sudo apt update &
&
sudo apt upgrade,确保所有组件为最新版本,修复已知安全漏洞。
二、Apache性能与安全调优
- 工作模式选择:根据服务器负载调整Apache工作模式。默认的
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。
三、MySQL数据库优化
- 安全初始化:运行
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(根据并发需求调整,避免过多连接导致内存耗尽)。
四、PHP性能提升
- 启用OpCode缓存:使用
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。 - SSH安全:禁用root直接登录(修改
/etc/ssh/sshd_config:PermitRootLogin no)、使用密钥认证(PubkeyAuthentication yes)、修改默认SSH端口(Port 2222),降低SSH暴力破解风险。 - 文件权限管理:Web目录(如
/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)连接缓存服务器。 - 硬件升级:使用SSD硬盘替代传统机械硬盘(读写速度提升5-10倍),增加内存(根据并发量调整,如1GB内存适合小型站点,4GB及以上适合中型站点),显著提升服务器IO和数据处理能力。
- 定期维护:使用
logwatch(sudo apt install logwatch)监控系统日志(每日发送日志摘要),使用fail2ban(sudo apt install fail2ban)防止暴力破解(自动封禁多次失败的IP),定期清理临时文件(/tmp)和旧日志,保持服务器整洁。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu lamp服务器配置技巧
本文地址: https://pptw.com/jishu/739807.html
