字體:  

在 CentOS 7 下整合 Nginx 1.10 + MariaDB 5.5 + PHP 7.0

becky98 發表於: 2016-6-27 13:42 來源: ADJ網路控股集團


在 Linux 的世界裡,要架 Web 站的套件組合,最常見的絕對是 LAMP = Linux + Apache + MySQL + PHP。不過,由 Linux + Nginx + MariaDB + PHP 的 LEMP 套件組合也不遑多讓,後勢看漲。

事前準備:
加入 EPEL 套件庫。
# yum -y install epel-release

Remi 套件庫。
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

以及 Nginx 套件庫。
# vi /etc/yum.repos.d/nginx.repo

QUOTE:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
別忘了更新一下所有套件庫的快取資料。
# yum -y update


重頭戲 => 安裝主要套件

安裝的步驟也很簡單,全部交給 yum 指令來搞定就行了。
# yum -y install nginx php70-php-fpm php70-php-mbstring php70-php-xml php70-php-cli mariadb-server

就是這麼簡單!對吧~

直接啟動服務,並讓它在開機後自動啟動。
# systemctl restart nginx
# systemctl enable nginx


PHP-FPM

Nginx 跟 Apache 不同,必須配合 PHP-FPM 來啟用 PHP 的支援。

首先修改一下 PHP 的主設定檔。
# vi /etc/opt/remi/php70/php.ini

找到 ;cgi.fix_pathinfo=1,將 1 改成 0,並把註解拿掉。
cgi.fix_pathinfo=0

修改這個參數是因為有資安漏洞,請參閱 风雪之隅 - Nginx + PHP CGI的一个可能的安全漏洞。

簡單的說,
就是因為 PHP 在解析路徑的時候,有機會被拿來執行那些偽裝成普通檔案的惡意程式碼。

接著,修改 PHP-FPM 的主設定檔。
# vi /etc/opt/remi/php70/php-fpm.d/www.conf

配合 Nginx 修改下列設定值。
user = nginx
group = nginx
listen.owner = nobody
listen.group = nobody

啟動 PHP-FPM,並讓它在開機後自動啟動。
# systemctl restart php70-php-fpm
# systemctl enable php70-php-fpm


MariaDB

啟動 MariaDB Server,並讓它在開機後自動啟動。
# systemctl restart mariadb
# systemctl enable mariadb

進行一些安全性的調整。
# mysql_secure_installation

此外,為了讓 PHP 可以連接 MariaDB,要再額外安裝 PHP 的模組。
# yum -y install php70-php-mysqlnd

裝好之後,重新啟動 PHP-FPM。
# systemctl restart php70-php-fpm

回到瀏覽器,重新載入剛剛的 PHP 測試頁,就會看到 MariaDB 的支援模組了。

參考文章:
http://blog.itist.tw/2016/01/installing-lemp-stack-with-centos-7-nginx-mariadb-php-7.html