一、基础环境准备
在自定义Debian LAMP配置前,需确保系统及核心组件(Apache、MySQL/MariaDB、PHP)为最新版本,以避免兼容性问题:
sudo apt update && sudo apt upgrade -y
安装LAMP核心组件(Apache作为Web服务器、MariaDB作为MySQL替代数据库、PHP及常用扩展):
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
安装完成后,启动所有服务并设置开机自启:
sudo systemctl start apache2 mariadb php-fpm # PHP-FPM用于处理PHP请求
sudo systemctl enable apache2 mariadb php-fpm
二、Apache虚拟主机配置(多站点支持)
若需托管多个网站,需通过虚拟主机隔离配置。以下以example.com为例说明:
/etc/apache2/sites-available/目录下新建配置文件(如example.com.conf),内容如下:<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
<Directory /var/www/example.com/html>
Options Indexes FollowSymLinks
AllowOverride All # 允许.htaccess覆盖配置
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
sudo a2ensite example.com.conf # 启用站点
sudo a2enmod rewrite ssl # 启用URL重写(用于WordPress等框架)和SSL(HTTPS)
sudo systemctl reload apache2 # 重新加载Apache使配置生效
example.com的A记录指向服务器IP(需在域名注册商处设置)。三、MySQL/MariaDB权限与安全配置
数据库权限管理是LAMP安全的核心,需遵循最小权限原则:
sudo mysql -u root -p # 输入root密码
CREATE DATABASE mydb; -- 创建数据库
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword123'; -- 创建用户(避免使用弱密码)
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost'; -- 授予数据库所有权
FLUSH PRIVILEGES; -- 刷新权限使更改生效
mysql_secure_installation脚本,完成以下操作:
四、PHP性能优化
PHP性能直接影响网站响应速度,需通过以下配置提升:
sudo apt install php-fpm -y
/etc/php/{version}/fpm/pool.d/www.conf({version}为PHP版本,如8.2),优化以下参数:pm = dynamic # 动态进程管理(适合大多数场景)
pm.max_children = 100 # 最大子进程数(根据服务器内存调整,每进程约消耗10-20MB)
pm.start_servers = 20 # 启动时的子进程数
pm.min_spare_servers = 10 # 最小空闲进程数
pm.max_spare_servers = 30 # 最大空闲进程数
request_terminate_timeout = 300 # 请求超时时间(秒),防止脚本卡死
/etc/php/{version}/fpm/php.ini,添加:[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128 # 缓存内存大小(MB)
opcache.max_accelerated_files=4000 # 缓存文件数量
opcache.revalidate_freq=60 # 文件检查频率(秒)
memory_limit = 256M # 脚本最大内存
max_execution_time = 300 # 最大执行时间
error_reporting = E_ALL & ~E_NOTICE # 生产环境关闭notice级别错误
display_errors = Off # 生产环境禁止显示错误(避免泄露敏感信息)
修改后重启服务:sudo systemctl restart php-fpm apache2
五、安全增强配置
ufw允许HTTP(80)、HTTPS(443)流量:sudo ufw allow 'Apache Full'
sudo ufw enable # 启用防火墙
sudo ufw status # 查看状态
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d example.com -d www.example.com # 自动配置Apache HTTPS
证书有效期为90天,可通过sudo certbot renew --dry-run测试自动续期。六、测试与验证
http://服务器IP,应看到Apache默认页面。/var/www/example.com/html创建info.php,内容为<?php phpinfo(); ?>,访问http://example.com/info.php,应显示PHP信息页面。mysqli_connect或PDO连接MySQL,测试数据读写功能。