哈喽,各位小伙伴!今天咱们来聊点硬核的,手把手教你在 CentOS 系统上搭建一套完整的 LAMP 环境。所谓 LAMP,就是 Linux、Apache、MySQL、PHP 这四个开源软件的黄金组合,基本上是现代网站开发的标配了。无论是搭建个人博客,还是部署复杂的 Web 应用,LAMP 都是一个稳定、高效、可靠的选择。
本文将用最接地气的语言,带你一步步完成安装和配置,保证逻辑清晰、操作简单,让你轻松上手。好了,废话不多说,让我们开始吧!
准备工作
在开始之前,你需要准备好:
- 一台安装了 CentOS 7 或更高版本的服务器(虚拟机也行)。
- 一个拥有
sudo权限的非 root 用户账号。
准备好了吗?让我们开始第一步!
第一步:安装“A” - Apache 网页服务器
Apache 是一款久经考验、功能强大的网页服务器,全球超过一半的网站都在使用它。我们的网站内容能不能被别人看到,就靠它了。
安装 Apache
在 CentOS 上安装 Apache 非常简单,只需要一个命令就能搞定。打开你的终端,输入以下命令:
sudo yum install httpd -y-y参数表示在安装过程中自动回答“yes”,省去了一些交互环节。启动并设置开机自启
安装完成后,我们需要启动 Apache 服务,并让它在服务器重启后也能自动运行。
sudo systemctl start httpd sudo systemctl enable httpd配置防火墙
为了让外部用户能够访问我们的网站,需要在防火墙上放行 HTTP (80端口) 和 HTTPS (443端口) 的流量。
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload验证一下
现在,打开你的浏览器,在地址栏输入你服务器的公网 IP 地址。如果看到一个 Apache 的默认欢迎页面,那就说明 Apache 已经成功安装并运行了!
第二步:安装“M” - MySQL 数据库
数据是网站的灵魂,而 MySQL 就是用来管理这些灵魂的仓库。它是一个非常流行的关系型数据库管理系统。
安装 MySQL 服务器
同样,我们使用
yum来安装 MySQL。sudo yum install mysql-server -y启动并设置开机自启
和 Apache 一样,我们也需要启动 MySQL 并设置开机自启。
sudo systemctl start mysqld sudo systemctl enable mysqld安全初始化
新安装的 MySQL 安全性比较低,我们需要运行一个安全脚本来做一些基础的加固,比如设置 root 密码、删除匿名用户等。
sudo mysql_secure_installation执行后,系统会引导你完成一系列安全设置,建议大部分选项都选择“Y”(是)。请务必设置一个强度较高的 root 密码并牢记它。
第三步:安装“P” - PHP 脚本语言
PHP 是一种强大的服务器端脚本语言,专门用于 Web 开发。我们熟悉的 WordPress、Laravel 等框架都是基于 PHP 构建的。
安装 PHP 及扩展
要让 PHP 能够和 Apache 和 MySQL 协同工作,我们需要安装 PHP 本身以及相应的扩展模块。
sudo yum install php php-mysqlnd -yphp-mysqlnd是 PHP 连接 MySQL 数据库的驱动,非常重要。重启 Apache 服务
为了让 Apache 能够识别并处理 PHP 文件,安装完 PHP 后需要重启 Apache 服务。
sudo systemctl restart httpd
第四步:实战演练 - 让 LAMP 跑起来!
环境搭好了,是骡子是马,拉出来遛遛!我们来创建一个简单的 PHP 页面,测试一下整个 LAMP 架构是否能正常工作。
案例 1:验证 PHP 是否正常解析
创建测试文件
我们在 Apache 的网站根目录
/var/www/html/下创建一个名为info.php的文件。sudo vi /var/www/html/info.php写入 PHP 代码
在打开的
vi编辑器中,按i键进入插入模式,然后输入以下代码:<?php phpinfo(); ?>写完后,按
Esc键退出插入模式,然后输入:wq并回车,保存并退出文件。浏览器测试
现在,在你的浏览器地址栏中输入
http://你的服务器IP/info.php。如果你看到了一个详细展示 PHP 版本和配置信息的页面,恭喜你,PHP 已经成功运行!
案例 2:测试 PHP 与 MySQL 的连接
光 PHP 能跑还不够,我们最终的目的是让它能和数据库交互。
登录 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替换成一个安全的密码。编写数据库连接测试脚本
我们再创建一个
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设置的密码。见证奇迹的时刻
保存文件后,在浏览器中访问
http://你的服务器IP/db_test.php。如果你看到了“数据库连接成功!”以及一个访客列表,并且每次刷新页面都会增加一条新记录,那么,太棒了!你的 LAMP 环境已经完全打通,可以正常工作了!
总结
到此,我们已经成功地在 CentOS 上搭建了一套功能齐全的 LAMP 环境。回顾一下,我们总共完成了四步:安装 Apache、安装 MySQL、安装 PHP,并最后通过两个实例验证了整个技术栈的协同工作能力。希望这篇口语化的教程能让你对 LAMP 的搭建有一个清晰的认识。现在,你已经有了一个可以承载你创意和代码的平台,快去开启你的 Web 开发之旅吧!