在ubuntu 16.04 下搭建LNMP環境
引言
LNMP(也有人稱為LEMP)指的是Linux系統下Nginx+MySQL+PHP這種網站伺服器架構搭配,集效能、穩定性、可擴充套件性於一體,是目前流行的伺服器環境,本文將介紹如何在Ubuntu 14.04 上搭建LNMP環境,在進行下文操作前,請確保你的Ubuntu是一個初始化狀態正常的系統。
步驟一、安裝Nginx
為了向用戶展示我們的網頁,我們需要一個Web伺服器,Nginx是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器,發音為 “Engine X”(記得一開始因為自己發音不準的問題還被後臺的小夥伴嘲弄了一通…)。
Ubuntu預設的包管理器是apt,用其他包管理器的操作大同小異,安裝Nginx之前先update更新一下源:
sudo apt-get update
sudo apt-get install nginx
在Ubuntu中,Nginx預設安裝完成後自動啟動,所以等安裝完成後,我們就可以在瀏覽器裡輸入Ubuntu系統的所在IP,訪問的效果應該是這樣的:
你如果看到這個頁面,就說明Nginx已經在你的Ubuntu上安裝成功了。
步驟二、安裝MySQL
上面我們已經安裝好Web伺服器了,接下來安裝的是資料管理系統——MySQL,終端輸入以下命令:
sudo apt-get install mysql-server
安裝過程會提示你輸入MySQL的root密碼,Tag鍵可以進行切換。
安裝好MySQL後,我們還需要進行一些初始化配置——告訴MySQL它需要生成存放資料庫和日誌等資訊的地方以及安全配置:
sudo mysql_install_db
sudo mysql_secure_installation
此過程會問你是不是要重置root密碼、是否允許遠端登入等等,按Y/N進行選擇,直到完成MySQL的安裝。
步驟三、安裝PHP
現在我們已經裝好了Nginx和MySQL,但是還缺一個東西把這Web伺服器和資料庫連線起來,這個東西就是PHP了。
這裡選擇的PHP版本為5:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
sudo apt-get install -y php5
命令執行完畢後,可以用”php -v”查詢安裝是否成功。
自從Nginx不在包含原生PHP之後,就像其它Web Service一樣,我們需要安裝php-fpm,這是一個只用於PHP的PHPFastCGI管理器,要連線資料庫則用的是php-mysql,輸入下面命令進行安裝:
sudo apt-get install php5-fpm php5-mysql
安裝好PHP後,接下來需要配置PHP處理器,我們開啟php5-fpm配置檔案php.ini:
sudo vim /etc/php5/fpm/php.ini
這裡用到的文字編輯器是vim,系統沒裝vim的可以 sudo apt-get install vim 安裝或者選擇其他編輯器,操作方法大同小異。
我們需要尋找欄位 cgi.fix_pathinfo (查詢方法:vim命令模式下按‘/’,然後輸入要查詢的字元回車)。這個引數用來對設定cgi模式下為php是否提供絕對路徑資訊或PATH_INFO資訊,Nginx預設是不會設定PATH_INFO環境變數的的值,需要php使用cgi.fix_pathinfo=1來完成路徑資訊的獲取,但同時會帶來安全隱患,需要把cgi.fix_pathinfo=0設定為0,這樣php就獲取不到PATH_INFO資訊。
預設為cgi.fix_pathinfo=1,我們需要把它改為cgi.fix_pathinfo=0:
改好後記得儲存退出,然後重啟PHP處理器:
sudo service php5-fpm restart
步驟四、給Nginx適配我們的PHP處理器
現在我們已經把該安裝的都安裝完畢了,接下來還得告訴Nginx去如何使用PHP處理器,開啟Nginx的預設服務配置:
sudo vim /etc/nginx/sites-available/default
它看起來應該是這樣的:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
.......
}
我們要做如下改動:
1、新增index.php到server值index中,讓Nginx識別index.php
2、新增你的域名或者IP到server值server_name中(如果沒有域名這一步可以略過,Nginx會採用預設的localhost)
3、開啟404錯誤頁面,當訪問出錯時會給個頁面提示
4、開啟PHP服務,取消掉一些註釋
改動後是這樣的:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
server_name server_domain_name_or_IP;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
改完後儲存退出,然後重啟Nginx:
sudo service nginx restart
步驟五、建立PHP檔案,測試上面四個步驟是否成功
經過上面四個步驟之後,我們在Ubuntu上已經裝好了LNMP環境,但我們仍需確認一下Nginx是否能夠正確地操控.php檔案給PHP處理器。
首先建立一個測試檔案,我們把它命名為info.php:
sudo vim /usr/share/nginx/html/info.php
然後把以下內容輸入到info.php裡面:
<?php
phpinfo();
?>
儲存並退出。
現在,你可以通過你的網頁瀏覽器訪問你搭建好的伺服器了,按照下面格式輸入訪問的地址:
http://你的域名或IP/info.php
你將看到的是由PHP生成的關於你伺服器資訊的一個頁面:
如果你看到這個頁面的話,就說明你的Nginx已經成功地操控.php檔案給PHP處理器了。
最後為了隱私和安全起見,最好輸入下面命令列吧剛才生成的info.php檔案刪除:
sudo rm /usr/share/nginx/html/info.php
總結
自此你已經成功地把LNMP環境安裝在你的Ubuntu14.04伺服器上了。
它將助你得以靈活、高效地向訪問者展示你的頁面!