Apache + PHP + MySQL 环境搭建教程

本文将详细介绍如何在 Linux 系统上搭建 LAMP(Linux + Apache + MySQL + PHP)开发环境,以下是完整的步骤指南,适合初学者和有一定基础的用户参考。
准备工作
✅ 适用场景
本教程基于 Ubuntu/CentOS 等主流发行版,其他 Linux 变种也可类似操作,确保你拥有 root 或 sudo 权限。
组件版本建议 | 最低要求 |
---|---|
Apache HTTP Server | 4+ |
PHP | 4+(推荐8.x系列) |
MySQL/MariaDB | 7+ |
系统内存 | ≥1GB |
💡 提示:生产环境建议使用更高配置(如2核CPU、4GB内存),此处仅作演示用途。
安装 Apache Web 服务器
🔧 Step 1: 更新软件包索引
打开终端执行以下命令:

sudo apt update && sudo apt upgrade -y # Debian/Ubuntu系 # OR sudo yum check-update && sudo yum update -y # RedHat/CentOS系
🔧 Step 2: 安装Apache服务
对于Debian/Ubuntu用户:
sudo apt install apache2 -y
启动并启用开机自启:
sudo systemctl start apache2 sudo systemctl enable apache2
验证是否成功:访问 http://your_server_ip
应看到默认的“It Works!”页面,若遇到防火墙拦截,需开放HTTP端口(默认80):
sudo ufw allow in "Apache Full" # Ubuntu示例
对于RedHat/CentOS用户:

sudo yum install httpd -y sudo systemctl start httpd sudo systemctl enable httpd
同样检查防火墙规则:
sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --reload
配置 PHP 支持
🔧 Step 3: 安装PHP及相关模块
以Ubuntu为例(CentOS语法略有不同):
sudo apt install libapache2-mod-php php-mysqli php-gd php-json php-mbstring php-xml -y
常用扩展说明:
| 扩展名 | 功能描述 |
|----------------|------------------------------|
| php-mysqli
| 连接MySQL数据库 |
| php-gd
| 图像处理能力 |
| php-json
| JSON格式解析 |
| php-mbstring
| 多字节字符串支持(中文必备) |
| php-xml
| XML解析与生成 |
🔧 Step 4: 重启Apache使配置生效
sudo systemctl restart apache2 # Ubuntu/Debian # OR sudo systemctl restart httpd # CentOS/RHEL
创建测试文件验证PHP运行状态:在网站根目录(通常是 /var/www/html
)新建 info.php
如下:
<?php phpinfo(); ?>
通过浏览器访问 http://your_server_ip/info.php
,若能正常显示PHP版本信息则表示安装成功。⚠️ 安全提醒:部署完成后务必删除此文件!
安装与初始化MySQL数据库
🔧 Step 5: 安装MySQL服务器
推荐使用官方源以保证稳定性:
sudo apt install mysql-server -y # Ubuntu方式 # OR (CentOS) sudo yum install mysql-community-server -y
安装过程中会提示设置root用户的密码,请牢记该密码,随后启动服务:
sudo systemctl start mysql # Ubuntu # OR sudo systemctl start mariadb # CentOS默认为MariaDB兼容版 sudo systemctl enable mysql # 设置开机启动
运行安全脚本加固数据库:
sudo mysql_secure_installation
按提示完成以下操作:
- Set root password? [Y/n] → Y(重新输入强密码)
- Remove anonymous users? [Y/n] → Y
- Disallow root login remotely? [Y/n] → Y
- Remove test database and access to it? [Y/n] → Y
- Reload privilege tables now? [Y/n] → Y
🔧 Step 6: 创建数据库用户与授权
登录MySQL命令行客户端:
mysql -u root -p # 根据提示输入之前设定的密码
执行SQL语句创建新用户并赋予权限:
CREATE DATABASE mydb; -新建名为mydb的数据库 CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'securepass'; -创建本地用户appuser,密码为securepass GRANT ALL PRIVILEGES ON mydb. TO 'appuser'@'localhost'; -授予对mydb的所有操作权限 FLUSH PRIVILEGES; -刷新权限表使更改生效 EXIT; -退出客户端
整合测试与优化建议
📝 Test Case: 连接数据库示例代码
在 /var/www/html
目录下创建 testdb.php
,写入以下内容:
<?php $conn = new mysqli("localhost", "appuser", "securepass", "mydb"); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } else { echo "Successfully connected to MySQL!"; $conn->close(); } ?>
访问该页面如显示成功消息,则证明三者已联动正常。
⚙️ Performance Tuning Tips
优化方向 | 具体措施 |
---|---|
PHP内存限制 | 修改 /etc/php//apache2/php.ini 中的 memory_limit 参数 |
OpCache预加载 | 确保 opcache.enable=1 并调整 opcache.max_accelerated_files |
Nginx反向代理替代APACHE | 高并发场景下可替换为Nginx提升性能 |
Swap交换分区禁用 | 避免因磁盘I/O导致响应延迟 |
常见问题与解答(FAQ)
Q1: “无法加载动态库libxxx.so”错误怎么办?
A: 这是由于缺少依赖项导致的,解决方法包括:①检查错误日志定位缺失的文件;②重新安装相关包(如 sudo apt install --reinstall libapache2-mod-php
);③确认LD_LIBRARY_PATH环境变量包含正确路径。
Q2: PHP脚本执行超时如何处理?
A: 可通过两种方式解决:①修改Apache配置文件(如 /etc/apache2/mods-enabled/dir.conf
),增加 Timeout
值;②在PHP脚本开头添加 set_time_limit(0);
取消超时限制(谨慎使用),建议优先排查代码逻辑是否存在死循环等问题。
归纳与下一步计划
至此,你已经成功搭建了一个基础的LAMP环境,后续可以探索以下方向:
- 📦 自动化部署工具:学习Ansible/Puppet实现一键部署;
- 🛡️ 安全防护强化:配置SSL证书、WAF防火墙规则;
- 🚀 容器化方案:尝试Docker Compose编排