原文來自靜雅齋,轉載請註明出處。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
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 版本,總共有五個包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 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。
自從 MySQL 被 Oracle 收購後,各個發行版和企業都開始轉移陣地,一些企業開發自有分支,好比像阿里巴巴開發 AliSQL,還有就是轉向 MySQL 之父的 MariaDB,因爲 RHEL 7 使用 MariaDB 替代了 MySQL,因此係統自帶的是 MariaDB-libs,所以這裏也使用 MariaDB 作示範。
> yum install rh-mariadb101複製代碼