CentOS 生产环境配置

原文来自静雅斋,转载请注明出处。php

生产环境和开发环境测试环境都不同,因此配置都不能随意,对于大多数状况来讲,RHEL 绝对是一个最佳选择,除了最稳定的内核发布和最全的驱动支持,还能享受到 RHEL 10 年生命周期中 SoftwareCollection 所提供的最新稳定的软件包集合,尤为是 OpenJDK 的支持,让用户没有任何后顾之忧。不过因为国内云服务器基本不提供 RHEL 的镜像,而且还存在着 RHEL 注册服务器链接不上或者 yum 更新下载速度缓慢的问题,CentOS 成为了国内互联网企业的最佳选择。
虽说 CentOS 相对于 RHEL 来讲并非那么靠谱,可是因为背靠 RedHat 这座大山,不少 RHEL 所拥有的好的东西都能被 CentOS 拿到,因此 CentOS 在不少状况下是一种不错的选择。这里就记录一下广泛的 LNMP 环境配置。
PS:最新的 RHEL 7.3 已经释出,SoftwareCollection 更新了 PHP 7,很是赞。不过目前 CentOS 7.3 还没有释出,等待中。java

初始配置

对于通常配置来讲,不须要安装 epel-release 仓库,本文主要在于但愿跟随 RHEL 的配置流程,紧跟红帽公司对于服务器的配置说明。node

> yum update复制代码

安装 centos-release-sclpython

> yum install centos-release-scl复制代码

实际上 CentOS extra 仓库有两个包关于 SCL,一个是 centos-release-scl 还有一个是 centos-release-scl-rh,它们二者的区别在于一个是 SoftwareCollection 小组全部的打包 RPM,另外一个则只包含 RedHat 官方打包内容,我的建议使用后者。mysql

SoftwareCollection 包含的内容

rh-java-common
rh-mariadb100
rh-mariadb101
rh-maven33
rh-mongodb26
rh-mongodb30upg
rh-mongodb32
rh-mysql56
rh-nginx18
rh-nodejs4
rh-perl520
rh-php56/
rh-postgresql94/
rh-postgresql95/
rh-python35/
rh-ror42/
rh-ruby23/
rh-varnish4/复制代码

除此以外,还包含了一项重要内容 Devtoolset,若是在 CentOS 上使用过 node-gyp 的朋友应该对此很是熟悉,上面这些 SoftwareCollection 足以包含目前主流的应用环境部署,因此,若是有朋友说 RHEL “太老”,确定是对 RHEL 的软件策略不熟悉。nginx

Nginx

目前 stable 版本的 Nginx 是 nginx1.8 版本,总共有五个包sql

essential package:
rh-nginx18
rh-nginx18-nginx
rh-nginx18-runtime
optional package:
rh-nginx18-build
rh-nginx18-scldevel复制代码

熟悉 RHEL 的朋友应该看出来了,rh-nginx18 是总包,rh-nginx18-runtime 是各种配置脚本,rh-nginx18-build 是编译配置,rh-nginx18-scldevel 是开发包。mongodb

> yum install rh-nginx18复制代码

nginx1.8 就安装好了。数据库

PHP

目前 PHP SCL 版本为 5.6,不过 RHEL 7.3 已经发布,而且其中 SCL 版本升级到了 PHP 7,能够说是重大利好,PHP 7 的高性能是不少 Web 应用急需的,并且做为官方的打包,其质量仍是很可靠的(SoftwareCollection 实际上不是官方打包的,可是是第三方社区根据 RedHat 释出的编译配置重编译产生的,可靠性仍是有保证的)
因为 PHP 可选软件包过多,这里就不列出全部的软件包列表了,只须要安装总包,就能将必须的软件包安装到服务器上,不过总包不包含 FPM,所以须要手动将其安装。
在安装 PHP-MySQL、PHP-PostgreSQL 这样的数据库支持库的时候,可能有人发现并无安装 SCL 中提供的 MySQL-Libs 或者 PostgreSQL-libs,而是使用了官方自带的库文件,RedHat 官方也给出了解释是为了保持兼容性,并且使用官方自带老版本的 libs 不会致使问题的。centos

> yum install rh-php56 rh-php56-fpm复制代码

至于其余的包则能够经过 yum 继续安装,这里只示范 PHP-FPM。

MariaDB

自从 MySQL 被 Oracle 收购后,各个发行版和企业都开始转移阵地,一些企业开发自有分支,好比像阿里巴巴开发 AliSQL,还有就是转向 MySQL 之父的 MariaDB,因为 RHEL 7 使用 MariaDB 替代了 MySQL,因此系统自带的是 MariaDB-libs,所以这里也使用 MariaDB 作示范。

> yum install rh-mariadb101复制代码