RHEL / CentOS 7 安裝 Nginx, MySQL, PHP (LEMP)

LEMP 意思是 Linux + Nginx, + MySQL (MariaDB) + PHP。Nginx (發音能同 engine x) 是一款以性能取向的網頁伺服器, 較 Apache 及 Lighttpd 使用較少記憶體, 而配置 Nginx 及 PHP 的方法與 Apache 有點不同, 因為 Nginx 是透過 php-fpm (FastCGI Process Manager) 運作的, 以下會示範在 CentOS 7 安裝 Nginx, MariaDB 及 PHP.

安裝 Nginx
在 RHEL, CentOS 或 Fedora 安裝 Nginx, 最簡單的方法是先加入 Nginx 的 CentOS 7 yum repository, 然後用 Yum 安裝, 輸入以下指令安裝:

# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# yum install nginx

安裝好 Nginx 網頁伺服器後, 便可以用 systemctl 啟動/停止/重新啟動 Nginx, 現在啟動 Nginx 及設定開機自動啟動:

# systemctl start nginx.service
# systemctl enable nginx.service

啟動後, 便可以用瀏覽器檢查 Nginx 是否可以連接, 例如:

http://server-ip/

安裝 MariaDB

執行以下指令安裝 MariaDB:

# yum install mariadb-server mariadb

啟動及設定開機自動執行 MariaDB:

# sudo systemctl start mariadb.service
# systemctl enable mariadb.service

執行以下指令設定 MariaDB 的 root 密碼, 預設是空密碼, 所以建議盡快修改:

# /usr/bin/mysql_secure_installation

完成後可以用測試一下 MariaDB 是否已經啟動:

# mysql -u root -p





安裝 PHP

# yum install php php-mysql php-fpm php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel

安裝好 PHP 後, 開啟 /etc/php.ini, 找到 cgi.fix_pathinfo=1, 將 1 改成 0, 即這樣:

cgi.fix_pathinfo=0

儲存檔案後, 再開啟 /etc/php-fpm.d/www.conf, 找到 listen 一行, 改成這這樣:

listen = /var/run/php-fpm/php-fpm.sock

儲存檔案後, 可以用以下指令啟動 php-fpm

# systemctl start php-fpm
# systemctl enable php-fpm.service

配置 Nginx 及 PHP

Nginx 的 server block 差不多等同 Apache 的 virtual hosts, 以下會透過 server block 設定, 開啟 /etc/nginx/conf.d/default.conf

檔案會是 Nginx 的預設內容, 即只可以處理靜態網頁, 要在要設定 Nginx 能編譯 php 檔案, 及將 index.php 設定成 index 檔, 改成這樣:

儲存檔案後, 重新啟動 Nginx 便完成了:

# systemctl restart nginx

Latest Comments

  1. Pingback: 各种lnmp | linux中国网 06 August 2015

Leave a Reply