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'
  • 1
  • 2

原因是 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
  • 1
  • 2
  • 3

安裝 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;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

然後再修改 PHP-FPM的配置文件 /etc/php/7.1/fpm/pool.d
,如下:

;  與 Nginx監聽同一個 sock
listen = /run/php/php7.1-fpm.sock
  • 1
  • 2

配置好後重啓服務:

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腳本來連接數據庫了。

        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
            </div>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章