如何在CentOS 7上安装Nginx 1.15,MariaDB 10和PHP 7

本文将解释如何在 LEMPLinuxNginxMariaDBPHP)堆栈上安装 PHP-FPM,并在 RHEL/CentOS 7/6Fedora 26-29 服务器上使用 yumdnf 软件包管理器。

在此过程中,我们将安装并启用 EpelRemiNginxMariaDB 软件源,以便安装这些软件包的最新版本。

阅读更多: 在 CentOS 7 上安装 Apache、MySQL 8 或 MariaDB 10 和 PHP 7

第一步:安装 EPEL 和 Remi 软件源

EPELEnterprise Linux 的额外软件包)是一个基于社区的软件源,为基于 RHEL 的 Linux 发行版提供附加软件包。

Remi 是一个软件源,您可以在其中找到适用于 Fedora 和 Enterprise Linux 发行版的 PHP 堆栈(功能齐全)的最新版本。

在 RHEL/CentOS 7 上

# yum update && yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

------ For RHEL 7 Only ------
# subscription-manager repos --enable=rhel-7-server-optional-rpms

在 RHEL/CentOS 6 上

# yum update && yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

------ For RHEL 6 Only ------
# subscription-manager repos --enable=rhel-6-server-optional-rpms

在 Fedora 24-29 上

# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm  [On Fedora 29]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm  [On Fedora 28]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm  [On Fedora 27]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm  [On Fedora 26]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm  [On Fedora 25]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm  [On Fedora 24]

第二步:安装Nginx和MariaDB仓库

Nginx仓库仅在RHEL和CentOS发行版中需要。创建一个名为/etc/yum.repos.d/nginx.repo的文件,并添加以下内容。

对于RHEL 7/6:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

对于CentOS 7/6:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

要启用MariaDB仓库,创建一个名为/etc/yum.repos.d/mariadb.repo的文件,并添加以下内容:

[mariadb] 
name = MariaDB 
baseurl = http://yum.mariadb.org/10.1/centos7-amd64 
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 
gpgcheck=1 

第四步:安装Ngnix和MariaDB

Nginx(Engine X)是一款开源、稳健、轻量级和高性能的Web服务器、反向代理服务器,也是HTTP、SMTP、POP3和IMAP协议的邮件代理服务器。更多详情,请访问http://wiki.nginx.org/Overview

MariaDB是众所周知的MySQL的一个分支,是世界上最受欢迎的关系型数据库管理系统(RDBMS)之一。它完全由社区开发,因此打算始终保持自由开源软件,并与GPL兼容。

要安装NgnixMariaDB,运行以下命令。

----------- Installing on RHEL/CentOS 7/6 ----------- 
# yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

----------- Installing on Fedora ----------- 
# dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

第三步:使用Remi仓库安装PHP

PHP超文本预处理器)是一种适用于网页开发的免费开源服务器端脚本语言。它可用于为网站生成动态网页,最常见于*nix服务器。PHP的优点之一是可以通过使用各种模块轻松扩展。

要安装PHP,首先需要通过安装yum-utils(一组用于管理yum仓库和软件包的实用程序集)来启用Remi仓库。

# yum install yum-utils

安装完成后,可以使用yum-utils提供的yum-config-manager来将Remi仓库设置为安装不同PHP版本的默认仓库,如下所示。

例如,要安装PHP 7.x版本,请使用以下命令。

------------- On CentOS & RHEL ------------- 
# yum-config-manager --enable remi-php70 && yum install php       [Install PHP 7.0]
# yum-config-manager --enable remi-php71 && yum install php       [Install PHP 7.1]
# yum-config-manager --enable remi-php72 && yum install php       [Install PHP 7.2]
# yum-config-manager --enable remi-php73 && yum install php       [Install PHP 7.3]

------------- On Fedora ------------- 
# dnf --enablerepo=remi install php70      [Install PHP 7.0]
# dnf --enablerepo=remi install php71      [Install PHP 7.1]
# dnf --enablerepo=remi install php72      [Install PHP 7.2]
# dnf --enablerepo=remi install php73      [Install PHP 7.3]

接下来,我们将安装以下所有PHP模块。

------ On RHEL/CentOS 7/6 ------
# yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

------ On Fedora ------
# dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

第6步:停止和禁用Apache服务

默认情况下,ApacheNginx监听同一端口(TCP80)。因此,如果服务器上安装了Apache,则需要停止并禁用/屏蔽它(将服务链接到/dev/null,是禁用的更强大版本),以便使用Nginx;或者如果不打算再使用它,可以将其删除。

# systemctl stop httpd 
# systemctl disable httpd 
or 
# systemctl mask httpd 

第7步:启动/停止Nginx、MariaDB和PHP-FPM

----------- Enable Nginx, MariaDB and PHP-FPM on Boot ----------- 
# systemctl enable nginx 
# systemctl enable mariadb 
# systemctl enable php-fpm 
 
----------- Start Nginx, MariaDB and PHP-FPM ----------- 
# systemctl start nginx 
# systemctl start mariadb 
# systemctl start php-fpm 

第8步:配置Nginx和PHP-FPM

让我们现在为您的网站(在Nginx中称为虚拟主机或服务器块)在/srv/www/下创建一个目录结构。在本示例中,我们将使用www.tecmint.com,但如果您愿意,可以随意选择其他域名和主目录。

# mkdir -p /srv/www/tecmint/public_html 
# mkdir /srv/www/tecmint/logs 
# chown -R nginx:nginx /srv/www/tecmint  

第9步:配置Nginx虚拟主机目录

如您所知,从同一台机器上运行多个站点的能力是主要Web服务器的显著特点之一。让我们现在继续创建目录以存储我们的服务器块(在Apache中称为虚拟主机)/etc/nginx下。

# mkdir /etc/nginx/sites-available 
# mkdir /etc/nginx/sites-enabled 

/etc/nginx/nginx.conf中的http块结束前插入以下代码行,将确保当Nginx运行时,/etc/nginx/sites-enabled目录中的配置文件将被纳入考虑范围内:

## Load virtual host conf files. ## 
include /etc/nginx/sites-enabled/*; 
Configuring Nginx VirtualHost

要为tecmint.com创建服务器块,请将以下代码行添加到/etc/nginx/sites-available/tecmint(当您输入完整路径以启动您喜欢的文本编辑器时,将创建此文件)。这是一个基本的虚拟主机配置文件。

server { 
	listen 80 default; 
	server_name tecmint; 
	access_log /srv/www/tecmint/logs/access.log; 
	error_log /srv/www/tecmint/logs/error.log; 
	root /srv/www/tecmint/public_html; 
	location ~* \.php$ { 
	fastcgi_index   index.php; 
	fastcgi_pass    127.0.0.1:9000; 
	include         fastcgi_params; 
	fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name; 
	fastcgi_param   SCRIPT_NAME        $fastcgi_script_name; 
	} 
} 

“激活”虚拟主机的过程包括从tecmint虚拟主机的定义创建符号链接到/etc/nginx/sites-enabled

# ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint 

为了实际应用我们所做的更改,现在我们需要重新启动Nginx。在这样做之前检查配置文件是否存在语法错误有时是有用的:

# nginx -t 
# systemctl restart nginx 
# systemctl status nginx 
Restart Nginx and Verify Status

要访问您新创建的虚拟主机,您需要将以下行添加到/etc/hosts,作为域名解析的基本方法。

192.168.0.18	www.tecmint.com tecmint.com 

第10步:测试Nginx、MySQL、PHP和PHP-FPM

让我们继续使用经典的方式测试PHP。在/srv/www/tecmint/public_html/下创建一个名为test.php的文件,并向其中添加以下代码。

phpinfo()函数显示了有关当前PHP安装的大量信息:

<?php 
	phpinfo(); 
?> 

现在将您的网络浏览器指向http://tecmint/test.php,检查已安装的模块和附加软件的存在:

恭喜!您现在已经拥有一个工作正常的LEMP堆栈安装。如果有什么意外情况,请随时使用下面的表格与我们联系。我们也欢迎提出问题和建议。

Source:
https://www.tecmint.com/install-nginx-mariadb-php-rhel-centos-fedora/