LEMP 意思是 Linux + Nginx, + MySQL + PHP。Nginx (發音能同 engine x) 是一款以性能取向的網頁伺服器, 較 Apache 及 Lighttpd 使用較少記憶體, 而配置 Nginx 及 PHP 的方法與 Apache 有點不同, 因為 Nginx 是透過 php-fpm (FastCGI Process Manager) 運作的, 以下是在 Ubuntu 16.04 安裝 Nginx, MariaDB 及 PHP 的方法。
安裝 Nginx
Ubuntu 16.04 安裝 Nginx 比以前簡單,因為 Nginx 已經在 Ubuntu 16.04 的預設 Repositories 內, 用 apt-get 指令安裝:
$ sudo apt-get install nginx
Nginx 預設的 Document Root 並不存在, 手動建立及設定權限:
$ sudo chown www-data:www-data /var/www
安裝好 Nginx 網頁伺服器後, 便可以用瀏覽器檢查 Nginx 是否可以連接, 例如:
http://server-ip/
如果看到 “Welcome to Nginx!” 頁面便安裝成功了。
安裝 MySQL Server
安裝 MySQL 同樣可以用 apt-get 完成, 執行以下指令安裝 MySQL Server:
安裝時 MySQL 會詢問要設置的 root 新密碼, 或者可以執行 mysql_secure_installation 修改:
安裝 PHP
Nginx 要使用 PHP 需要連同 php-fpm (Fast CGI Process Manager) 一同安裝:
安裝好 PHP 後, 開啟檔案 /etc/php/7.0/fpm/php.ini, 找到 cgi.fix_pathinfo=1, 將 1 改成 0, 即這樣:
cgi.fix_pathinfo=0
儲存檔案後, 可以用以下指令啟動 php-fpm
現在設定 Nginx 使用 PHP 處理 PHP 網頁, 在 Nginx 透過 Server Block (即 Apache 的 Virtual Hosts) 設定。開啟 Nginx 預設 Server Block 設定檔:
內容像以下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } } |
將檔案內容改成以下這樣:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name your-IP; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; } } |
儲存檔案後離開編輯器, 現在可以重新啟動 Nginx:
要測試 PHP, 可以放一個簡單的 PHP Script 到 /var/www/html/ 目錄, 這裡:
輸入以下幾行程式碼:
1 2 3 |
<?php phpinfo(); ?> |
然後在瀏覽器看看 http://localhost/info.php, 如果看到 PHP 的設定資料便表示安裝完成了。