在 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
引用:
[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