簡體   English   中英

mod_wsgi目標WSGI腳本無法作為Python模塊加載

[英]mod_wsgi Target WSGI script cannot be loaded as Python module

遵循燒瓶的文檔

http://flask.pocoo.org/docs/0.12/deploying/mod_wsgi/

Apache / 2.4.10燒瓶0.12.2

目錄結構:

├── movie_douban.py
├── movie_douban.wsgi
└── app
    ├── web
    ├── models
    ├── templates
    └── static

movie_douban.wsgi:

activate_this='/root/.local/share/virtualenvs/movie_douban-og6kh8C1/bin/activate_this.py'
with open(activate_this) as file_:
    exec(file_.read(), dict(__file__=activate_this))

import sys
sys.path.insert(0, '/root/.local/share/virtualenvs/movie_douban-og6kh8C1/lib/python3.4/site-packages/')

from movie_douban import app as application

阿帕奇:

<VirtualHost *:80>
    ServerName gdd.python.com

    WSGIDaemonProcess movie_douban user=www-data group=www-data threads=5 
    WSGIScriptAlias / /var/www/movie_douban/movie_douban.wsgi

    ErrorLog "/private/var/log/apache2/python-error_log"
    <Directory /var/www/movie_douban>
        WSGIProcessGroup movie_douban
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
    </Directory>
</VirtualHost>

Apache錯誤:

[Sun Apr 29 10:59:56.835279 2018] [wsgi:error] [pid 16942] [remote 172.17.0.1:50790] mod_wsgi (pid=16942): Target WSGI script '/var/www/movie_douban/movie_douban.wsgi' cannot be loaded as Python module.
[Sun Apr 29 10:59:56.835321 2018] [wsgi:error] [pid 16942] [remote 172.17.0.1:50790] mod_wsgi (pid=16942): Exception occurred processing WSGI script '/var/www/movie_douban/movie_douban.wsgi'.
[Sun Apr 29 10:59:56.835470 2018] [wsgi:error] [pid 16942] [remote 172.17.0.1:50790] Traceback (most recent call last):
[Sun Apr 29 10:59:56.835603 2018] [wsgi:error] [pid 16942] [remote 172.17.0.1:50790]   File "/var/www/movie_douban/movie_douban.wsgi", line 2, in <module>
[Sun Apr 29 10:59:56.837206 2018] [wsgi:error] [pid 16942] [remote 172.17.0.1:50790]     with open(activate_this) as file_:
[Sun Apr 29 10:59:56.837265 2018] [wsgi:error] [pid 16942] [remote 172.17.0.1:50790] IOError: [Errno 13] Permission denied: '/root/.local/share/virtualenvs/movie_douban-og6kh8C1/bin/activate_this.py'

root@345ad0ab8386:/var/www/movie_douban# ls -l /root/.local/share/virtualenvs/movie_douban-og6kh8C1/bin/activate_this.py
-rwxrwxrwx 1 root root 1137 Apr 28 03:31 /root/.local/share/virtualenvs/movie_douban-og6kh8C1/bin/activate_this.py

我該怎么辦?

權限被拒絕錯誤通常是由要加載的文件或導致該文件的子目錄之一的所有者,組或文件模式設置不正確引起的。 另一個可能的原因是SELinux,但前提是已啟用它並且處於強制模式。

Permission denied: '/root/.local/share/virtualenvs/movie_douban-og6kh8C1/bin/activate_this.py'

在這種情況下,幾乎可以肯定,Apache進程無法訪問/root目錄(即admin的主目錄),因為它在apache或httpd用戶的UID下運行。

您應該將virtualenv文件移動到更合適的位置。

暫無
暫無

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

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