Ubuntu 16.04 下快速搭建 LNMP環境
在 Ubuntu 系統中,可以使用 apt-get 命令來搭建 LNMP環境。這種方式較編譯方式安裝更加簡便,因此選擇使用該方式來搭建環境以供學習。
安裝Nginx
使用 sudo apt-get install nginx 就能自動安裝 Nginx,為了確保獲得最新的 Nginx,可以先使用 sudo apt-get update 命令更新源列表。
安裝好之後,使用 dpkg -S nginx 命令來搜尋 nginx相關檔案,可以從命令顯示結果看出 Nginx預設的安裝位置是/etc/nginx目錄,其配置檔案nginx.conf也是在該目錄下,並且在 etc/init.d 下有 nginx的啟動程式,該目錄下的程式都會在系統開啟時啟動。
此外,Nginx的預設網站目錄是 /usr/share/nginx/html/,預設Nginx網站配置檔案為 /etc/nginx/sites-available/default 。
啟動 Nginx服務,使用下面兩個命令任意一個即可:
sudo /etc/init.d/nginx start
sudo service nginx start
使用 netstat -anp 則可以看到80埠已經處於 LISTEN狀態了。
直接檢視80埠可以使用命令:sudo lsof -i :80
在瀏覽器輸入 127.0.0.1後,就可以看見 Nginx的歡迎頁面了。
安裝 PHP 7.1 與 PHP7.1-FPM
直接執行 sudo apt-get命令安裝 PHP 會報錯誤:
E: Unable to locate package php7.1
E: Couldn't find any package by regex 'php7.1'
原因是 PHP7 等並不在 Ubuntu的軟體庫中,因此要使用 PPA ppa:ondrej/php 庫
使用下列命令:
sudo apt-add-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.1 php7.1-fpm
安裝 PHP7.1包的同時也安裝了 PHP7.1-CLI
可以使用 php -v 命令來檢視 PHP 版本資訊。
Nginx 與 PHP-FPM整合
PHP-FPM 與 Nginx 通訊方式有兩種,一種是基於TCP的 Internet domain socket 方式,一種是 UNIX domain socket 方式。
UNIX domain socket 可以使同一臺作業系統上的兩個或多個程序進行資料通訊。UNIX domain socket 的介面和 Internet domain socket 很像,但它不使用網路底層協議來通訊。
伺服器壓力不大的情況下,這兩種方式效能差別不大,但在壓力比較滿的時候,用UNIX domain socket方式,效果確實比較好。
UNIX domain socket 方式:
在 /etc/nginx/sites-available/default 配置檔案中(網站根目錄也在是這裡更改), Nginx已經為與 PHP-FPM的整合準備好了,只需要將下面這部分改好就可以了。sock檔案路徑為 /run/php/php7.1-fpm.sock 。
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}
然後再修改 PHP-FPM的配置檔案 /etc/php/7.1/fpm/pool.d
,如下:
; 與 Nginx監聽同一個 sock
listen = /run/php/php7.1-fpm.sock
配置好後重啟服務:
sudo /etc/init.d/nginx restart
sudo /etc/init.d/php7.1-fpm restart
安裝 MySQL
使用命令
sudo apt-get –y install mysql-server mysql-client php7.1-mysql
第三個是 PHP的 MySQL擴充套件。
安裝過程中會讓你為 MySQL root使用者設定密碼。
同樣,使用命令 netstat -anp ,會發現 3306埠正在被監聽了。
現在可以編寫 PHP指令碼來連線資料庫了。