【TensorFlow】01 TensorFlow簡介與Python基礎(chǔ)
875
2025-04-01
LNMP指的是一個基于CentOS/Debian編寫的Nginx、PHP、MySQL一鍵安裝包。可以在VPS、獨立主機上輕松的安裝LNMP生產(chǎn)環(huán)境。LNMP代表的就是:Linux系統(tǒng)下Nginx+MySQL+PHP這種網(wǎng)站服務(wù)器架構(gòu)。
Linux是一類Unix計算機操作系統(tǒng)的統(tǒng)稱,是目前最流行的免費操作系統(tǒng)。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一個高性能的HTTP和反向代理服務(wù)器,也是一個IMAP/POP3/SMTP代理服務(wù)器。
Mysql是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。
PHP是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言。
這四種軟件均為免費開源軟件,組合到一起,成為一個免費、高效、擴展性強的網(wǎng)站服務(wù)系統(tǒng)。 本文將教你在華為云上搭建LNMP網(wǎng)站服務(wù)環(huán)境。分為四大部分,第一部分為安裝Nginx,第二部分為安裝MySql數(shù)據(jù)庫服務(wù),第三部分為搭建PHP運行環(huán)境,第四部分配置使用Nginx代理轉(zhuǎn)發(fā)PHP數(shù)據(jù)。
安裝Nginx環(huán)境
安裝Nginx有兩種方法,分別為使用apt包管理工具安裝和使用編譯方式進行安裝。如果你使用的是Ubuntu系統(tǒng),則可以按照本教程使用apt包管理工具進行安裝。
首先,我們需要使用sudo apt-get update更新當前系統(tǒng)下apt包管理器的列表。然后使用sudo apt-get install nginx命令安裝Nginx軟件。
sudo?apt-get?update sudo?apt-get?install?nginx
輸入后你會看到如下輸出
ubuntu@VM-0-7-ubuntu:~$?sudo?apt-get?install?nginx Reading?package?lists...?Done Building?dependency?tree Reading?state?information...?Done The?following?additional?packages?will?be?installed:........Need?to?get?2,857?kB?of?archives.After?this?operation,?9,307?kB?of?additional?disk?space?will?be?used.Do?you?want?to?continue??[Y/n]
這里詢問我們是否安裝,我們按下鍵盤上的Y,然后按下回車鍵,之后,你會看到類似如下輸出:
Get:1?http://mirrors.tencentyun.com/ubuntu?xenial-security/main?amd64?libjpeg-tu.........Processing?triggers?for?ufw?(0.35-0ubuntu2)?...ubuntu@VM-0-7-ubuntu:~$
這時,你已經(jīng)安裝好了Nginx服務(wù),嘗試通過瀏覽器訪問下你的服務(wù)器,在騰訊云控制臺找到你服務(wù)器的公網(wǎng)IP,然后復制到瀏覽器打開,如果你看到如下輸出,證明你已經(jīng)成功安裝Nginx。
安裝MySql數(shù)據(jù)庫服務(wù)
我們已經(jīng)安裝了基礎(chǔ)的Web服務(wù)軟件Nginx了,接下來我們將要安裝數(shù)據(jù)庫服務(wù),數(shù)據(jù)庫有很多種選擇,這里我們選擇最常用的MySQL服務(wù)。和安裝Nginx一樣,我們只需輸入sudo apt-get install mysql-server來安裝MySQL服務(wù)。這里安裝的MySQL版本是5.7版本。
sudo?apt-get?install?mysql-server
輸入完成后你會看到如下輸出
ubuntu@VM-0-7-ubuntu:~$?sudo?apt?install?mysql-server Reading?package?lists...?Done Building?dependency?tree Reading?state?information...?Done The?following?additional?packages?will?be?installed:........0?upgraded,?21?newly?installed,?0?to?remove?and?205?not?upgraded.Need?to?get?19.4?MB?of?archives.After?this?operation,?162?MB?of?additional?disk?space?will?be?used.Do?you?want?to?continue??[Y/n]?y
請按下鍵盤上的Y然后回車繼續(xù)。接下來,安裝程序?qū)⒁竽爿斎肽愕臄?shù)據(jù)庫root用戶的密碼,如圖。
這里請輸入你想為root用戶設(shè)定的密碼,我這里輸入passwd為例。自己設(shè)置的時候請設(shè)置較復雜的密碼。輸入完成后按下回車,系統(tǒng)將要求你再次輸入一遍剛才設(shè)定的密碼,同樣,輸入完成后我們按下回車。接下來將進入漫長的安裝過程,你會看到類似如下輸出。
Do?you?want?to?continue??[Y/n]?y Get:1?http://mirrors.tencentyun.com/ubuntu?xenial-security/main?amd64?mysql-common?all?5.7.23-0ubuntu0.16.04.1?[15.4?kB]Get:2?http://mirrors.tencentyun.com/ubuntu?xenial/main?amd64?libaio1?amd64?0.3.110-2?[6,356?B]..........Setting?up?mysql-server?(5.7.23-0ubuntu0.16.04.1)?...Processing?triggers?for?libc-bin?(2.23-0ubuntu9)?...Processing?triggers?for?systemd?(229-4ubuntu21.2)?...Processing?triggers?for?ureadahead?(0.100.0-19)?...ubuntu@VM-0-7-ubuntu:~$
接下來,我們將安裝php環(huán)境。
安裝PHP環(huán)境
同樣簡單,我們依然可以使用apt包管理器進行php的安裝,不過這次我們不只要安裝php本身,還要安裝php-fpm,它是一個FastCGI管理器,可以有效控制內(nèi)存和進程、可以平滑重載PHP配置。同樣,為了連接數(shù)據(jù)庫,我們還需要安裝php-mysql插件。使用下面的命令即可快速安裝。
sudo?apt-get?install?php sudo?apt-get?install?php-fpm sudo?apt-get?install?php-mysql
輸入完這三個命令后,系統(tǒng)同樣會輸出一大堆內(nèi)容,我們只需要耐心等待即可。值得注意的是,我的系統(tǒng)版本是Ubuntu server 16.04.1 LTS,默認安裝的是PHP 7.0版本。PHP-FPM 默認監(jiān)聽 9000 端口。
配置Nginx代理PHP程序
我們已經(jīng)安裝完了Nginx、PHP及MySQL,但是這套服務(wù)暫時還不能使用,我們需要將Nginx和PHP通過配置鏈接起來。具體操作如下,首先我們需要進入Nginx配置目錄。在/etc/nginx/conf.d/這個目錄下。
ubuntu@VM-0-7-ubuntu:~$?cd?/etc/nginx/conf.d/ubuntu@VM-0-7-ubuntu:/etc/nginx/conf.d$
接下來我們要新建一個名為default.conf的配置文件,你可以使用任意編輯器來編寫,這里我使用nano編輯器進行編寫,可以使用下面的命令。
sudo?nano?default.conf
然后復制下面的配置到編輯器
server?{ ????listen???????80; ????root?????????/usr/share/nginx/html; ????location?~?.php$?{ ????????fastcgi_pass??unix:/run/php/php7.0-fpm.sock; ????????#?如果你的php版本低于7.0,請將unix:/run/php/php7.0-fpm.sock;替換為127.0.0.1:9000; ????????fastcgi_index??index.php; ????????fastcgi_param??SCRIPT_FILENAME??$document_root$fastcgi_script_name; ????????include????????fastcgi_params; ????}}
然后按下鍵盤上的Ctrl+O鍵然后按下回車保存,然后按下Ctrl+W退出。接下來我們需要刪除nginx默認的配置文件,不然我們定義的這個文件運行會報錯。首先打開/etc/nginx/sites-available目錄,然后刪除默認的default的文件。具體操作如下:
cd?/etc/nginx/sites-available sudo?rm?default
然后我們需要重啟nginx以確保其正常運行,可以使用sudo service nginx restart這個命令。
sudo?service?nginx?restart
沒有報錯證明系統(tǒng)一切正常,我們可以測試我們的php是否正常運行了。測試之前我們需要準備測試腳本,這里我們新建一個名為info.php的文件,這個文件一定要放在我們上面寫的default.conf里面的root行后面指向的目錄,本文配置是/usr/share/nginx/html目錄,具體操作如下。
cd?/usr/share/nginx/html sudo?nano?info.php
然后在編輯器里面寫下如下代碼
然后按下鍵盤上的Ctrl+O鍵然后按下回車保存,然后按下Ctrl+W退出。接下來,通過瀏覽器訪問 http://你的服務(wù)器的公網(wǎng)IP地址/info.php ,如果你看到如圖結(jié)果,證明一切正常,趕快開始部署你喜愛的程序吧!
總結(jié)
這篇文章中,我們學會了搭建LNMP網(wǎng)站服務(wù)環(huán)境。通過這個環(huán)境,你可以部署很多基于PHP語言的網(wǎng)站。
當然,搭建LNMP過程中難免會遇到一些莫名其妙的問題,在這里我總結(jié)幾點,希望對你有幫助。
Q:啟動Nginx過程中總是報“Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.”錯誤。A:請檢查Nginx配置文件,確保其格式正確,如果太長,請分離開一段一段檢查。Q:配置完成并重啟Nginx無效,訪問服務(wù)器IP還是默認的頁面。A:請檢查/etc/nginx/sites-available和/etc/nginx/conf.d是否有其他文件沖突,若有沖突請刪除多余文件。Q:訪問info.php文件報502錯誤A:首先檢查php-fpm服務(wù)是否啟動,可以使用sudo service php-fpm start命令啟動,若還是報錯,請檢查你的php版本,低于7.0版本請將nginx配置文件中的fastcgi_pass行改為127.0.0.1:9000;Q:php版本是7.0,已經(jīng)啟動php-fpm服務(wù),還是報錯502。A:打開/run/php/目錄,尋找以.sock結(jié)尾的文件,并以絕對路徑方式替換配置中的/run/php/php7.0-fpm.sock這是目前使用Ubuntu Server 16.04.1系統(tǒng),php7.0版本可能會遇到的問題,其他遇到的BUG歡迎大家評論反饋。
如果你的LNMP環(huán)境打算長期使用,我推薦你將文中的MySQL服務(wù)更換為華為云上關(guān)系型數(shù)據(jù)庫進行配置,云關(guān)系型數(shù)據(jù)庫是一種高度可用的托管服務(wù),提供容災、備份、恢復、監(jiān)控、遷移等數(shù)據(jù)庫運維全套解決方案,可將您從耗時的Discuz!數(shù)據(jù)庫管理任務(wù)中解放出來,讓您有更多時間專注于您的應用和業(yè)務(wù)。
LNMP PHP 網(wǎng)站
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。