如何在 CentOS 7 上安装 Nginx 1.15、MariaDB 10 和 PHP 7
在本文中,我们将解释如何使用yum和dnf包管理器在RHEL/CentOS 7/6和Fedora 26-29服务器上安装LEMP堆栈(Linux、Nginx、MariaDB、PHP)以及PHP-FPM 。
在此过程中,我们将安装并启用Epel、Remi、Nginx和MariaDB存储库,以便能够安装这些软件包的最新版本。
另请阅读: 在 CentOS 7 上安装 Apache、MySQL 8 或 MariaDB 10 和 PHP 7
步骤 1:安装 EPEL 和 Remi 存储库
EPEL(企业 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 存储库
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
步骤4:安装Ngnix和MariaDB
Nginx ( Engine X ) 是一款开源、强大、轻量级且高性能的 Web 服务器、反向代理服务器以及 HTTP、SMTP、POP3 和 IMAP 协议的邮件代理服务器。有关更多详细信息,请访问http://wiki.nginx.org/Overview。
MariaDB是著名的 MySQL 的一个分支,MySQL 是世界上最流行的关系数据库管理系统 (RDBMS) 之一。它完全由社区开发,因此旨在保持 FOSS 并与 GPL 兼容。
要安装Ngnix和MariaDB,请运行以下命令。
----------- 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,首先需要通过安装来启用Remiyum-utils
存储库,它是一组用于管理 yum 存储库和包的有用程序。
# yum install yum-utils
安装后,您可以使用提供的yum-config-manageryum-utils
启用 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服务
默认情况下,Apache和Nginx监听同一个端口 (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.example.com
,但如果您愿意,可以随意选择其他域和主目录。
# mkdir -p /srv/www/example/public_html # mkdir /srv/www/example/logs # chown -R nginx:nginx /srv/www/example
步骤9:配置Nginx虚拟主机目录
众所周知,能够从同一台机器运行多个网站是主要 Web 服务器的显著特征之一。现在让我们继续在/etc/nginx下创建用于存储服务器块(在 Apache 中称为虚拟主机)的目录。
# 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/*;
要为 创建服务器块example.com
,请将以下代码行添加到/etc/nginx/sites-available/example(当您输入完整路径以启动首选文本编辑器时将创建此文件)。这是一个基本的虚拟主机配置文件。
server { listen 80 default; server_name example; access_log /srv/www/example/logs/access.log; error_log /srv/www/example/logs/error.log; root /srv/www/example/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; } }
“激活”虚拟主机的过程包括从example
虚拟主机的定义到/etc/nginx/sites-enabled创建符号链接。
# ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example
为了实际应用我们所做的更改,我们现在需要重新启动Nginx。在执行此操作之前检查配置文件中的语法错误有时很有用:
# nginx -t # systemctl restart nginx # systemctl status nginx
要访问您新创建的虚拟主机,您需要将以下行添加到/etc/hosts作为域名解析的基本方法。
192.168.0.18 www.example.com example.com
第 10 步:测试 Nginx、MySQL、PHP 和 PHP-FPM
让我们坚持使用测试 PHP 的经典方法。在/srv/www/example/public_html/test.php
下创建一个名为的文件,并在其中添加以下代码行。
该phpinfo()
函数显示了有关当前 PHP 安装的大量信息:
<?php phpinfo(); ?>
现在将您的 Web 浏览器指向http://example/test.php
并检查已安装的模块和附加软件是否存在:
恭喜!您现在已安装好LEMP堆栈。如果出现意外情况,请随时使用以下表格与我们联系。我们也欢迎您提出问题和建议。