2017-01-19 3 views
0

Anaconda pythonを実行すると、CentOS 7に付属するグローバルPythonではなく、Flaskをローカルにインストールしてテストしても問題なく動作します。Apache + Flaskがwsgiファイルを認識しない

[[email protected] FlaskApp]$ python __init__.py 
[[email protected] FlaskApp]$ curl localhost:5000 
Hello, I love Flask! 

私がApacheで実行しようとすると、次のようにエラーが表示されます。私は、問題は、apacheがグローバルPythonを実行しようとしており、FlacをインストールしたAnaconda pythonを実行しようとしていないことだと思います。真の場合、問題を引き起こす可能性があるため、システムがグローバルなPythonに使用するパスを混乱させたくありません。

[[email protected] FlaskApp]$ which python 
~/anaconda2/bin/python 
[[email protected] FlaskApp]$ 

私のアプリケーションは、次のとおりです。:アナコンダパイソンを使用するには、この場合には、システムを伝える方法がわからない

ファイル:hello.py

[[email protected] FlaskApp]$ more hello.py 
import sys 
import logging 
sys.path.insert(0,"/var/www/FlaskApp/") 

from FlaskApp import app as application 
[[email protected] FlaskApp]$ 

ファイル:__init__.py

[[email protected] FlaskApp]$ more __init__.py 
from flask import Flask 
app = Flask(__name__) 
@app.route("/") 
def hello(): 
    return "Hello, I love Flask!" 
if __name__ == "__main__": 
    app.run() 
[[email protected] FlaskApp]$ 

私のディレクトリ構造は次のとおりです。

[[email protected] FlaskApp]$ pwd 
/var/www/FlaskApp 
[[email protected]ode3 FlaskApp]$ ls -la 
total 24 
drwxr-xr-x 3 apache apache 4096 Jan 19 03:21 . 
drwxr-xr-x 6 root root 4096 Jan 19 02:00 .. 
drwxr-xr-x 4 apache apache 4096 Jan 19 02:36 FlaskApp 
-rwxr-xr-x 1 apache apache 164 Jan 19 02:32 hello.conf 
-rwxr-xr-x 1 apache apache 107 Jan 19 03:21 hello.py 
-rwxr-xr-x 1 apache apache 164 Jan 19 02:25 hello.wsgi 
[[email protected] FlaskApp]$ cd FlaskApp/ 
[[email protected] FlaskApp]$ ls -la 
total 24 
drwxr-xr-x 4 apache apache 4096 Jan 19 02:36 . 
drwxr-xr-x 3 apache apache 4096 Jan 19 03:21 .. 
-rw-r--r-- 1 apache apache 150 Jan 19 02:35 __init__.py 
-rw-r--r-- 1 apache apache 449 Jan 19 02:36 __init__.pyc 
drwxr-xr-x 2 apache apache 4096 Jan 19 02:01 static 
drwxr-xr-x 2 apache apache 4096 Jan 19 02:01 templates 
[[email protected] FlaskApp]$ 

私のApacheの.confファイル

<VirtualHost *:80> 
    ServerName www.mywebsite.com 
    ServerAlias mywebsite-ed.com 
    ServerAdmin [email protected] 
    WSGIScriptAlias//var/www/FlaskApp/hello.py 
    <Directory /var/www/FlaskApp/FlaskApp/> 
     Require all granted 
    </Directory> 
    Alias /static /var/www/FlaskApp/FlaskApp/static 
    <Directory /var/www/FlaskApp/FlaskApp/static/> 
     Require all granted 
    </Directory> 
    ErrorLog /var/log/httpd/error_log 
    LogLevel warn 
    CustomLog /var/log/httpd/access.log combined 
</VirtualHost> 

は、私はこのエラーを取得:

[[email protected] FlaskApp]$ sudo tail -f /var/log/httpd/error_log 
[sudo] password for idf: 
[Thu Jan 19 03:23:46.918092 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] mod_wsgi (pid=4305): Target WSGI script '/var/www/FlaskApp/hello.py' cannot be loaded as Python module. 
[Thu Jan 19 03:23:46.918161 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] mod_wsgi (pid=4305): Exception occurred processing WSGI script '/var/www/FlaskApp/hello.py'. 
[Thu Jan 19 03:23:46.918225 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] Traceback (most recent call last): 
[Thu Jan 19 03:23:46.918291 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] File "/var/www/FlaskApp/hello.py", line 5, in <module> 
[Thu Jan 19 03:23:46.918546 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062]  from FlaskApp import app as application 
[Thu Jan 19 03:23:46.918595 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] File "/var/www/FlaskApp/FlaskApp/__init__.py", line 1, in <module> 
[Thu Jan 19 03:23:46.918671 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062]  from flask import Flask 
[Thu Jan 19 03:23:46.918734 2017] [:error] [pid 4305] [client xx.xxx.xx.xxx:54062] ImportError: No module named flask 

答えて

0

をアンインストールし、システムのmod_wsgiパッケージを、その後、アナコンダのPythonに対するソースコードからのmod_wsgiをコンパイルします。あなたがアナコンダPython環境や使用中にそれをpip installせる

:あなたがで示された方法を使用することをお勧め

mod_wsgi-express module-config 

出力に、あなたのApacheの設定に追加する必要がありますラインmod_wsgiモジュールをロードし、Anaconda Pythonディストリビューションが正しく検出されていることを確認してください。

関連する問題