windows10+apache2.4+python3.6部署Django2.2.4項目


剛從家回來,老師讓寫專利,就開始准備寫,初稿交給老師后,把我說了一頓,我就想着回去改呀,然后。。。老師找到了我,說是食品院那急需一個展示數據的平台,然我盡快干出來,我也是菜鳥啊,就沒單獨干過呀,即使是一個展示數據,上一次的海底撈的還是師兄搭好框架,我們在上面改的,也遇到了不少坑,詳見我的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的部署也會不了了之,這也有好處,俗話說,禍兮福相依。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM