2017-03-02 122 views
0

美好的一天。 我目前正在嘗試使用XAMPP Apache在本地託管我的Django網站。我遵循了幾個教程,但其中的一個。我想知道你能否告訴我我錯過了什麼或者錯了什麼。這裏是我的Django的開發站點的安裝包的規格:XAMPP Apache安裝後無法正常工作mod_wsgi

  • 的Python = 2.7.12,32位
  • 阿帕奇= 2.4,32位
  • Visual C++版本9
  • OS :Windows 7的64位

這裏是我遵循的程序:

  1. https://code.google.com/archive/p/modwsgi/downloads下載mod_wsgi。我試過[mod_wsgi-py26-vc9.so,mod_wsgi-py27-vc9.so,mod_wsgi-win32-ap22py27-3.3.so和mod] **,但似乎沒有任何效果。

  2. 重命名文件的mod_wsgi到mod_wsgi.so並將其保存到C:通過添加

    LoadModule wsgi_module modules/mod_wsgi.so 
    
/XAMPP /阿帕奇/模塊

  • 運行XAMPP和編輯apache的httpd.conf文件

    我也試過

    LoadModule mod_wsgi modules/mod_wsgi.so 
    

    但是仍然有同樣的結果。即使在重新啓動XAMPP和機器本身後,XAMPP也不會顯示任何錯誤,但不會運行Apache。我也嘗試以管理員權限運行應用程序,但它仍然無法運行。除Apache外,其他XAMPP模塊正在工作。

  • +0

    不要從網站上使用任何東西,它是爲你添加的mod_wsgi在你的Python安裝的應用程序舊的東西,但不能刪除,因爲谷歌不允許它。請閱讀http://stackoverflow.com/a/42307082/128141中的說明並自行構建。您可能需要將''MOD_WSGI_APACHE_ROOTDIR''設置爲''C:/ xampp/apache''。你仍然可以使用Python 2.7。至少我會推薦Python 3.5。 –

    +0

    嗨,先生!你已經遵循了你建議要做的步驟並安裝了mod_wsgi。該mod_wsgi的-Express模塊​​,配置生成的LoadModule路徑{C:/ python27/lib目錄/站點包/ mod_wsgi的/服務器/ mod_wsgiNone}在Apache和我在httpd.conf中添加,重新開始我的Apache,但它仍然不是加工。 – jonilyn2730

    +0

    如果這一行字面意思就是這樣,那麼它與你正在使用的那個舊版本的Python版本無法正常工作。目錄''c:/ python27/lib/site-packages/mod_wsgi/server/mod_wsgi''中文件的名稱是什麼?應該有一個以''mod_wsgi''開始並以'.pyd''結尾的文件。這是該文件的路徑,它應該是「LoadModule」的參數。我不確定爲什麼它會輸出一箇舊的Python版本的字典表示。它應該只是文件路徑的單個參數,無大括號等。 –

    回答

    0

    我已經通過下載二進制文件the author's GitHub account並構建了我自己的二進制文件來解決了這個問題。爲此,我需要提取下載的zip文件並打開win32文件夾並閱讀README.rst以獲取說明。從指令

    摘錄:

    1. 知道了窗戶和Python版本使用的是(在我的情況的Windows 7 32位和Python 2.7)
    2. 安裝Microsoft C/C++適合你的Python編譯器版本:
      • 的Python 2.6 - VC9
      • Python 2.7版 - VC9
      • 的Python 3.3 - VC10
      • 的Python 3.4 - VC10
    3. 啓動Visual C++命令提示符:

      • 導航回提取mod_wsgi的文件,並找到適合您的在我的案件的Apache和Python(ap22py27-win32-VC9.mk的組合適當的makefile )。如果您不確定您的Apache版本是否讀取了XAMPP或只是導航到本地主機的WAMP。
      • 編輯.mk文件,並定義APACHE_ROOTDIR和PYTHON_ROOTDIR正確的路徑。例如:

        APACHE_ROOTDIR = C:\xampp\apache

        PYTHON_ROOTDIR = C:\Python27

      • nmake -f apXYpyXY-winNN-VC?.mk install運行。在每個 的情況下,用「XY」代替正在使用的Apache和Python版本。用'32'或'64'替代'NN' 並替換'?' '9'或'10'。例如:nmake -f ap22py27-win32-VC9.mk install。該行構建的mod_wsgi的針對您的平臺,並將其安裝到modules目錄Apache安裝的

      • 添加下面一行在你的WAMP/XAMPP的http.conf:LoadModule wsgi_module modules/mod_wsgi.so

        WSGIPythonHome "C:/Python27"

        WSGIPythonPath "ProjectPath"

        WSGIApplicationGroup "%{GLOBAL}"

        WSGIPassAuthorization "On"

      • 重新啓動Apache或您的計算機,你是好去。

    注:沒有必要,因爲它已經安裝在你的Apache服務器

    +0

    win32目錄中的內容已過時,請不要使用它。 ''pip install''方法是實現它的更好的方法,並且現在只能在Windows上以任何方式支持。問題在於,對於某些人來說,mod_wsgi-express module-config的輸出是錯誤的。找出「pyd''文件的正確路徑並使用它。可能只是將''None''換成''.pyd''。本來希望你堅持把它排序,使用mod_wsgi郵件列表進行討論。 StackOverflow是最需要幫助的地方,需要進行討論。 –

    +0

    猜測原因仍然存在問題是Python DLL需要強制加載。更近期的''mod_wsgi-express module-config''將產生一個''LoadFile''指令來做到這一點。 –

    +0

    謝謝,先生。我已經在3個月前使用這種方法安裝了mod_wsgi,而且它現在仍然可以正常工作。 3個月前(在Lib/site-packages中生成一個空目錄)執行pip安裝結果到一個空文件也許是因爲我使用的是Python的舊版本(v2.4)。我只是發佈這個,以防這種方法與其他人一起工作。 – jonilyn2730

    相關問題