Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Apache配置Python Flask应用程序_Python_Apache_Flask_Apache2_Mod Wsgi - Fatal编程技术网

无法使用Apache配置Python Flask应用程序

无法使用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文件

我正试图通过ApacheModWSGi运行一个基于flask的RESTAPI

我正在虚拟环境中开发这个项目。因此,项目结构如下所示:

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启动失败了吗?这将确认您的站点文件实际上正在被读取。嗨,我也在同一条船上。你找到解决办法了吗?