2013-06-11 36 views
-1

我想在Linux上運行apache2和mod_wsgi的pyhton django項目。試圖運行python django網站,但Mod_wsgi不工作

它似乎並沒有運行任何的Python代碼。當我在瀏覽器中輸入網站的URL(我的服務器上的mysite.com)時,頁面會加載它應有的模板文件,但是,任何python都顯示爲普通文本,而靜態文件也不會加載。

若要檢查是否啓用了mod_wsgi,我在終端中鍵入了a2enmod,並且它表示Module wsgi已啓用。而且,這是一個在開發服務器上運行良好的現有項目。

我正在關注https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/ 的教程,因此我在啓動項目時將以下代碼添加到了httpd.conf文件中。

<IfModule wsgi_module> 
WSGIScriptAlias//var/www/mysite/mysite/wsgi.py 
WSGIPythonPath /var/www/mysite 

Alias /static/ /var/www/mysite/signup/static/signup 

<Directory /var/www/mysite/mysite> 
<Files wsgi.py> 
Order deny,allow 
Allow from all 
</Files> 
</Directory> 

<Directory /var/www/mysite/mysite/template> 
DirectoryIndex integrate.html 
Options Indexes FollowSymLinks 

</Directory> 


WSGIDaemonProcess mysite.com python-path=/var/www/mysite:/usr/local/lib/python2.7/dist-packages 
WSGIProcessGroup mysite.com 
</IfModule> 
+0

你的httpd.conf文件包含什麼內容?你在使用virtualenv嗎? – Siecje

+0

你是否編輯過httpd中的python.conf來爲你的項目創建一個別名? – abhishekgarg

+0

你至少必須展示你的apache配置。 –

回答

0

如果您正在使用WSGIDaemonProcess和WSGIProcessGroup(我總是把第一)刪除 WSGIPythonPath /var/www/mysite

我也沒有<IfModule wsgi_module>DirectoryIndex(這應該由你的URLconf覆蓋)

是你使用模板?不知道爲什麼你會看到生蟒蛇。

+0

當我打開它時,我的模板中的{%csrf_token%}就會顯示出來。不知道爲什麼 – user2433092

1

一兩件事,這是錯誤的是:

Alias /static/ /var/www/mysite/signup/static/signup 

應該是:

Alias /static /var/www/mysite/signup/static/signup 

或:

Alias /static/ /var/www/mysite/signup/static/signup/ 

對於子URL,利用斜線的必須均衡。也就是說,既出現在兩者上,也不出現在兩者上。

您還缺少目錄「/ var/www/mysite/signup/static」的目錄塊,告訴Apache它可以訪問該目錄中的文件。

我不明白的是爲什麼你會把它映射到'註冊'子目錄。爲什麼它不能映射到「靜態」目錄?你可能還有些不知名的東西。

最後,如果您看到Python源代碼,那麼聽起來有點像您將Django站點放在DocumentRoot下,這是完全錯誤的,然後上述內容未被使用。但是,這個問題並不完全清楚,因爲你沒有很好地解釋它。你沒有真正遵循Django文檔沒有幫助。我建議你再去閱讀文檔。

相關問題