网站搜索

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


在本文中,我们将解释如何安装 LEMP 堆栈(LinuxNginxMariaDB PHP)以及使用 yum 和 dnf 软件包的 RHEL/CentOS 7/6Fedora 26-29 服务器上的 PHP-FPM经理。

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

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

第 1 步:安装 EPEL 和 Remi 存储库

EPELExtra Packages for Enterprise Linux)是一个基于社区的存储库,为基于 RHEL 的 Linux 发行版提供附加软件包。

Remi 是一个存储库,您可以在其中找到最新版本的 PHP 堆栈(全功能),以便安装在 Fedora 和 Enterprise Linux 发行版中。

在 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]

第 2 步:安装 Nginx 和 MariaDB 存储库

仅在 RHELCentOS 发行版中才需要 Nginx 存储库。创建一个名为 /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 的一个分支,MySQL 是世界上最流行的关系数据库管理系统 (RDBMS) 之一。它完全由社区开发,因此旨在保持 FOSS 并与 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 

步骤 3:使用 Remi 存储库安装 PHP

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

要安装 PHP,首先需要通过安装 yum-utils 来启用 Remi 存储库,这是一组用于管理 yum 存储库和软件包的有用程序的集合。

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 侦听同一端口 (TCP 80)。因此,如果您的服务器中安装了 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

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

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

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

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

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

以下代码行必须在关闭 /etc/nginx/nginx.conf 中的 http 块之前插入,这将确保 /etc/nginx/sites-enabled 中的配置文件Nginx 运行时将考虑 目录:

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

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

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; 
	} 
} 

激活”虚拟主机的过程包括创建一个从howtoing虚拟主机的定义到/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 

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

192.168.0.18	linux-console.net linux-console.net 

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

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

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

<?php 
	phpinfo(); 
?> 

现在将您的 Web 浏览器指向 http://howtoing/test.php 并检查已安装的模块和附加软件是否存在:

恭喜!您现在已经安装了一个可以正常工作的LEMP堆栈。如果事情没有按预期进行,请随时使用下面的表格与我们联系。也欢迎提出问题和建议。