字體:  

在 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
逢甲住宿推薦逢甲住宿台中旅店逢甲日租台中住宿台中逢甲民宿台中民宿台中一中住宿台中便宜住宿台中青年旅館