如何在 CentOS 8/RHEL 8 上安装 LAMP Stack

本教程将向您展示如何在 CentOS 8 和 RHEL 8 上安装 LAMP 堆栈。

什么是 LAMP 堆栈?

软件栈是一组捆绑在一起的软件工具。 LAMP 代表 输入法, 一种补丁, 咏叹调数据库 /ySQL 和 HP,所有这些都是开源的。 它是支持动态网站和 Web 应用程序的最常见的软件堆栈。 Linux 是操作系统; Apache 是网络服务器; MariaDB/MySQL 是数据库服务器,PHP 是负责生成动态网页的服务器端脚本语言。

先决条件

您可以按照以下教程下载并安装 RHEL 8。

  • 如何免费下载和安装 RHEL 8

如果您正在寻找 VPS(虚拟专用服务器),那么您可以通过我的推荐链接在 Vultr 上注册一个帐户,以获得 50 美元的免费赠金,使用时间超过 30 天。

本教程使用 root 帐户来管理管理任务。 要切换到 root,请运行以下命令并输入 root 密码。

su -

步骤 1:更新软件包

在我们安装 LAMP 堆栈之前,最好运行以下命令来更新存储库和软件包。

dnf update

第 2 步:安装 Apache CentOS 8/RHEL 8 上的 Web 服务器

Enter 以下命令安装 Apache 网络服务器。 这 httpd-tools 包将安装一些有用的实用程序,如 Apache HTTP 服务器基准测试工具 (ab)。

dnf install httpd httpd-tools

安装好后,我们就可以开始了 Apache 用这个命令:

systemctl start httpd

使能够 Apache 通过运行以下命令在系统启动时自动启动。

systemctl enable httpd

现在检查它的状态。

systemctl status httpd

输出:

 httpd.service - The Apache HTTP Server    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)    Active: active (running) since Sat 2019-10-12 06:43:15 UTC; 14s ago      Docs: man:httpd.service(8)  Main PID: 14515 (httpd)    Status: "Running, listening on: port 80"     Tasks: 213 (limit: 5092)    Memory: 24.8M    CGroup: /system.slice/httpd.service            ├─14515 /usr/sbin/httpd -DFOREGROUND            ├─14516 /usr/sbin/httpd -DFOREGROUND            ├─14517 /usr/sbin/httpd -DFOREGROUND            ├─14518 /usr/sbin/httpd -DFOREGROUND            └─14519 /usr/sbin/httpd -DFOREGROUND 

启用”表示启动时自动启动已启用,我们可以看到 Apache 在跑。

提示:如果上面的命令运行后没有立即退出。 您需要按“q” 让它退出。

查看 Apache 版本。

httpd -v

输出:

Server version: Apache/2.4.37 (centos) Server built: Oct 7 2019 21:42:02

测试是否 Apache web服务器运行正常,我们可以创建一个 index.html 默认文档根目录下的文件 (/var/www/html/) 使用以下命令。

echo "Welcome to this site!" > /var/www/html/index.html

如果您要在本地 CentOS 8/RHEL 8 计算机上安装 LAMP,请键入 127.0.0.1 或者 localhost 在浏览器地址栏中。 您应该会看到欢迎消息,这意味着 Apache Web 服务器运行正常。

CentOS 8/RHEL 8 默认禁止公众访问 80 端口。为了允许其他计算机访问网页,我们需要在 RHEL/CentOS 上的动态防火墙管理器 firewalld 中打开 80 端口。 运行以下命令打开80端口。

firewall-cmd --permanent --zone=public --add-service=http

如果要启用 HTTPS Apache 稍后,那么您还需要打开443端口。

firewall-cmd --permanent --zone=public --add-service=https

--permanent 选项将使此防火墙规则在系统重新启动后保持不变。 接下来,重新加载防火墙守护程序以使更改生效。

systemctl reload firewalld

现在 Apache 网页可公开访问。

我们需要让用户 apache 作为网络目录的所有者。 默认情况下,它由 root 用户拥有。

chown apache:apache /var/www/html -R

默认情况下, Apache 使用系统主机名作为其全局 ServerName. 如果系统主机名在 DNS 中无法解析,那么运行后你可能会看到如下错误 sudo apachectl configtest 命令。

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

为了解决这个问题,我们可以设置一个全局 ServerName 在 Apache. 安装 Nano 命令行文本编辑器并使用它来创建新的配置文件。

sudo dnf install nano  sudo nano /etc/httpd/conf.d/servername.conf

在此文件中添加以下行。

ServerName localhost

Save 和 close 文件。 要在 Nano 文本编辑器中保存文件,请按 Ctrl+O,然后按 Enter 确认。 要退出,请按 Ctrl+X. 重新加载 Apache 以使更改生效。

sudo systemctl reload httpd

现在如果你运行 sudo apachectl configtest 再次命令,您将不会看到上述错误消息。

第 3 步:在 CentOS 8/RHEL 8 上安装 MariaDB 数据库服务器

MariaDB 是 MySQL 的替代品。 它是由 MySQL 团队的前成员开发的,他们担心 Oracle 可能会将 MySQL 变成一个闭源产品。 Enter 使用以下命令在 CentOS 8/RHEL 8 上安装 MariaDB。

dnf install mariadb-server mariadb -y

安装完成后,我们需要启动它。

systemctl start mariadb

在系统启动时启用自动启动。

systemctl enable mariadb

检查状态:

systemctl status mariadb

输出:

 mariadb.service - MariaDB 10.3 database server    Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)    Active: active (running) since Sat 2019-10-12 09:02:53 UTC; 33s ago      Docs: man:mysqld(8)            https://mariadb.com/kb/en/library/systemd/  Main PID: 18608 (mysqld)    Status: "Taking your SQL requests now..."     Tasks: 30 (limit: 5092)    Memory: 77.0M    CGroup: /system.slice/mariadb.service            └─18608 /usr/libexec/mysqld --basedir=/usr 

启用”表示启动时自动启动已启用,我们可以看到 MariaDB 服务器正在运行。 现在我们需要运行安全脚本。

mysql_secure_installation

当它要求您输入 MariaDB root 密码时,按 Enter 密钥,因为尚未设置 root 密码。 然后输入 y 为 MariaDB 服务器设置 root 密码。