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

时间:2019-04-29 03:17:21  来源:igfitidea点击:

如何使用yum和dnf包管理器在RHEL/CentOS 7/6和Fedora 26-29服务器上安装LEMP堆栈(Linux、Nginx、MariaDB、PHP)和PHP- fpm。

安装EPEL和Remi存储库

EPEL (Enterprise Linux的附加包)是一个基于社区的存储库,为基于rhel的Linux发行版提供附加软件包。

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

在RHEL/CentOS 7上安装EPEL和Remi存储库

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

### 如果是 RHEL 7 ,还可以使用下面命令
# subscription-manager repos --enable=rhel-7-server-optional-rpms

在RHEL/CentOS 6上安装EPEL和Remi存储库

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

### 如果是 RHEL 6,还可以使用下面命令
# subscription-manager repos --enable=rhel-6-server-optional-rpms

在Fedora上安装EPEL和Remi存储库

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

安装Nginx和MariaDB存储库

只有在RHEL和CentOS发行版中需要配置Nginx和mariadb存储库。

  1. 创建一个文件 /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
  1. 再创建一个 /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协议的邮件代理服务器。

MariaDB是著名的MySQL的一个分支,MySQL是世界上最流行的关系数据库管理系统(RDBMS)之一。

在RHEL/CentOS 7/6上安装Ngnix和MariaDB

# yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

在Fedora 上安装Ngnix和MariaDB

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

使用Remi源安装PHP

安装yum-utils

yum-utils包含一组用于管理yum存储库和包的有用程序。

# yum install yum-utils

安装php

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

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

安装php模块

### CentOS & RHEL 
# 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

### 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

如何停止apache服务

默认情况下,Apache和Nginx监听同一个端口(TCP 80)。
所以如果系统安装了apache,我们需要先停止它,才能启动nginx服务

# systemctl stop httpd 
# systemctl disable httpd 
或者
# systemctl mask httpd 

如何启动Nginx, MariaDB 和 PHP-FPM,并设置开机启动

### 启动服务
# systemctl start nginx 
# systemctl start mariadb 
# systemctl start php-fpm 

### 设置开机自启动服务
# systemctl enable nginx 
# systemctl enable mariadb 
# systemctl enable php-fpm 

配置Nginx 和 PHP-FPM

/srv/www/下为站点创建一个目录。

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

配置Nginx虚拟主机目录

nginx下的server块, 在Apache中称为虚拟主机

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

/etc/nginx/nginx中, 将下面行插入到 http模块的尾部。 当Nginx运行时,/etc/nginx/sites-enabled目录下的配置文件也将被读取。

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

为站点配置一个server块:

新建一个/etc/nginx/sites-available/mywebsite文件,内容如下:

server { 
	listen 80 default; 
	server_name mywebsite.org; 
	access_log /srv/www/mywebsite/logs/access.log; 
	error_log /srv/www/mywebsite/logs/error.log; 
	root /srv/www/mywebsite/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; 
	} 
}

创建一个软链接:

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

重启nginx使配置生效

# nginx -t 
# systemctl restart nginx 
# systemctl status nginx 

测试Nginx, MySQL, PHP 和 PHP-FPM

/srv/www/mywebsite/public_html/中创建一个test.php文件:

test.php:

<?php 
	phpinfo(); 
?> 

然后使用浏览器打开http://ip地址/test.php检查是否安装成功。