1. 程式人生 > >在ubuntu 16.04 下搭建LNMP環境

在ubuntu 16.04 下搭建LNMP環境

引言

LNMP(也有人稱為LEMP)指的是Linux系統下Nginx+MySQL+PHP這種網站伺服器架構搭配,集效能、穩定性、可擴充套件性於一體,是目前流行的伺服器環境,本文將介紹如何在Ubuntu 14.04 上搭建LNMP環境,在進行下文操作前,請確保你的Ubuntu是一個初始化狀態正常的系統。

2016050313200088

步驟一、安裝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,訪問的效果應該是這樣的:

2016050313320837

你如果看到這個頁面,就說明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:

2016050402381825

改好後記得儲存退出,然後重啟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生成的關於你伺服器資訊的一個頁面:

2016050313321118

如果你看到這個頁面的話,就說明你的Nginx已經成功地操控.php檔案給PHP處理器了。

最後為了隱私和安全起見,最好輸入下面命令列吧剛才生成的info.php檔案刪除:

sudo rm /usr/share/nginx/html/info.php

總結

自此你已經成功地把LNMP環境安裝在你的Ubuntu14.04伺服器上了。

它將助你得以靈活、高效地向訪問者展示你的頁面!