在 Linode 上使用 Nginx 架設 LNMP 環境
Apache HTTPd 是很好的網站伺服器,但是對於 CPU 跟記憶體的要求較高,對於架設在 VPS 上面網站來說, 需要一個更輕量級的解決方案。越來越多人選擇使用 Nginx 架設網站,主要考量便是它的快速、穩定以及輕量的特性。
何謂 LNMP?
LNMP 是 Linux, Nginx, MySQL, PHP/Perl/Python 的縮寫,是指建構在 Linux 作業系統上,使用 Nginx 作為網站伺服器, MySQL 作為資料庫伺服器,支援 PHP, Perl 或者 Python 的執行環境。本文只限定在 PHP 環境上。
安裝環境
山姆鍋的環境是租用 Linode 的 512 VPS,基本資料如下:
1 | 作業系統: Ubuntu 10.04 64-bit |
安裝 php-fpm
對於提供 PHP 執行環境,Nginx 支援 fast-cgi 模式來執行 PHP 腳本。雖然使用 spawn-fcgi 套件安裝比較容易, 但 php-fpm 已經正式納入 PHP 體系,為了以後移植方便,山姆鍋選擇以 php-fpm 作為 PHP 執行方案。 由於 php-fpm 不在 Ubuntu 10.04 內建的軟體庫中,需要加入第三方軟體庫,使用下列指令:
1 | # apt-get install python-software-properties |
使用下列指令安裝 PHP 支援:
1 | # apt-get -y install php5-cli php5-common php5-mysql php5-suhosin php5-gd |
設定 PHP-FPM
修改 /etc/php5/fpm/php5-fpm.conf,山姆鍋修改的設定值有:
1 | listen = /var/run/php5-fpm.sock |
由於沒有要讓 PHP FastCGI 可以被遠端存取,所以山姆鍋選擇採用 Unix socket 作為 Nginx 與 PHP 之間的溝通管道。
安裝 MySQL 資料庫伺服器
MySQL 這款資料庫軟體,基本上已經可以算是架站軟體必定支援的。安裝 MySQL 資料庫,只需要執行:
1 | # apt-get install mysql-server php5-mysql |
安裝過程會提示變更 MySQL ‘root’ 帳戶的權限,記得一定要設定一個安全的密碼。
安裝 Nginx
安裝 Nginx 使用 Ubuntu 內建的軟體庫安裝 Nginx 相當容易,只要執行下列指令:
1 | # apt-get install nginx |
設定 Nginx 虛擬主機
假設讀者使用的域名為 example.com
,且希望 www.example.com
重新指向 example.com
以避免搜尋引擎誤判為重複內容。在 /etc/nginx/site-enabled 中建構一個檔案 (或者一個符號連結到真正的檔案),其內容為:
1 | server |
讓 Nginx 跟 PHP-FPM 溝通
設定了 Nginx,但是 PHP 還無法正確執行,因為我們還沒有讓 Nginx 知道如何跟 PHP-FPM 溝通。在 /etc/nginx/conf.d 目錄底下,建構一個檔案,其內容為:
1 | upstream php5-fpm-sock { |
接著重新啟動 Nginx 跟 PHP-FPM 讓設定生效。
1 | # /etc/init.d/php5-fpm restart |
結語
按照這樣的安裝步驟,應該就可以有個基本的 LNMP 執行環境。但這樣一個設定方式其實還欠缺其他東西,如防火牆設定,這些就請讀者參考本站或者網路其他文章了。