菜鸟科技网

apache php mysql环境搭建教程

Apache + PHP + MySQL 环境搭建教程

apache php mysql环境搭建教程-图1
(图片来源网络,侵删)

本文将详细介绍如何在 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: 更新软件包索引

打开终端执行以下命令:

apache php mysql环境搭建教程-图2
(图片来源网络,侵删)
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用户:

apache php mysql环境搭建教程-图3
(图片来源网络,侵删)
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

按提示完成以下操作:

  1. Set root password? [Y/n] → Y(重新输入强密码)
  2. Remove anonymous users? [Y/n] → Y
  3. Disallow root login remotely? [Y/n] → Y
  4. Remove test database and access to it? [Y/n] → Y
  5. 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编排
分享:
扫描分享到社交APP
上一篇
下一篇