Ausführen von Anaconda Python nicht die globale Python, die mit CentOS 7 kommt, habe ich Flask lokal installiert und getestet und es funktioniert gut.Apache + Flask nicht wsgi-Datei erkennen
[[email protected] FlaskApp]$ python __init__.py
[[email protected] FlaskApp]$ curl localhost:5000
Hello, I love Flask!
Wenn ich versuche es unter Apache zu laufen, wie folgt, erhalte ich den Fehler am Ende. Ich denke, das Problem ist, dass Apache versucht, den globalen Python auszuführen und nicht Anaconda python, wo ich Flask installiert habe. Wenn dies der Fall ist, möchte ich nicht mit dem Pfad umgehen, den das System für das globale Python verwendet, da dies zu Problemen führen kann. Nicht sicher, wie das System in diesem Fall zu sagen, Anaconda Python zu verwenden:
[[email protected] FlaskApp]$ which python
~/anaconda2/bin/python
[[email protected] FlaskApp]$
Meine Anwendung ist wie folgt:
Datei: 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]$
Datei: __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]$
Meine Verzeichnisstruktur ist wie folgt.
[[email protected] FlaskApp]$ pwd
/var/www/FlaskApp
[[email protected] 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]$
Meine Apache Conf-Datei
<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>
ich diesen Fehler:
[[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