網(wǎng)站用什么技術(shù)做的百度霸屏培訓(xùn)
前言
大家好,我又來更新Webserver的博客了。上一次更新這個專欄時2024.2.5號,離現(xiàn)在已經(jīng)13天了。非常抱歉,中間隔了那么久。一方面是基礎(chǔ)知識學(xué)完之后,就要開始自己寫代碼了??椿A(chǔ)知識和寫代碼是兩回事,理論和實(shí)踐的區(qū)別還是非常大的。所以我對自己的要求是要完成一部分的內(nèi)容才能開始著手寫博客,避免自己的Webserver還沒做出點(diǎn)樣子就來誤人子弟。雖然不能保證自己的博客質(zhì)量要達(dá)到多么多么高,但至少要對得起自己,不能敷衍自己。這是我對自己的要求。另一方面是不可抗力和自身原因,這個專欄從一月中開始,到現(xiàn)在已經(jīng)將近40天,這40天的時間僅有一半我是真正地花在學(xué)習(xí)上地?;乩霞疫^年浪費(fèi)了十天,加上我一周總要偷懶多休息一兩天。對此我深感慚愧。寒假馬上就要結(jié)束,我在24,25號就要開學(xué),所以在這剩下的時間里,我一定全力以赴,完成Webserver剩下的內(nèi)容。
安裝Linux環(huán)境
學(xué)完基礎(chǔ)知識之后,我們就需要開始著手搭建我們自己的Webserver了。由于大部分同學(xué)沒接觸過相關(guān)的項目,完全白手起家不太現(xiàn)實(shí),所以找一個現(xiàn)成的WebServer來參考比較合理。
我選擇的是Github上的一個項目GitHub - qinguoyi/TinyWebServer: :fire: Linux下C++輕量級WebServer服務(wù)器.
拿到項目后我們不著急寫,先將作者的項目拿來運(yùn)行一下,如果能運(yùn)行成功,說明它的項目沒有問題,才能完成后續(xù)的工作。不然等千辛萬苦寫完了代碼編譯一直報錯,那真是想死的心都有了。
首先打開上面的項目,找到README中的快速運(yùn)行一節(jié)。
可以看到,作者采用的是Ubuntu版本 + MySQL的運(yùn)行環(huán)境。
由于我采用的是阿里云的Linux,所以不用自己下載Ubuntu,所以這部分內(nèi)容就不予展示了。讀者如果沒有云,也可以自己在電腦上下載一個 VmwareWorkstation虛擬機(jī),然后在虛擬機(jī)中安裝Ubuntu的鏡像,效果應(yīng)該是差不多的,這部分網(wǎng)上教程很多,就不再贅述。
沒有虛擬機(jī)的同學(xué)可以裝好虛擬機(jī)再繼續(xù)往下閱讀,當(dāng)然如果你嫌麻煩,也可以花一筆錢去阿里云或者騰訊云買一個云服務(wù)器,他們一般會對學(xué)生有優(yōu)惠活動。而且因?yàn)槲覀儗υ品?wù)器的使用僅限于學(xué)習(xí),所以可以購買配置最低的一檔,比如我買了一個2核,2G,2M帶寬,40G內(nèi)存的騰訊云服務(wù)器,費(fèi)用是96元一年,僅供參考,當(dāng)然,如果你是富哥不差錢,買一個稍微配置高一點(diǎn)的也可以。
安裝MySQL
到這一步相信你已經(jīng)安裝了Ubuntu環(huán)境,下面開始安裝Mysql。我的Ubuntu是20.04版本,Mysql也安裝的8.0版本。實(shí)測運(yùn)行該項目無問題,只是需要修改一些配置。
首先打開終端,進(jìn)入root用戶,Linux用戶命令可以查看我這篇文章
Linux用戶常用命令——Linux命令(一)-CSDN博客
在終端運(yùn)行以下命令下載Mysql,如果你沒有apt包管理器則需要先下載,一般云服務(wù)器都有apt包管理器,部分虛擬機(jī)映像需要自行下載。
使用 apt 包管理器:
sudo apt-get update
sudo apt-get install mysql-server
這里回車
執(zhí)行以下命令進(jìn)入mysql,Mysql的root用戶默認(rèn)密碼和Linux密碼相同
mysql -u root -p
查看mysql版本(mysql命令以分號結(jié)尾)
SELECT VERSION();
輸入exit回車 退出mysql
將github項目git到本地
首先檢查是否安裝了git
如果沒有安裝git,先用apt安裝git工具。
然后去github上把項目下載到本地
首先找到項目,復(fù)制項目URL
進(jìn)入終端,創(chuàng)建一個目錄WebTest,進(jìn)入目錄,git到本地
mkdir WebTest
cd WebTest
git clone <URL>
ls查看
創(chuàng)建完成,接下來我把這個目錄移動到我的另一個用戶ubuntu下,這一步不是必須,我只是方便管理,讀者可以自行選擇是否移動
給其WebTest用戶修改權(quán)限
到這一步,我們的項目就已經(jīng)成功clone到本地了,接下來我們要去把它運(yùn)行起來。
運(yùn)行項目
先回到GitHub上,查看快速運(yùn)行部分
回到終端,進(jìn)入mysql,依次執(zhí)行以上命令。這里我將
database命名為testDB
name命名為testName
passwd設(shè)置為123
再將main.cpp中的登錄名,密碼,庫名修改成我們登錄mysql的賬戶密碼(注意,不是剛剛我們在sql里創(chuàng)建的,而是登錄mysql賬戶用的,Mysql默認(rèn)root密碼是Linux用戶密碼)的。
這里你用vim或者vscode遠(yuǎn)程都可以,我這里就用vscode了。如果你還沒配置vscode遠(yuǎn)程連接,就直接在終端用 'vim main.cpp'命令打開main文件,將光標(biāo)移動到對應(yīng)位置后按i鍵進(jìn)行修改,修改完成后按ESC,再使用 ':wq' 保存退出即可
隨后我們執(zhí)行
sh ./build.sh
果然出現(xiàn)了BUG
這里是缺少mysql庫文件,我們?nèi)ゲ橐幌翯itHub上的issue,發(fā)現(xiàn)作者給了解決方法
執(zhí)行代碼
sudo apt-get install libmysqlclient-dev
再make一遍,果然不再報庫文件缺失,至于warning不用管。
這時候ls一下,可以看到server可運(yùn)行文件了
試一試
./server
光標(biāo)不動了,說明運(yùn)行成功。
瀏覽器訪問
接下來就是瀏覽器訪問了,在保持服務(wù)器運(yùn)行的情況下,打開瀏覽器
如果是虛擬機(jī)的同學(xué),可以使用回環(huán)地址(不知道的翻一下計網(wǎng)的書)
127.0.0.1:9006
云服務(wù)器的同學(xué),可以去管理臺查一下自己的云服務(wù)器的公網(wǎng)IP,然后輸入
IP:9006
如果發(fā)現(xiàn)打不開,就去服務(wù)器實(shí)例的防火墻(騰訊云)/安全組(阿里云)里面把9006端口設(shè)置為允許
紙上得來終覺淺,接下來我們就要正式寫代碼了