如何在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存储库
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存储库。
- 创建一个文件 /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
- 再创建一个 /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
检查是否安装成功。