原文来自静雅斋,转载请注明出处。
生产环境和开发环境测试环境都不一样,所以配置都不能随意,对于大多数情况来说,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 尚未释出,等待中。
初始配置
对于一般配置来说,不需要安装 epel-release 仓库,本文主要在于希望跟随 RHEL 的配置流程,紧跟红帽公司对于服务器的配置说明。
> yum update
安装 centos-release-scl
> yum install centos-release-scl
实际上 CentOS extra 仓库有两个包关于 SCL,一个是 centos-release-scl
还有一个是 centos-release-scl-rh
,它们两者的区别在于一个是 SoftwareCollection 小组所有的打包 RPM,另一个则只包含 RedHat 官方打包内容,个人建议使用后者。
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
目前 stable 版本的 Nginx 是 Nginx1.8 版本,总共有五个包
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 是开发包。
> 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 不会导致问题的。
> 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原文链接:https://www.f2er.com/centos/379951.html