嘗試win10-django-apache-wsgi兩天時間終於建置成功
-
- 我卡在這裡
- settings.py的修改,不知道是否必須
- httpd.conf檔案改動的地方很多,有些也不知道有沒有用
- 啟動一些模組,但我懷疑可能不需要
- 可能要開啟cgi
- 其他
我卡在這裡
其他內容我就先忽略了,都是按照網路各種文章教學來的。這裡直接說關鍵點。我最後就是卡在了wsgi.py檔案的設定上面。其中的路徑不能按其他教學寫的,都沒用,要按這個文章的來!
https://blog.csdn.net/mmmmsunshine/article/details/78781215
我的是這麼寫的:
1 2 3 4 5 6 7 8 | import os import sys from django.core.wsgi import get_wsgi_application root_path= os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) sys.path.insert(0,root_path) os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'learningLog.settings') application = get_wsgi_application() |
settings.py的修改,不知道是否必須
按其他教學,做了如下修改
1 2 3 | DEBUG = False TEMPLATE_DEBUG = False ALLOWED_HOSTS = ["*"] |
httpd.conf檔案改動的地方很多,有些也不知道有沒有用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | listen 8078 WSGIPythonPath D:Apache24htdocslearningLogvenvLibsite-packages <VirtualHost *:8078> ServerName blog_analysic WSGIScriptAlias / D:/Apache24/htdocs/learningLog/learningLog/learningLog/wsgi.py <Directory D:/Apache24/htdocs/learningLog/learningLog/learningLog/> <Files wsgi.py> Require all granted </Files> </Directory> Alias /static D:/Apache24/htdocs/learningLog/learningLog/web/static <Directory D:/Apache24/htdocs/learningLog/learningLog/web/static> Require all granted </Directory> DocumentRoot D:/Apache24/htdocs/learningLog <Directory D:/Apache24/htdocs/learningLog> Options Indexes FollowSymLinks AddHandler wsgi-script .py Options ExecCGI AllowOverride All Require all granted </Directory> </virtualhost> LoadFile "c:/program files/python37/python37.dll" LoadModule wsgi_module modules/mod_wsgi.pyd WSGIPythonHome "c:/program files/python37" |
我在弄的時候發現按其他教學安裝完mod_wsgi後,硬碟里實際並沒有mod_wsgi.pyd檔案。這個太特么坑爹了。然後就從安裝包里解壓了這個檔案出來。
另外還有一點就是我原來想在xampp里的apache里搞,但每次寫下面任何一句時,apache就無法啟動。最後還是只好另外安裝單獨的apache。
1 2 3 | LoadFile "c:/program files/python37/python37.dll" LoadModule wsgi_module modules/mod_wsgi.pyd WSGIPythonHome "c:/program files/python37" |
過程中還根據錯誤提示懷疑是許可權問題就在上面新增了,Options ExecCGI,也不知道是不是必須的。
AddHandler wsgi-script .py這句可能是增加對py檔案的支援,不知道是不是必須的,後面其實也有一句是相同功能。
經過嘗試上面3句都不能改,也不能改到虛擬程式的scripts里,不知道教學里教虛擬venv還有沒有用
啟動一些模組,但我懷疑可能不需要
按這個文章,我開啟了一些模組,但我覺得可能不是必須的,mark一下
https://www.cnblogs.com/onlyou13/p/10472779.html
可能要開啟cgi
按這個文章:
https://blog.csdn.net/believe646875970/article/details/53924854
相應在httpd.conf檔案里新增了對py檔案的支援,不知道是不是必須的
AddHandler cgi-script .cgi .pl .py
其他
我在執行兩個相同app,一個透過apache,一個透過powershell,發現登入一個,另一個就登入不了。
補充:之前建置其實只是半成功,管理介面里一編輯欄位就出錯,提示static沒有註冊,試了很多方法都不成功。只好先把這個問題放一放。建置後執行過一次collectstatic,當時是搜集了1百多檔案。後來在備份的原程式(建置前的)里collectstatic,結果收集有上千的檔案,說明建置後再收集靜態檔案會漏很多。因此我嘗試建置前收集靜態檔案,再建置,這次管理介面里的欄位可以編輯了。算是完全成功了。