剛從家回來,老師讓寫專利,就開始准備寫,初稿交給老師后,把我說了一頓,我就想着回去改呀,然后。。。老師找到了我,說是食品院那急需一個展示數據的平台,然我盡快干出來,我也是菜鳥啊,就沒單獨干過呀,即使是一個展示數據,上一次的海底撈的還是師兄搭好框架,我們在上面改的,也遇到了不少坑,詳見我的github:http://JadenFK.github.io
還好前幾天就在GitHub上下載了一個Django的開源項目,實現了登陸注冊功能,這個也只需要改改就好了呀,然后又找了免費的前端的bootstrap框架寫的前端代碼,我自己整合的,然后修改一下啊,比自己從頭寫快多了哈哈,然后就開發呀,數據展示我用的ajax取的數據,前台延用的免費框架用的DataTable框架,畫圖也是延用:chart.js
一切基本實現了后,得部署啊,讓外網能訪問啊,前面我也弄過我們實驗室搭建過的網站,海底撈用到的服務器是tomcat,php的網站用的是wamp(Apache+Mysql/MariaDB+Perl/PHP/Python)服務器,而一個c#寫是直接部署到了Windows server 2008R2的IIS服務器上,其他的海底撈、php等項目都是在其基礎上改不同的端口以供外網訪問。wamp是把php項目其文件夾www下,並且設置端口即可,設置數據庫連接,tomcat也可以打包成var包放進去,然后設置端口監聽(我還沒試過,只是在tomcat設置監聽端口,然后在TP-LINK,虛擬服務器上給與其端口),在IntelliJ idea上直接運行項目即可(運行環境配置也要設置端口和本機ip,這個也和我這次的django部署相關,也不知道我理解的對不對,反正django這么做的是行了,以后我覺得也會有真相大白的一天)
首先找到的是UWSGI+Nginx,https://blog.csdn.net/u013156691/article/details/83688810,了解了后才知道UWSGI是Linux系統用的,但是也在此感謝博主
我想部署的是Windows,於是接着找啊,准備用apache+一個插件mod_wsgi,感謝以下博主
https://www.cnblogs.com/shenh/p/7552722.html https://blog.csdn.net/bibuying/article/details/78532427
但是又一次碰到了揪心的事啊,真是。。。。。就是坑的很難受,好吧,停止難受,開始敘述我的難受的經歷吧
首相我參考了好多博主寫的博客,可能是由於我的環境配置比較亂,然后都沒成功
首先我步驟直接參考了博客:https://www.cnblogs.com/shenh/p/7552722.html,最后就是不知道哪的原因,反正外網訪問不了,也有可能我一直非正常關閉httpd.exe,還有可能我環境配置比較亂,我可是一直改一直改,甚至httpd.conf中的斜杠\和反斜杠/我都改來改去,都不行啊。。。。。。然后就把我同們叫來了啊,直接用Django自帶的服務器設置的,尼瑪,這都行,反正是能訪問了,只用了一句命令行:python managel.py runserver 0.0.0.0:8009,監聽端口直接在這個地址后面寫了就行,我還在忙着部署到apache上。。。搞了一天多,真是醉了,以為萬事大吉了,就給導師說啊,結束了,都挺高興,結果坑來了,訪問速度超級慢,打開網頁慢的要死要死的
這就很揪心啊,導師來找了,讓看看為啥,不知道是誰說了一句,服務器,我和我同門就吭哧吭哧的搗鼓服務器啊,以為Django自帶的服務器的性能的原因,又重新搗鼓apache
我同門搗鼓了一下午也夠夠的,沒弄明白,但是活還得繼續啊,得上線讓人家看啊,不能這么慢啊,我就開始繼續弄apache,這時候還沒走到正軌上來
我就嚴格按照博主:https://www.cnblogs.com/wcwnina/p/9974642.html 的步驟來做,python3.6.8換成3.6.4,還要配置環境變量,因為筆記本上還裝了Ancona,自帶python3.7,系統又默認使用最新的版本,我就修改系統默認使用python的版本啊,有好多博主說修改python.exe的名稱什么的,太麻煩了我就不想試,結果找到了好的解決方案,即https://www.cnblogs.com/JadenFK3326/p/11426560.html 就是修改系統變量中python的路徑,修改到最上面即可
然后安裝apache,安裝mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl
輸入命令:mod_wsgi-express module-config
得到一下三行代碼,用來代替有的博客所說的mod_wsgi-py36-VC14.so
LoadFile "d:/python36/python36.dll"
LoadModule wsgi_module "d:/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "d:/python36"
然后修改Apache24\conf\httpd.conf
Define SRVROOT "D:/Apache24" # D:/Apache24即apache的安裝路徑
Listen 8009 # 監聽端口,即外網要用的端口
ServerName fdl.cau.edu.cn:8009 #服務器名,也可以是IP地址,即我們TP-LINK賦予8009端口的IP
博主還說要在windows\System32\drivers\etc\hosts設置解析即 TP-LINK賦予8009端口的IP也是本機ip fdl.cau.edu.cn 如:127.0.0.1 fdl.cau.edu.cn
然后就是往httpd.conf中添加內容了,
首先把上面的三行加上
接着
WSGIScriptAlias / "D:/YakMilk/bigdata/wsgi.py" #項目的Web Server Gateway Interface,web服務網關接口路徑
WSGIPythonPath "D:/YakMilk/" #項目根路徑
<Directory "D:/YakMilk/bigdata"> # 項目web服務網關接口路徑,設置其權限
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static "D:/YakMilk/static" # 項目靜態文件路徑及權限配置,有的博客沒加,下面的meta的路徑及配置,此博主加了,我沒加,因為沒用到
<Directory "D:/YakMilk/static">
AllowOverride None
Options None
Require all granted
</Directory>
還有的博主加了其他的配置及權限,請根據自己實際情況添加即可
然后設置項目的初始的項目的settings.py文件中的允許的主機,此博主設置的是*,但是實際中沒有這么干的,設置要用的主機Ip及域名即可
ALLOWED_HOSTS = ['TP-LINK賦予8009端口的IP,即本機ip', 'fdl.cau.edu.cn']
博主說的啟動服務器首先要安裝服務器,在apache24根目錄下打開cmd,運行 httpd -k install -n 即可安裝成功
然后通過net start apache2.4 net stop apache2.4啟動和停止服務器,也可以通過右擊我的電腦->管理->服務與應用程序->服務,選擇apache2.4右鍵啟動,我的出現下面的問題
就是很尬,解決不了,我就一直sc delete apache2.4、httpd -k install -n,就是刪除服務,安裝服務,不行,又重啟了計算機,接着刪除服務、安裝服務,竟然某一次啟動行了
啟動了服務器后還是訪問不了啊,查看錯誤日志,就是缺包
咦,我明明裝了包呀,才發現安裝mod_wsgi-4.5.24+ap24vc14-cp36-cp36m-win_amd64.whl時裝到了python的直接環境下,我pycharm上的環境是繼承的直接環境,然后在項目下虛擬化的一個
所以就缺什么包再裝一遍了,如下,先更新pip,這里沒用python -m pipinstall --upgrade pip,我這出問題了
然后啟動服務器后,博主說可以訪問了,好多博主也這么說,但是我的就是訪問不了,這也到了我前面說的"我不知道理解的對不對”的那了,我用pycharm運行項目,且得編輯配置,或許有可能把django項目打包放到apache服務器某個文件下才行,我沒試
加上host名和端口,然后運行,並且啟動apache2.4服務器才能運行,否則少了哪一個都不行,這和以前用IntelliJ idea 部署海底撈項目一樣,就這樣我認為本項目用來apache服務器,若有錯誤請指出呀,在此感謝各位大神
好了,也使用好了apache服務器,但是網速還是沒起來,就因為某個人提到了服務器,我的想法就限制到了服務器上,偶爾見去按F12,查看瀏覽器加載時間,發現了一個內鬼:
<link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">
這個玩意加載時花費了17s,對,你沒看錯,17秒,其他的都是幾十ms,這好像是一個字體樣式,還是Google的,最近老美又限制我們,不知道Google解除了沒,因為啥,就是沒加載出來,發現也沒用到,就注釋了,然后問題解決,慢也快了。。。。。。。。。。。。
真實,難受了一下午及一晚上,就是憋屈,怎么就限制到了服務器不行上去了,誰提了一句,明明正常思路,顯示F12調試,查看為啥慢,好吧,如果沒有此問題,我還沒有學會部署apache呢,對應apache的部署也會不了了之,這也有好處,俗話說,禍兮福相依。