Debian LAMP如何定制环境
导读:Debian LAMP 定制环境指南 一 基础安装与验证 更新系统并安装组件: sudo apt update && sudo apt upgrade -y sudo apt install apache2 mariad...
Debian LAMP 定制环境指南
一 基础安装与验证
- 更新系统并安装组件:
- sudo apt update & & sudo apt upgrade -y
- sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql -y
- 安全初始化数据库:
- sudo mysql_secure_installation(设置 root 密码、移除匿名用户、禁止远程 root 等)
- 验证安装:
- 创建测试文件:echo “” | sudo tee /var/www/html/info.php
- 浏览器访问:http://服务器IP/info.php
- 防火墙放行 Web 服务(如使用 UFW):
- sudo ufw allow ‘Apache Full’ 或分别放行 80/443 端口
二 核心定制维度与做法
- 组件版本与扩展
- 安装所需 PHP 扩展:sudo apt install php-cli php-common php-curl php-gd php-json php-mbstring php-xml php-zip php-readline
- 按需选择 PHP 版本(Debian 12 常用 PHP 8.2;如需切换版本,使用 Debian 的版本元包或在 sources.list 中启用 backports)
- Apache 站点与目录
- 多站点使用虚拟主机:创建 /etc/apache2/sites-available/example.conf,示例:
- <
VirtualHost *:80>
- ServerName example.com
- DocumentRoot /var/www/example
- <
Directory /var/www/example>
- Options Indexes FollowSymLinks
- AllowOverride All
- Require all granted
- ErrorLog ${ APACHE_LOG_DIR} /example_error.log
- CustomLog ${ APACHE_LOG_DIR} /example_access.log combined
- <
VirtualHost *:80>
- 启用站点与默认首页:sudo a2ensite example.conf & & sudo a2dissite 000-default.conf & & sudo systemctl reload apache2
- 多站点使用虚拟主机:创建 /etc/apache2/sites-available/example.conf,示例:
- PHP 运行时
- 编辑对应版本的 php.ini(如:/etc/php/8.2/apache2/php.ini)
- 常用调优与安全:
- memory_limit = 128M(按应用调整)
- upload_max_filesize = 20M
- post_max_size = 24M
- max_execution_time = 120
- expose_php = Off
- disable_functions = exec,passthru,shell_exec,system(按应用需要精简)
- MariaDB/MySQL
- 仅允许本地访问:在 my.cnf 的 [mysqld] 中设置 bind-address=127.0.0.1
- 创建业务库与用户:CREATE DATABASE app; CREATE USER ‘app’@‘localhost’ IDENTIFIED BY ‘强密码’; GRANT ALL ON app.* TO ‘app’@‘localhost’; FLUSH PRIVILEGES;
- 性能与缓存
- Apache:启用压缩与缓存模块(如 mod_deflate、mod_expires、mod_cache),示例:sudo a2enmod deflate expires cache
- PHP:启用 OPcache(生产环境强烈建议),在 php.ini 中设置:opcache.enable=1,opcache.memory_consumption=128,opcache.interned_strings_buffer=8,opcache.max_accelerated_files=4000,opcache.validate_timestamps=0(配合部署流程热更新)
三 安全加固清单
- 系统与账户
- 创建普通用户并加入 sudo 组,禁用 root 远程登录(/etc/ssh/sshd_config:PermitRootLogin no),使用 SSH 密钥认证
- 防火墙与端口
- 仅开放 22/80/443:sudo ufw allow 22,80,443/tcp & & sudo ufw enable
- Apache 安全
- 关闭目录浏览(Options -Indexes),限制 .ht* 访问(AllowOverride None 或按需开启),隐藏版本信息(ServerTokens Prod,ServerSignature Off)
- 数据库安全
- 运行 mysql_secure_installation,删除匿名/测试库,限制远程 root,按最小权限创建业务账户
- PHP 安全
- 禁用危险函数(exec/passthru/shell_exec/system 等),限制上传大小与执行权限,关闭 expose_php
- 入侵防护与审计
- 部署 fail2ban 监控 SSH/HTTP 暴力尝试:sudo apt install fail2ban & & sudo systemctl enable --now fail2ban
- 定期审计与监控:日志轮转(logrotate)、使用 Lynis 进行安全基线扫描、监控工具(如 Prometheus/Grafana 或 Zabbix)
四 运维与自动化
- HTTPS 自动化
- 安装 Certbot 并获取证书:sudo apt install certbot python3-certbot-apache,执行:sudo certbot --apache -d example.com(自动续期)
- 备份策略
- 网站与数据库定期备份(示例):
- 数据库:mysqldump -u root -p --single-transaction --routines --triggers app > /backup/app_$(date +%F).sql
- 文件:tar czf /backup/www_$(date +%F).tar.gz /var/www/example
- 网站与数据库定期备份(示例):
- 持续交付与变更
- 使用 Git 管理代码与配置,配置 Apache 环境(如开发/预发/生产)通过不同的 VirtualHost 与 php.ini 实现
- 变更前备份配置与数据,变更后在灰度/测试环境验证,再滚动发布
五 常见问题与排查
- 403 Forbidden:检查目录权限与所有权(/var/www/example 应为 www-data:www-data 且权限 755),以及 中的 Require all granted 与 AllowOverride 设置
- 500 错误:查看 Apache 错误日志(/var/log/apache2/error.log)与 PHP 错误日志,定位语法错误或模块缺失
- 数据库连接失败:确认应用使用的数据库主机为 localhost(socket 连接),用户权限为 ‘app’@‘localhost’,以及 MariaDB 监听地址为 127.0.0.1
- HTTPS 证书签发失败:确保域名 DNS 解析到服务器、80/443 端口开放、Apache 虚拟主机配置正确后再运行 certbot
- PHP 扩展未生效:确认加载的是对应 SAPI 的 php.ini(Apache 为 /etc/php/8.2/apache2/php.ini),修改后重启 Apache:sudo systemctl restart apache2
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian LAMP如何定制环境
本文地址: https://pptw.com/jishu/748764.html
