150Nginx 運(yùn)維基礎(chǔ)入門--LNMP系統(tǒng)安裝

實(shí)驗(yàn)原理

什么是 LNMP
首先這里要簡(jiǎn)單介紹下 LAMP 和 LNMP,這兩個(gè)都是在網(wǎng)站服務(wù)器架構(gòu)中的系統(tǒng)環(huán)境。

上節(jié)中我們簡(jiǎn)單介紹過:
LAMP 指的是:Linux+Apache+MySQL+Perl/PHP/Python
LNMP 指的是:Linux+Nginx+MySQL+PHP

我們可以從表面看出,這兩個(gè)框架大致的區(qū)別就在于 Apache 和 Nginx 上面(其實(shí),遠(yuǎn)遠(yuǎn)不止這些)。我們?cè)谏瞎?jié)已經(jīng)分析了 Nginx 與 Apache 的各種優(yōu)缺點(diǎn),這里就不再多加贅述。

這就是 LNMP 的組成:


image.png

實(shí)驗(yàn)步驟

LNMP 系統(tǒng)安裝(L-N-M-P)
前期準(zhǔn)備(環(huán)境要求,庫依賴):
如果你的物理機(jī)上用 apt-get 安裝了老版的 Nginx,或者你的 Nginx 有問題,可以使用 sudo apt-get purge nginx 命令刪除已安裝的 Nginx。

針對(duì)后面的 nginx 源碼編譯安裝(如果選擇 apt-get 的方式則不需要,我們?cè)谶@里會(huì)有簡(jiǎn)單的庫依賴列表,需要讀者參照解決。

ssl 功能需要 openssl

gzip 模塊需要 zlib

rewrite 模塊需要 pcre

這些庫可以點(diǎn)擊后在相應(yīng)官網(wǎng)進(jìn)行下載、解壓、編譯、安裝。(下載最新的最好)

L(Linux 安裝)

在 LNMP 中的作用或角色:
Linux 是一類 Unix 計(jì)算機(jī)操作系統(tǒng)的統(tǒng)稱,是目前最流行的免費(fèi)操作系統(tǒng)。LNMP 中以它作為平臺(tái)。
Linux 的常見發(fā)行版有:debian、centos、ubuntu、fedora、gentoo 等。
我們實(shí)驗(yàn)樓的環(huán)境本身就是 ubuntu,可直接進(jìn)行下一步操作。如果想擁有自己的 ubuntu 實(shí)驗(yàn)環(huán)境,趕緊動(dòng)手實(shí)現(xiàn)

N(Nginx 安裝)

在 LNMP 中的作用或角色:Nginx 是一個(gè)高性能的 HTTP 和反向代理服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器。
安裝方式
決定因素:主要針對(duì)不同人群、不同需求,對(duì)于一般新手而言 apt-get 就夠了;如果你樂于折騰,需要定制,那就源碼安裝吧(這里只會(huì)簡(jiǎn)單敘述)。強(qiáng)烈建議 apt-get 直接安裝。
(1)直接 apt-get 安裝

sudo apt-get update
sudo apt-get install -y nginx
image.png

這里要是安裝失敗的,很可能就是源的問題了。現(xiàn)在的軟件源比較完整,基本都包含了 Nginx,如果源列表實(shí)在沒有, 進(jìn)入系統(tǒng)設(shè)置-軟件更新切換另一個(gè)源就好了,ubuntu 官方源(國(guó)內(nèi)速度較慢)、souhu 源、163 都有(更換源最后記得 sudo apt-get update 更新軟件包列表數(shù)據(jù)庫,不然不會(huì)生效)。
ubuntu 因?yàn)榘踩呗?,每次?zhí)行安裝命令時(shí)一般需要加上 sudo 去操作。建議在安裝過程中使用 sudo 而不是直接切換到 root 用戶,這樣雖然表面繁瑣,但是安全。
(2)源碼安裝
這個(gè)方法比較繁瑣這里簡(jiǎn)單闡述下,因?yàn)?ubuntu 默認(rèn)的策略是什么庫都不安裝,經(jīng)過上面的庫依賴解決,可以從中了解到 Nginx 依賴的庫有哪些,并且可以定制安裝組件或者不安裝組件,開機(jī)啟動(dòng)或開機(jī)不啟動(dòng)等等。

nginx 源 下載最新的源代碼壓縮包,解壓編譯安裝就好。

Linux 中最好把源代碼存放在 /usr/local/src 文件夾中

完成安裝后的測(cè)試
所有的啟動(dòng)配置文件都在 /etc/init.d/nginx 這個(gè)目錄下,所以相關(guān)操作都可以在這個(gè)文件夾啟動(dòng)命令,這其實(shí)就是一個(gè)啟動(dòng)腳本。
啟動(dòng)命令:

sudo /etc/init.d/nginx start

# 或者使用如下的命令

sudo service nginx start

啟動(dòng)完畢后,打開瀏覽器,訪問 http://localhost 一定要刷新以確認(rèn)。

image.png

在實(shí)驗(yàn)樓的新版本環(huán)境里,由于環(huán)境升級(jí)的時(shí)候安裝了 apache,apache 的 html 文件覆蓋了 nginx 的文件,所以也可能會(huì)展示 apache 的頁面:
image.png

停止命令:

sudo /etc/init.d/nginx stop

# 或者使用如下的命令

sudo service nginx stop

停止過后,再打開瀏覽器,訪問 http://localhost 同樣需要刷新確認(rèn)

image.png

重啟命令:

sudo /etc/init.d/nginx restart

# 或者使用如下的命令

sudo service nginx restart

nginx 安裝后的初級(jí)配置
在后面的章節(jié)中,關(guān)于 Nginx 的配置有較詳細(xì)的講解及實(shí)戰(zhàn)。這里只是基礎(chǔ)的配置

sudo vim /etc/nginx/sites-available/default

PHP 需要配置 location ~ .php$ {},所以要讓 php 與 nginx 一起工作,就得在這個(gè)配置文件中配置這個(gè)模塊。
找到 location ~ .php 配置段,修改內(nèi)部配置為如下內(nèi)容:

location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}
image.png

緊接著測(cè)試配置文件是否正確:

sudo nginx -t
image.png

測(cè)試成功以后重載配置文件,使配置文件生效:

sudo service nginx reload

image.png

關(guān)于測(cè)試的話要等下面的 php 一同配置好后一起測(cè)試
如果對(duì) nginx default 配置還不是很清楚的或者有興趣的讀者可以參考 示例 1、示例 2

M(MySQL 安裝)

安裝
MySQL 是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其安裝分為服務(wù)端與客戶端
安裝命令如下:(由于實(shí)驗(yàn)樓環(huán)境中已經(jīng)裝有 Mysql。安裝部分就省略掉。)

sudo apt-get install mysql-server mysql-client

然后你會(huì)看見輸入密碼的界面,你只需接下來輸入管理員密碼就行。
如果不安裝,直接使用環(huán)境中的 MySQL,只需要在環(huán)境中使用 sudo service mysql start 啟動(dòng) MySQL,MySQL 用戶為 root,密碼為空。
修改 MySQL 的配置文件

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

將 bind-address = 127.0.0.1 注釋掉(在對(duì)應(yīng)的行前面添加 # ),就可以遠(yuǎn)程連接數(shù)據(jù)庫了


image.png

P(php 安裝)

在 LNMP 中的作用或角色:nginx 本身不能處理 PHP,它只是個(gè) web 服務(wù)器,當(dāng)接收到請(qǐng)求后,如果是 php 請(qǐng)求,則發(fā)給 php 解釋器處理,并把結(jié)果返回給客戶端。
php-fpm 是一個(gè)守護(hù)進(jìn)程(FastCGI 進(jìn)程管理器)用于替換 PHP FastCGI 的大部分附加功能,對(duì)于高負(fù)載網(wǎng)站是非常有用的。

sudo apt-get install -y php7.0-fpm

安裝好以后連同上面的 Nginx 一同測(cè)試:
現(xiàn)在創(chuàng)建一個(gè)探針文件保存在 /var/www/html 目錄下(這個(gè)目錄就是剛剛 nginx 配置文件中 root 目錄),以便測(cè)試。

sudo vim /var/www/html/phpinfo.php
image.png

接下來使用命令啟動(dòng) php7.0-fpm 服務(wù):

sudo service php7.0-fpm start

然后訪問 http://localhost/phpinfo.php記得刷新
接下來你就會(huì)看見:

image.png

修改各模塊配置文件

修改各個(gè)模塊配置文件,達(dá)到能互相支持的目的:
(1)首先,要想讓 php 支持 MySQL,還需要安裝一系列的配套模塊。
在剛才打開的網(wǎng)頁中,這是沒有裝模塊的界面,搜索可以看出,里面沒有任何 MySQL 的啟動(dòng)信息


image.png

你需要安裝 php-mysql 模塊,使用如下命令進(jìn)行安裝:

sudo apt-get install php-mysql

安裝好以后,緊接著你需要需要重啟 php

sudo service php7.0-fpm restart

這是裝好以后的表現(xiàn):


image.png

(2)改變監(jiān)聽端口
在某些情況下我們需要改變服務(wù)器監(jiān)聽的端口。
因?yàn)樘捉幼质峭ㄟ^綁定 ip 端口連接的,那就只需要將剛才的 Nginx 的 default(所在目錄 /etc/nginx/sites-available/)配置中的端口打開,改成你想要監(jiān)聽的端口。

# 這是 Nginx 的 default 文件
sudo vim /etc/nginx/sites-available/default
server {
  # 把 80 修改為 9000
  listen 9000 default_server;
  listen [::]:9000 default_server ipv6only=on;

  root /var/www/html;
  index index.html index.htm;

  # Make site accessible from http://localhost/
  server_name localhost;
}

命令重載配置文件,使之生效:

sudo service nginx reload
sudo service nginx restart

好了以后直接刷新剛才的頁面 http://localhost:9000/phpinfo.php記得刷新)就完成了

注意事項(xiàng)

如果運(yùn)行不正常,用 service nginx status 查看運(yùn)行狀態(tài)。
啟動(dòng),重啟,關(guān)閉 Nginx 記得加 sudo,不然可能會(huì)失敗。
如果還是不能啟動(dòng),查看 log,這個(gè)文件會(huì)告訴你失敗的原因。

tail /var/log/nginx/error.log
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容