Python+Apache:WSGIPythonPath相对路径

2024-10-01 13:26:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在windows下安装了一个烧瓶应用程序。在我的httd.conf公司文件,我为我的应用程序包含conf文件,该文件位于如下目录中:

C:\prod\apps\my_app\
                    \my_app
                        my_app.conf
                        my_app.py
                        my_app.wsgi
                    \my_service
                    \my_data
                    \my_python_virtual_env

我可以在Apache中配置它,并在my中使用WSGIPythonPath的绝对路径来运行它_应用程序配置。但是,我无法使用WSGIPythonPath的相对路径使其工作。基于上述结构,我假设应该是这样的:

^{pr2}$

但是,这显然不是apache如何解释根的这些相对路径。我要做的是可能的,如果不可能,还有什么其他的建议可以让它工作吗?对于部署到的各种环境,最好有一个conf文件。在


Tags: apps文件py目录app应用程序wsgi烧瓶
1条回答
网友
1楼 · 发布于 2024-10-01 13:26:57

您需要阅读更多关于WSGI和{a2}如何与Apache一起工作以及最佳实践是什么的。在

首先,您应该在一个独立的virtualenv中构建Flask应用程序。这是任何基于Python的web应用程序的最佳实践,无论是Flask、Django等等。使用pip管理包。用谷歌搜索这两个词,你会得到关于如何做到这一点的多个教程。在

然后,您应该将Flask应用程序配置放在一个名为Apache的虚拟主机上的专用端口上。您需要确保您的WSGIDaemonProcess包含指向Flask站点包的virtualenv特定的python-path变量。在

您还应该创建一个系统烧瓶用户和组,以将烧瓶系统与其他所有系统隔离开来。这样更安全。在

下面列出了一个配置示例。注意,我已经创建了一个特定的flask-main用户和flask-main组,我将所有指向我的Flask应用程序的流量指向端口8789。在

#####
# START: Flask App
WSGISocketPrefix /var/run/wsgi
Listen 8789    
NameVirtualHost *:8789
<VirtualHost *:8789>
    DocumentRoot /path/to/www/
    ErrorLog "/path/to/logs/httpd/flask-8789-error_log"
    LogLevel info 
    ProxyRequests Off
    WSGIDaemonProcess flask-main user=flask-main group=flask-main display-name=%{GROUP} python-path=/path/to/www:/path/to/lib/python2.6/site-packages
    WSGIProcessGroup flask-main
    WSGIScriptAlias / /path/to/www/mygateway.wsgi process-group=flask-main application-group=%{GLOBAL}
    <Directory /path/to/www>
        WSGIProcessGroup run
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>
    <Directory /path/to/www/static>                                                        
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

我希望这能帮助你朝着正确的方向前进。在

相关问题 更多 >