CentOS / RHEL 7.x 使用 EPEL 安装最新版本 LEMP / LNMP

CentOS 是 RHEL (Red Hat Enterprise Linux) 的免费版,由于红帽的大力推广,在国内外很是流行。因为众多企业和开发者使用,首先要求的是保证稳定,所以 CentOS 下的软件从不追求最新版本。

而很多时候我们不得不用到最新的版本进行一些操作,本文就介绍在 CentOS / RHEL 7.x 下使用 EPEL 以及官网仓库安装最新版本的 LEMP

本文所有操作均在 root 用户下进行,请自行切换至 root 用户

首先,在开始之前,需要关闭 SELinux,编辑 /etc/sysconfig/selinux 文件,设置参数 SELINUX=disabled 然后 reboot 重启机器

1、增加 EPEL 和 Remi 仓库

EPEL 指的是 Extra Packages for Enterprise Linux,由 Fedora 社区维护,专门给 RHEL 系的操作系统使用,并且相对于 CentOS 默认的仓库,更新比较快。

Remi 是基于 EPEL 的针对 PHP 打包的仓库,更新也很及时。

如果系统没有精简,自带 Extras 仓库,那么只要运行这个命令即可:

yum install epel-release  

很多 VPS 商家的系统都是精简的,所以我们可以直接安装:

yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm  

然后安装 Remi 的仓库

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm  

接着更新一下系统并且安装一些必要的软件

yum update  
yum install curl vim wget sudo unzip yum-utils  

2、安装 Nginx

安装 Nginx 有两种方式, EPEL 已自带社区打包好的 Nginx ,截至目前版本是 1.10.2 更新不算快,但是够用,安装很简单,直接运行以下命令:

yum install nginx  

还有一种方式是用 Nginx 官方的仓库,首先导入 Nginx 的 key

rpm --import http://nginx.org/keys/nginx_signing.key  

然后新建 /etc/yum.repos.d/nginx.repo

cat >> /etc/yum.repos.d/nginx.repo << EOF  
[nginx]
name=nginx repo  
baseurl=http://nginx.org/packages/centos/7/\$basearch/  
gpgcheck=1  
enabled=1  
EOF  

如果是 RHEL ,把文件里的的 centos 改成 rhel 即可,接着就是安装 Nginx:

yum install nginx  

3、安装 PHP 7.0.x

Remi 一直在维护 PHP 的大多数流行版本,从 PHP 5.4 到最新的 PHP 7.1,我们可以使用官网的这个小工具来挑选自己需要的版本,下面以 PHP 7.0.x 为例

指定 PHP 包的版本

yum-config-manager --enable remi-php70  

更新系统

yum update  

安装一些基本的能支持 WordPress 的 PHP 包:

yum install php-fpm php-mysql php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc php-zip  

修改一下 /etc/php.ini

sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php.ini  

Nginx 参考配置文件 /etc/nginx/conf.d/example.com.conf

server {  
        listen 80;
        listen [::]:80;

# 指定网站目录,可根据自己情况更换,建议放在 /var/www 目录下
        root /var/www/example.com;
        index index.php index.html index.htm;

# 默认第一个域名,替换 example.com 为您的域名
        server_name example.com;

        location / {
            try_files $uri $uri/ =404;
        }

# 开启 PHP7.0-fpm 模式
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
}

然后重启 PHP 和 Nginx

systemctl restart php-fpm  
systemctl restart nginx  

4、安装 MySQL

再次安利大家用 Percona Server 代替 MySQL 或 Mariadb

按照官网的教程,直接增加官网的仓库

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm  

然后安装

yum install Percona-Server-server-57  

根据他们自己的说法,为了安全考虑,安装过程中是不需要你输入 MySQL root 密码的,我们直接启动 MySQL:

systemctl start mysql  

然后 root 密码就会放在日志里了

[root@centos ~]# cat /var/log/mysqld.log | grep "temporary password"
2017-05-06T07:10:33.891810Z 1 [Note] A temporary password is generated for root@localhost: #Q?raSTwT1qu  

这里 #Q?raSTwT1qu 就是他随机给你生成的 MySQL root 密码,接下来就可以通过 MySQL 语法的命令进行一系列数据库操作了,这里不再重复,详细可以参考《Debian 8.x “jessie” 使用 Dotdeb 安装最新版本 LEMP / LNMP》和《Ubuntu Server 16.04.x (Xenial Xerus) 安装 LEMP / LNMP 教程

如需要帮助或建议,请前往 Telegram 群 @sbfans