更新时间:2023-03-05 10:19:28浏览次数:464+次
在本指南中,我们将系统地介绍在Linux上LEMP堆栈(LEMP Stack)的安装和配置,将以Rocky Linux 8/AlmaLinux 8系统为例说明。
简介
LEMP是Linux、Nginx、MariaDB/MySQL和PHP的缩写。Nginx是一个web服务器,MariaDB/MySQL是一个数据库管理应用程序,PHP是一种编程语言,用于后端构建web应用程序。所有这些开源软件构成了LEMP堆栈,该堆栈共同用于在生产周期或任何其他开发阶段托管和服务网页/应用程序。通常,LEMP堆栈用于托管具有高流量的高度可扩展网站。
对于本指南,您需要以下内容:
服务器上运行Rocky Linux 8、AlmaLinux 8系统。
具有sudo访问权限的用户。
首先更新系统上的所有可用软件包,如下所示:
sudo dnf update -y
安装LEMP堆栈的方法
步骤1、在Rocky Linux 8、AlmaLinux 8上安装Nginx
这个强大的web服务器存在于默认的Rocky Linux 8、AlmaLinux 8存储库中,可以使用下面的命令安装:
sudo dnf install nginx
依赖关系树如下图所示:
安装完成后,启动Nginx Web服务器并使其在启动时自动运行:
sudo systemctl start nginx
sudo systemctl enable nginx
检查服务状态:
$ systemctl status nginx
nginx.service - The nginx HTTP and reverse proxy server
可以使用以下命令检查Nginx的安装版本:
$ nginx -v
nginx version: nginx/1.14.1
测试Nginx是否能够使用URL服务器网页,地址格式为http://IP_Address或者http://domain_name。
允许HTTP和HTTPS通过防火墙:
sudo firewall-cmd --permanent --add-service={http,https}
sudo firewall-cmd --reload
您应该能够看到以下页面:
步骤2、在Rocky Linux 8、AlmaLinux 8上安装MariaDB服务器
MariaDB可以安装在Rocky Linux 8、AlmaLinux 8上,如下所示:
sudo dnf -y install @mariadb
在Rocky Linux 8、AlmaLinux 8上启动并启用MariaDB:
sudo systemctl enable --now mariadb
然后运行sudo mysql_secure_installation命令强化MariaDB实例。
登录MariaDB外壳:
$ mysql -u root -p
步骤3、在Rocky Linux 8、AlmaLinux 8上安装PHP
AppStream存储库有多个版本的PHP,可以使用以下命令列出:
$ sudo dnf module list php
如上图所示,默认版本为PHP 7.2,可以按如下方式重置:
sudo dnf module reset php
启用所需版本:
# For PHP 7.4
sudo dnf -y module install php:7.4
# For PHP 7.3
sudo dnf -y module install php:7.3
# For PHP 7.2
sudo dnf -y module install php:7.2
相关截图如下所示:
因此,安装PHP扩展:
sudo dnf -y install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring php-zip
验证已安装的PHP版本:
$ php --version
PHP 7.4.19 (cli)
使用php-fpm启动并启用PHP:
sudo systemctl enable --now php-fpm
检查服务状态:
$ systemctl status php-fpm
php-fpm.service - The PHP FastCGI Process Manager
通常,默认情况下,PHP-FPM使用Apache用户运行。由于我们使用的是Nginx,因此需要编辑配置文件:
$ sudo vim /etc/php-fpm.d/www.conf
user = nginx
Group = nginx
应用更改:
sudo systemctl reload php-fpm
现在,在/usr/share/nginx/html目录中创建一个简单的PHP文件:
sudo vim /usr/share/nginx/html/info.php
在文件中,添加以下内容:
<?php
phpinfo();
?>
重新启动Nginx以应用更改:
sudo systemctl restart nginx
使用URL访问网页,地址格式为http://IP_address/info.php或者http://domain_name/info.php,正常情况下,您将看到PHP及其扩展的详细列表。
配置LEMP堆栈并测试网站
1、在Rocky Linux 8、AlmaLinux 8上配置Nginx服务器块
Nginx服务器块允许通过定义站点文档根目录来运行多个网站。这些根文档目录包含网站文件。
对于本指南,我们将使用以下步骤创建单个Nginx服务器块文件:
1]、创建网站目录
这是第一步,请确保将example.computingforgeeks.com替换为域名:
sudo mkdir /var/www/example.computingforgeeks.com
sudo vim /var/www/example.computingforgeeks.com/index.html
在文件中,添加内容:
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Voila! The LEMP server is working perfectly!</h1>
</body>
</html>
2]、为网站创建Nginx服务器块
这是站点的配置文件。它详细说明了Nginx将如何满足这些请求:
sudo vim /etc/nginx/conf.d/example.computingforgeeks.com.conf
将以下行添加到文件中:
server {
listen 80;
server_name example.computingforgeeks.com www.example.computingforgeeks.com;
location / {
root /var/www/example.computingforgeeks.com;
index index.html index.htm;
try_files $uri $uri/ =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
重新启动Nginx:
sudo systemctl restart nginx
将域名添加到已知主机列表中:
$ sudo vim /etc/hosts
192.168.205.2 example.computingforgeeks.com
2、测试网站
现在可以使用URL访问网站,地址格式为http://domain_name,您应该能够看到下面的页面:
通过以上截图,这证实了我们的LEMP堆栈正在完美工作。至此,在Linux系统上安装和配置LEMP堆栈成功完成。