簡體   English   中英

WSGIDaemon進程語法錯誤-Mod_wsgi django ImportError:沒有名為django.core.wsgi的模塊

[英]WSGIDaemon Process syntax error - Mod_wsgi django ImportError: No module named django.core.wsgi

我剛剛建立了一個測試平台,用於將我們的網站從托管共享托管遷移到Digital Ocean。 我建立了服務,因為我想了解發生了什么。 當前,django系統可以運行,我可以運行映射到0.0.0.0:8000的devserver並提供內容,但是顯然這不會削減它的生產量,我想使apache起作用。 目前,可以想象地在一個名為“ env”的虛擬環境中工作。

我遵循了Digital Ocean的快速入門指南 ,但是懷疑我對需要了解的知識不了解。 Apache在那里並且已經安裝並且可以正常運行(至少在最初運行時)-當我訪問Droplet的根IP時,我得到了“有效!” 信息。 因此,這兩個位都起作用,但是當我修改nano /etc/apache2/sites-enabled/000-default並重新啟動時,我得到以下消息:

Syntax error on line 2 of /etc/apache2/sites-enabled/000-default:
Invalid command 'WSGIDaemonProcess', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
 failed!

因此,它在以下配置的第一行失敗(兩個路徑均正確):

WSGIDaemonProcess processname python-path=/var/www/path/tosite:/var/www/env/lib/python2.7/site-packages
WSGIProcessGroup processname
WSGIScriptAlias / /var/www/path/to/project/wsgi.py

我最初得到的Traceback是這樣的:

[Tue Dec 02 13:47:48 2014] [notice] Apache/2.2.22 (Debian) mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
[Tue Dec 02 13:47:50 2014] [error] [clientIP] mod_wsgi (pid=18936): Target WSGI script '/var/www/project/projectv2/projectv2/wsgi.py' cannot be loaded as Python module.
[Tue Dec 02 13:47:50 2014] [error] [clientIP] mod_wsgi (pid=18936): Exception occurred processing WSGI script '/var/www/project/projectv2/projectv2/wsgi.py'.
[Tue Dec 02 13:47:50 2014] [error] [clientIP] Traceback (most recent call last):
[Tue Dec 02 13:47:50 2014] [error] [clientIP]   File "/var/www/project/projectv2/projectv2/wsgi.py", line 15, in <module>
[Tue Dec 02 13:47:50 2014] [error] [clientIP]     from django.core.wsgi import get_wsgi_application
[Tue Dec 02 13:47:50 2014] [error] [clientIP] ImportError: No module named django.core.wsgi
[Tue Dec 02 13:47:51 2014] [error] [clientIP] mod_wsgi (pid=18936): Target WSGI script '/var/www/project/projectv2/projectv2/wsgi.py' cannot be loaded as Python module.
[Tue Dec 02 13:47:51 2014] [error] [clientIP] mod_wsgi (pid=18936): Exception occurred processing WSGI script '/var/www/project/projectv2/projectv2/wsgi.py'.
[Tue Dec 02 13:47:51 2014] [error] [clientIP] Traceback (most recent call last):
[Tue Dec 02 13:47:51 2014] [error] [clientIP]   File "/var/www/project/projectv2/projectv2/wsgi.py", line 15, in <module>
[Tue Dec 02 13:47:51 2014] [error] [clientIP]     from django.core.wsgi import get_wsgi_application
[Tue Dec 02 13:47:51 2014] [error] [clientIP] ImportError: No module named django.core.wsgi
[Tue Dec 02 13:47:51 2014] [error] [clientIP] mod_wsgi (pid=18936): Target WSGI script '/var/www/project/projectv2/projectv2/wsgi.py' cannot be loaded as Python module.
[Tue Dec 02 13:47:51 2014] [error] [clientIP] mod_wsgi (pid=18936): Exception occurred processing WSGI script '/var/www/project/projectv2/projectv2/wsgi.py'.
[Tue Dec 02 13:47:51 2014] [error] [clientIP] Traceback (most recent call last):
[Tue Dec 02 13:47:51 2014] [error] [clientIP]   File "/var/www/project/projectv2/projectv2/wsgi.py", line 15, in <module>
[Tue Dec 02 13:47:51 2014] [error] [clientIP]     from django.core.wsgi import get_wsgi_application
[Tue Dec 02 13:47:51 2014] [error] [clientIP] ImportError: No module named django.core.wsgi

嘗試了這個非常有幫助的答案 ,但似乎沒有什么區別; 一個關鍵的事情是我現在無法像通常那樣重置 apache服務器,因為它不會啟動-因此我不確定我的更改是否生效。

我還刪除並重新安裝了mod_wsgi以查看是否是問題所在,使用apt-get install libapache2-mod-wsgi重新apt-get install libapache2-mod-wsgi ,並嘗試使用chmod 755 wsgi.py文件。

順便說一句-我以前使用過的所有Apache版本都有一個httpd.conf文件,但是似乎沒有一個-運行ps -ef | grep apache僅顯示錯誤日志和上面提到的000-default。

完整的default-000為:

<VirtualHost *:80>
        WSGIDaemonProcess project python-path=/var/www/project/projectv2:/var/www/env/lib/python2.7/site$
        WSGIProcessGroup project
        WSGIScriptAlias / /var/www/project/projectv2/projectv2/wsgi.py
        ServerAdmin system@project.com

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

同樣,我沒有使用mod_python(根據Graeme對主要問題的評論我可以在shell中手動導入django.core.wsgi

如評論中所述,您需要在重新安裝mod-wsgi后通過執行sudo a2enmod wsgi來啟用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM