首页 > 解决方案 > 更改 apache 当前目录的 python 脚本

问题描述

我已经将 Apache 设置为使用mod_wsgi模块与我的 Django 应用程序一起工作。以下是 的内容/etc/apache2/sites-enabled/yaraweb.conf

<VirtualHost my_server_ip:port>
    DocumentRoot /var/www/YaraWeb

    Alias /static /var/www/YaraWeb/yara/static
    <Directory /var/www/YaraWeb/yara/static>
            Require all granted
    </Directory>

    <Directory /var/www/YaraWeb/YaraWeb>
            <Files wsgi.py>
                    Require all granted
            </Files>
    </Directory>

    WSGIDaemonProcess YaraWeb python-home=/var/www/YaraWeb/venv python-path=/var/www/YaraWeb
    WSGIProcessGroup YaraWeb
    WSGIScriptAlias / /var/www/YaraWeb/YaraWeb/wsgi.py

的结构/var/www/YaraWeb是这样的:

/var/www/YaraWeb
│   manage.py    
│
└───venv
│   │   bin
│   │   include
│   │   lib
│   │   pip-selfcheck.json
|   |   share
│   
└───yara  => django app
|   │   admin.py
|   │   apps.py
│   |   forms.py
│   |   __init__.py
|   │   main.py
|   │   migrations
│   |   models.py
│   |   static
|   │   templates
│   |   urls.py
│   |   views.py
│    
└───YaraWeb
    │   __init__.py
    │   settings.py
    |   urls.py
    |   wsgi.py

一切正常,服务器已启动,但问题是当在我的代码中记录当前工作目录时views.py,它会返回/var/www,但我希望它是/var/www/YaraWeb/。换句话说,我需要这段 python 代码来打印/var/www/YaraWeb/

import os
print(os.getcwd()) # actually prints /var/www/

在服务器代码中,相对路径广泛用于创建目录。通过使用相对路径,开发人员假设所有创建的目录都在项目文件夹中创建/var/www/YaraWeb/,但在当前的 Apache 设置下,所有相对路径都尝试在/var/www/其中创建目录,这可能会导致覆盖其他项目中的现有文件。是否有任何 Apache 设置可以改变这种行为?

标签: djangopython-3.xapachemod-wsgi

解决方案


推荐阅读