2026年Linux系统部署LAMP服务器完整指南(2026)

一、LAMP架构简介

LAMP是全球最流行的Web服务技术栈之一,由四部分组成:

组件 全称 作用
Linux Linux操作系统 系统基础,提供运行环境
Apache Apache HTTP Server Web服务器,处理HTTP请求
MySQL MySQL数据库 关系型数据库,存储数据
PHP PHP脚本语言 动态网页开发语言

适用场景:WordPress、Drupal等CMS、动态网站、中小型企业应用。

二、准备工作

2.1 系统要求

项目 最低配置 推荐配置
CPU 1核 2核+
内存 512MB 2GB+
硬盘 10GB 40GB SSD
系统 Ubuntu 20.04+ / CentOS 7+ Ubuntu 22.04 LTS

2.2 安全组配置

确保开放以下端口:

# 必须端口
22     # SSH
80     # HTTP
443    # HTTPS

⚠️ 在云服务器控制台安全组中提前开放上述端口。

三、Ubuntu/Debian系统部署

3.1 更新系统

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget unzip

3.2 安装Apache

# 安装Apache
sudo apt install apache2 -y

# 启动并设置开机自启
sudo systemctl start apache2
sudo systemctl enable apache2

# 验证安装
curl -I localhost
# 应返回 HTTP/1.1 200 OK

浏览器访问 http://服务器IP,看到Apache默认页面即成功。

3.3 安装MySQL

# 安装MySQL 8.0
sudo apt install mysql-server -y

# 安全配置
sudo mysql_secure_installation

# 登录MySQL
sudo mysql -u root -p

安全配置选项建议
– 设置root密码:是
– 移除匿名用户:是
– 禁止root远程登录:是
– 移除test数据库:是
– 重新加载权限表:是

3.4 安装PHP

# 添加PHP仓库(Ubuntu 22.04默认PHP 8.1)
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

# 安装PHP 8.2及常用扩展
sudo apt install php8.2 php8.2-cli php8.2-fpm \
  php8.2-mysql php8.2-curl php8.2-gd \
  php8.2-mbstring php8.2-xml php8.2-zip -y

# 重启Apache使PHP生效
sudo systemctl restart apache2

3.5 测试PHP

创建测试文件:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

浏览器访问 http://服务器IP/info.php,看到PHP信息页面即成功。

四、CentOS/RHEL系统部署

4.1 更新系统

sudo yum update -y
# 或(CentOS 8+)
sudo dnf update -y

4.2 安装Apache

# CentOS 7
sudo yum install httpd -y

# CentOS 8+
sudo dnf install httpd -y

# 启动并设置开机自启
sudo systemctl start httpd
sudo systemctl enable httpd

# 开放防火墙端口
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

4.3 安装MySQL(MariaDB)

# CentOS 7
sudo yum install mariadb-server -y

# CentOS 8+
sudo dnf install mariadb-server -y

# 启动并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb

# 安全配置
sudo mysql_secure_installation

4.4 安装PHP

# CentOS 7 安装Remi仓库
sudo yum install epel-release -y
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum-config-manager --enable remi-php82

# CentOS 8+ 安装Remi仓库
sudo dnf install epel-release -y
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.2 -y

# 安装PHP及扩展
sudo yum install php php-mysql php-gd php-mbstring php-xml php-zip -y

# 重启Apache
sudo systemctl restart httpd

五、配置优化

5.1 Apache优化

# /etc/apache2/apache2.conf(Ubuntu)或 /etc/httpd/conf/httpd.conf(CentOS)
# 调整以下参数
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

# 启用压缩
LoadModule deflate_module modules/mod_deflate.so
AddOutputFilterByType DEFLATE text/html text/css application/javascript

5.2 MySQL优化

# /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
innodb_buffer_pool_size = 256M    # 设置为内存的50%-70%
max_connections = 150
query_cache_size = 32M

5.3 PHP优化

# /etc/php/8.2/apache2/php.ini(Ubuntu)或 /etc/php.ini(CentOS)
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
date.timezone = Asia/Shanghai

六、虚拟主机配置

6.1 创建网站目录

sudo mkdir -p /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www

6.2 创建虚拟主机配置(Apache)

# /etc/apache2/sites-available/example.com.conf(Ubuntu)
# 或 /etc/httpd/conf.d/example.com.conf(CentOS)

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html

    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined

    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

6.3 启用配置

# Ubuntu
sudo a2ensite example.com.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

# CentOS
sudo systemctl restart httpd

6.4 配置域名解析

在域名服务商添加A记录:
example.com → 服务器IP
www.example.com → 服务器IP

七、安装SSL证书

7.1 安装Certbot

# Ubuntu
sudo apt install certbot python3-certbot-apache -y

# CentOS
sudo yum install certbot python3-certbot-apache -y

7.2 申请证书

sudo certbot --apache -d example.com -d www.example.com

# 选择选项:
# 1. 输入邮箱(用于证书到期提醒)
# 2. 同意服务条款
# 3. 选择是否重定向HTTP到HTTPS(推荐选择选项2:Redirect)

7.3 自动续期

# 测试自动续期
sudo certbot renew --dry-run

# Certbot会自动添加cron任务,无需手动配置

八、安全加固

8.1 防火墙配置

# Ubuntu(UFW)
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

# CentOS(firewalld)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

8.2 禁用目录浏览

# 在Apache配置中添加
<Directory /var/www>
    Options -Indexes
</Directory>

8.3 隐藏敏感信息

# 隐藏Apache版本信息
ServerTokens Prod
ServerSignature Off
# 隐藏PHP版本信息(php.ini)
expose_php = Off

九、性能测试

9.1 压力测试

# 安装ApacheBench
sudo apt install apache2-utils -y

# 测试(1000请求,并发10)
ab -n 1000 -c 10 http://example.com/

9.2 监控资源使用

# 实时监控
top
htop    # 需安装

# 查看Apache连接数
netstat -an | grep :80 | wc -l

# 查看MySQL进程
mysqladmin -u root -p processlist

十、常见问题

Q1: Apache启动失败?

A: 检查端口是否被占用:

sudo netstat -tulpn | grep :80
sudo lsof -i :80

Q2: PHP页面显示源代码?

A: PHP模块未正确安装或Apache未加载PHP模块:

# Ubuntu
sudo apt install libapache2-mod-php8.2 -y
sudo a2enmod php8.2
sudo systemctl restart apache2

Q3: MySQL远程连接失败?

A: 检查MySQL配置:

# 编辑配置文件
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# 注释掉 bind-address = 127.0.0.1

# 创建远程用户
CREATE USER 'remote'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%';
FLUSH PRIVILEGES;

Q4: 网站访问速度慢?

A: 启用缓存和压缩:

# 启用Apache压缩
sudo a2enmod deflate expires
sudo systemctl restart apache2

# 安装OPcache(PHP加速)
sudo apt install php8.2-opcache -y

十一、总结

在Linux上部署LAMP服务器的完整流程:

  1. 准备环境:更新系统、配置安全组
  2. 安装Apache:Web服务器基础
  3. 安装MySQL:数据库服务
  4. 安装PHP:动态脚本支持
  5. 配置优化:调整参数提升性能
  6. 虚拟主机:配置多网站
  7. SSL证书:启用HTTPS加密
  8. 安全加固:防火墙、权限控制
  9. 性能测试:压力测试和监控

LAMP架构成熟稳定,是部署动态网站的首选方案。

注:本文基于2026年主流Linux发行版编写,具体配置请以官方文档为准。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注