本教程将向您展示如何在 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 密码。