原文地址:https://www.itzgeek.com/how-tos/linux/centos-how-tos/how-to-install-linux-nginx-mariadb-php-lemp-stack-in-rhel-8.html

翻译转载原因:由于我的wordpress是用这套系统安装的,方便系统炸了的时候还有个备份。

正文

-------------------------------------------------------------------------------------

Nginx的是一个开源的,高性能的网络服务器 它以其稳定性强,非常简单的配置,丰富的功能集和低资源消耗而著称。

Nginx允许您将其用作反向代理,负载平衡器,HTTP缓存和邮件代理。

这篇文章向您展示如何在具有PHP支持(通过PHP-FPM)和MariaDB支持的CentOS 8 / RHEL 8上安装Nginx 

PHP-FPM是PHP FastCGI的替代实现。它具有其他功能,可用于任何规模的站点,尤其是繁忙的站点。

安装NGINX

通过基础源安装

在RHEL 8中,Nginx在rhel-8-for-x86_64-appstream-rpms存储库中可用因此,我们不需要手动设置Nginx存储库。

使用YUM命令安装Nginx 

yum -y install nginx

使用Nginx的官方源安装Nginx(可选)

将Nginx源添加到您的系统。

### CentOS 8 ###

cat << EOF > /etc/yum.repos.d/nginx.repo
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/8/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
EOF

### RHEL 8 ###

cat << EOF > /etc/yum.repos.d/nginx.repo
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/rhel/8/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
EOF

通过临时禁用AppStream存储库Nginx的官方存储库安装Nginx 

yum install -y nginx --disablerepo=* --enablerepo=nginx-mainline

启动NGINX

安装后启动Nginx Web服务器服务。

systemctl start nginx

使用以下命令检查状态Nginx Web服务器服务。

systemctl status nginx

防火墙设置

如果存在防火墙,通过执行以下命令,允许Web请求通过防火墙。(centos8默认防火墙为Firewall)此示例为开放http协议的服务

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

firewall-cmd --reload

SELinux设置(可选,不建议)

如果您在Nginx日志上遇到关于SELinux的任何错误,可以选择关闭SELinux

否则,您可以使用以下命令暂时禁用SELinux。但是,我们建议您永久禁用SELinux。(原文如此,但是我不建议关闭SELinux,这给被黑了的操作系统提供了一道防线,一般不会遇到SELinux的问题)

setenforce 0

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

验证Nginx安装

打开您的网络浏览器然后访问以下网址

http://your-ip-address

从基础源安装的Nginx

您应该看到以下页面欢迎使用Red Hat Enterprise Linux上的nginx该页面确认您Ngnix Web服务器已成功安装在服务器上。

 使用Nginx的官方源安装的Nginx

 提示:CentOS8/RHE 8上Nginx的默认文档根目录/usr/share/nginx/html/ 其他配置文件位于/etc/nginx目录下。

在系统启动时启用Nginx服务。

systemctl enable nginx

安装MariaDB

CentOS 8/RHEL 8附带了MariaDB 10.3 使用yum命令安装MariaDB服务器

(您也可以从MariaDB社区安装MariaDB软件包。在本转载翻译链接中不提供,可以参考原文链接:如何在CentOS 8 / RHEL 8上安装MariaDB https://www.itzgeek.com/how-tos/linux/centos-how-tos/how-to-install-mariadb-on-rhel-8.html

yum -y install mariadb mariadb-server

使用以下命令启动MariaDB服务器。

systemctl start mariadb

启用MariaDB服务以在系统引导期间自动启动。

systemctl enable mariadb

 

MariaDB服务器安装完成后,运行mysql_secure_installation命令以保护MariaDB。

(请注意,原文图中不一定是最佳的安全设置,请根据自身情况进行安全设置,在此不展开介绍)

安装PHP

CentOS8/RHEL8附带了PHP7.2。通过PHP-FPM(使用YUM命令的FastCGI Process Manager)安装PHP 

(如果需要,可以使用Remi存储库安装PHP 7.3,在本转载翻译链接中不提供,可以参考原文链接:如何在CentOS 8 / RHEL 8上安装PHP 7.3 https://www.itzgeek.com/how-tos/linux/centos-how-tos/how-to-install-php-7-3-on-rhel-8.html)

yum -y install php-fpm php-mysqlnd php-cli

编辑/etc/php.ini

vi /etc/php.ini

cgi.fix_pathinfo的值设置0

cgi.fix_pathinfo=0

编辑/etc/php-fpm.d/www.conf文件

vi /etc/php-fpm.d/www.conf

确保以下值未被注释

[.More.]	 	 

pm.min_spare_servers = 5	 	 

[.More.]	 	 

pm.max_spare_servers = 35	 	 

[.More.]

更改监听参数:

listen = /run/php-fpm/www.sock

更改为

listen = 127.0.0.1:9000

现在启动PHP-FPM服务

systemctl start php-fpm

使PHP-FPM服务开机启动

systemctl enable php-fpm

在Nginx上启用PHP-FPM支持

现在,我们将在Nginx服务器上创建一个虚拟主机,用于以下详细信息以测试PHP。

(域名是需要购买的,可以在本地host中修改达到ip与域名映射效果,如果想让互联网上的他人通过域名访问你的网站需要购买域名,并拥有一个公共IP地址,在此不赘述)

(由于大多数情况下是没有域名的,可以直接在nginx.conf配置文件中修改,server_name为localhost的内容,在此不赘述)

服务名称: test.refly.cloud(请替换为自己的域名)
web文档根目录: /usr/share/nginx/html/test.refly.cloud

在/etc/nginx/conf.d文件夹内创建一个名为test.refly.cloud.conf文件,并编辑它

vi /etc/nginx/conf.d/test.refly.cloud.conf

输入如下内容

server {
   server_name test.refly.cloud;
   root /usr/share/nginx/html/test.refly.cloud;

   location / {
       index index.html index.htm index.php;
   }

   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

创建web文档目录

mkdir /usr/share/nginx/html/test.refly.cloud

为了测试PHP,我们创建一个index.php文件于web文档根目录

echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/test.refly.cloud/index.php

重新启动服务

systemctl restart nginx
systemctl restart php-fpm

测试LEMP

/etc/hosts(Linux)或者hosts文件(Windows)中为您的Web服务器域(test.refly.cloud)创建映射条目。

127.0.0.1             test.refly.cloud

打开网络浏览器,然后在地址栏中输入您的域名。该页面如下所示。

从上面的屏幕截图中,PHP可以按预期运行,并且通过FPM/FastCGI运行,如服务器API行中所示。

您可以进一步向下滚动页面以查看MariaDB支持的详细信息。

 

posted on 2020-11-22 21:09  wangji156  阅读(415)  评论(0)    收藏  举报