CentOS 搭建 LAMP (Linux, Apache, MySQL, PHP) 环境指南


哈喽,各位小伙伴!今天咱们来聊点硬核的,手把手教你在 CentOS 系统上搭建一套完整的 LAMP 环境。所谓 LAMP,就是 Linux、Apache、MySQL、PHP 这四个开源软件的黄金组合,基本上是现代网站开发的标配了。无论是搭建个人博客,还是部署复杂的 Web 应用,LAMP 都是一个稳定、高效、可靠的选择。

本文将用最接地气的语言,带你一步步完成安装和配置,保证逻辑清晰、操作简单,让你轻松上手。好了,废话不多说,让我们开始吧!

准备工作

在开始之前,你需要准备好:

  • 一台安装了 CentOS 7 或更高版本的服务器(虚拟机也行)。
  • 一个拥有 sudo 权限的非 root 用户账号。

准备好了吗?让我们开始第一步!

第一步:安装“A” - Apache 网页服务器

Apache 是一款久经考验、功能强大的网页服务器,全球超过一半的网站都在使用它。我们的网站内容能不能被别人看到,就靠它了。

  1. 安装 Apache

    在 CentOS 上安装 Apache 非常简单,只需要一个命令就能搞定。打开你的终端,输入以下命令:

    sudo yum install httpd -y

    -y 参数表示在安装过程中自动回答“yes”,省去了一些交互环节。

  2. 启动并设置开机自启

    安装完成后,我们需要启动 Apache 服务,并让它在服务器重启后也能自动运行。

    sudo systemctl start httpd
    sudo systemctl enable httpd
  3. 配置防火墙

    为了让外部用户能够访问我们的网站,需要在防火墙上放行 HTTP (80端口) 和 HTTPS (443端口) 的流量。

    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload
  4. 验证一下

    现在,打开你的浏览器,在地址栏输入你服务器的公网 IP 地址。如果看到一个 Apache 的默认欢迎页面,那就说明 Apache 已经成功安装并运行了!

第二步:安装“M” - MySQL 数据库

数据是网站的灵魂,而 MySQL 就是用来管理这些灵魂的仓库。它是一个非常流行的关系型数据库管理系统。

  1. 安装 MySQL 服务器

    同样,我们使用 yum 来安装 MySQL。

    sudo yum install mysql-server -y
  2. 启动并设置开机自启

    和 Apache 一样,我们也需要启动 MySQL 并设置开机自启。

    sudo systemctl start mysqld
    sudo systemctl enable mysqld
  3. 安全初始化

    新安装的 MySQL 安全性比较低,我们需要运行一个安全脚本来做一些基础的加固,比如设置 root 密码、删除匿名用户等。

    sudo mysql_secure_installation

    执行后,系统会引导你完成一系列安全设置,建议大部分选项都选择“Y”(是)。请务必设置一个强度较高的 root 密码并牢记它。

第三步:安装“P” - PHP 脚本语言

PHP 是一种强大的服务器端脚本语言,专门用于 Web 开发。我们熟悉的 WordPress、Laravel 等框架都是基于 PHP 构建的。

  1. 安装 PHP 及扩展

    要让 PHP 能够和 Apache 和 MySQL 协同工作,我们需要安装 PHP 本身以及相应的扩展模块。

    sudo yum install php php-mysqlnd -y

    php-mysqlnd 是 PHP 连接 MySQL 数据库的驱动,非常重要。

  2. 重启 Apache 服务

    为了让 Apache 能够识别并处理 PHP 文件,安装完 PHP 后需要重启 Apache 服务。

    sudo systemctl restart httpd

第四步:实战演练 - 让 LAMP 跑起来!

环境搭好了,是骡子是马,拉出来遛遛!我们来创建一个简单的 PHP 页面,测试一下整个 LAMP 架构是否能正常工作。

案例 1:验证 PHP 是否正常解析

  1. 创建测试文件

    我们在 Apache 的网站根目录 /var/www/html/ 下创建一个名为 info.php 的文件。

    sudo vi /var/www/html/info.php
  2. 写入 PHP 代码

    在打开的 vi 编辑器中,按 i 键进入插入模式,然后输入以下代码:

    <?php
    phpinfo();
    ?>

    写完后,按 Esc 键退出插入模式,然后输入 :wq 并回车,保存并退出文件。

  3. 浏览器测试

    现在,在你的浏览器地址栏中输入 http://你的服务器IP/info.php。如果你看到了一个详细展示 PHP 版本和配置信息的页面,恭喜你,PHP 已经成功运行!

案例 2:测试 PHP 与 MySQL 的连接

光 PHP 能跑还不够,我们最终的目的是让它能和数据库交互。

  1. 登录 MySQL 创建数据库和用户

    首先,我们登录 MySQL 创建一个专门用于测试的数据库和用户。

    sudo mysql -u root -p

    输入你之前设置的 root 密码,进入 MySQL 命令行。

    然后执行下面的 SQL 语句:

    CREATE DATABASE test_db;
    CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'Your_Password';
    GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;

    注意:Your_Password 替换成一个安全的密码。

  2. 编写数据库连接测试脚本

    我们再创建一个 db_test.php 文件。

    sudo vi /var/www/html/db_test.php

    写入以下代码:

    <?php
    $servername = "localhost";
    $username = "test_user";
    $password = "Your_Password"; // 这里替换成你刚才设置的密码
    $dbname = "test_db";
    
    // 创建连接
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    // 检测连接
    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    }
    echo "<h1>数据库连接成功!</h1>";
    
    // 创建一个简单的表
    $sql_create_table = "CREATE TABLE IF NOT EXISTS visitors (
        id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(30) NOT NULL,
        visit_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    )";
    
    if ($conn->query($sql_create_table) === TRUE) {
        echo "<p>数据表 'visitors' 创建成功或已存在。</p>";
    } else {
        echo "<p>创建数据表错误: " . $conn->error . "</p>";
    }
    
    // 插入一条数据
    $visitor_name = "Guest_" . rand(100, 999);
    $sql_insert = "INSERT INTO visitors (name) VALUES ('$visitor_name')";
    
    if ($conn->query($sql_insert) === TRUE) {
        echo "<p>新访客 '" . $visitor_name . "' 记录插入成功。</p>";
    } else {
        echo "<p>插入数据错误: " . $conn->error . "</p>";
    }
    
    // 查询并显示所有数据
    $sql_select = "SELECT id, name, visit_time FROM visitors";
    $result = $conn->query($sql_select);
    
    if ($result->num_rows > 0) {
        echo "<h2>访客列表:</h2>";
        echo "<table border='1'><tr><th>ID</th><th>名字</th><th>访问时间</th></tr>";
        // 输出数据
        while($row = $result->fetch_assoc()) {
            echo "<tr><td>" . $row["id"]. "</td><td>" . $row["name"]. "</td><td>" . $row["visit_time"]. "</td></tr>";
        }
        echo "</table>";
    } else {
        echo "0 结果";
    }
    
    $conn->close();
    ?>

    切记: 将代码中的 Your_Password 替换成你为 test_user 设置的密码。

  3. 见证奇迹的时刻

    保存文件后,在浏览器中访问 http://你的服务器IP/db_test.php。如果你看到了“数据库连接成功!”以及一个访客列表,并且每次刷新页面都会增加一条新记录,那么,太棒了!你的 LAMP 环境已经完全打通,可以正常工作了!

总结

到此,我们已经成功地在 CentOS 上搭建了一套功能齐全的 LAMP 环境。回顾一下,我们总共完成了四步:安装 Apache、安装 MySQL、安装 PHP,并最后通过两个实例验证了整个技术栈的协同工作能力。希望这篇口语化的教程能让你对 LAMP 的搭建有一个清晰的认识。现在,你已经有了一个可以承载你创意和代码的平台,快去开启你的 Web 开发之旅吧!


  目录