无法使用Apache配置Python Flask应用程序
我正试图通过ApacheModWSGi运行一个基于flask的RESTAPI 我正在虚拟环境中开发这个项目。因此,项目结构如下所示:无法使用Apache配置Python Flask应用程序,python,apache,flask,apache2,mod-wsgi,Python,Apache,Flask,Apache2,Mod Wsgi,我正试图通过ApacheModWSGi运行一个基于flask的RESTAPI 我正在虚拟环境中开发这个项目。因此,项目结构如下所示: home user python_projects project_name venv project_folders api_folder other_source_code_folders api文件
home
user
python_projects
project_name
venv
project_folders
api_folder
other_source_code_folders
api文件夹实际上承载一个flask应用程序。此文件夹看起来像:
api_folder
flask_app.wsgi
__init__.py
my_flask.py
<VirtualHost *>
ServerName my-project.dev
WSGIScriptAlias / /home/user/python_projects/project_name/venv/project_folders/api_folder/flask_app.wsgi
<Directory /home/user/python_projects/project_name/venv/project_folders/api_folder/>
Order deny,allow
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
flask\u app.wsgi
源代码是:
activate_this = '/home/user/python_projects/project_name/venv/bin'
execfile(activate_this, dict(__file__=activate_this))
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/home/user/python_projects/project_name/venv/project_folders/api_folder/")
from api_folder import app as application
我已创建以下文件:
/etc/apache2/sites-available/MyApp.conf
MyApp.conf看起来像:
api_folder
flask_app.wsgi
__init__.py
my_flask.py
<VirtualHost *>
ServerName my-project.dev
WSGIScriptAlias / /home/user/python_projects/project_name/venv/project_folders/api_folder/flask_app.wsgi
<Directory /home/user/python_projects/project_name/venv/project_folders/api_folder/>
Order deny,allow
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我还运行了以下命令:
sudo a2ensite MyApp
sudo service apache2 reload
sudo service apache2 restart
完成所有这些步骤后,当我打开my-project.dev时,apache主页只会打开。我认为我的烧瓶应用程序运行不正常
apache错误日志也没有显示任何错误:
[Sat Nov 05 17:05:39.380213 2016] [core:notice] [pid 14656] AH00094: Command line: '/usr/sbin/apache2'
[Sat Nov 05 17:11:55.648767 2016] [mpm_prefork:notice] [pid 14656] AH00169: caught SIGTERM, shutting down
[Sat Nov 05 17:11:56.761456 2016] [wsgi:warn] [pid 25785] mod_wsgi: Compiled for Python/2.7.11.
[Sat Nov 05 17:11:56.761553 2016] [wsgi:warn] [pid 25785] mod_wsgi: Runtime using Python/2.7.12.
[Sat Nov 05 17:11:56.764083 2016] [mpm_prefork:notice] [pid 25785] AH00163: Apache/2.4.18 (Ubuntu) mod_wsgi/4.3.0 Python/2.7.12 configured -- resuming normal operations
[Sat Nov 05 17:11:56.764153 2016] [core:notice] [pid 25785] AH00094: Command line: '/usr/sbin/apache2'
[Sat Nov 05 17:15:25.337951 2016] [mpm_prefork:notice] [pid 25785] AH00171: Graceful restart requested, doing restart
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
[Sat Nov 05 17:15:25.389644 2016] [wsgi:warn] [pid 25785] mod_wsgi: Compiled for Python/2.7.11.
[Sat Nov 05 17:15:25.389737 2016] [wsgi:warn] [pid 25785] mod_wsgi: Runtime using Python/2.7.12.
[Sat Nov 05 17:15:25.389860 2016] [mpm_prefork:notice] [pid 25785] AH00163: Apache/2.4.18 (Ubuntu) mod_wsgi/4.3.0 Python/2.7.12 configured -- resuming normal operations
请告诉我哪里出了问题。您是否已验证
MyApp.conf
现在作为符号链接显示在站点启用
目录中,指向可用站点中的同一文件?您是否有其他使用相同值的ServerName
的VirtualHost
条目?您是否尝试过在VirtualHost
中使用首选的*:80
,而不仅仅是*
。是的,我已经尝试了所有方法。MyApp.conf位于sites enabled目录中,符号链接到sites available目录中的相同位置。我没有更多的VirtualHost了。在站点文件中添加一个语法错误,单独使用xxx
行,然后重新启动Apache。Apache启动失败了吗?这将确认您的站点文件实际上正在被读取。嗨,我也在同一条船上。您找到解决方案了吗?您是否验证了MyApp.conf
现在作为符号链接显示在sites enabled
目录中,指向sites available
中的同一文件?您是否有其他使用相同值的ServerName
的VirtualHost
条目?您是否尝试过在VirtualHost
中使用首选的*:80
,而不仅仅是*
。是的,我已经尝试了所有方法。MyApp.conf位于sites enabled目录中,符号链接到sites available目录中的相同位置。我没有更多的VirtualHost了。在站点文件中添加一个语法错误,单独使用xxx
行,然后重新启动Apache。Apache启动失败了吗?这将确认您的站点文件实际上正在被读取。嗨,我也在同一条船上。你找到解决办法了吗?