我已经使用mod_wsgi
模块将Apache设置为可与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
,但我希望它是{{1} }。换句话说,我需要以下python代码片段来打印/var/www/YaraWeb/
:
/var/www/YaraWeb/
在服务器代码中,用于创建目录的相对路径被大量使用。通过使用相对路径,开发人员已假定所有创建的目录都在项目文件夹中创建,即import os
print(os.getcwd()) # actually prints /var/www/
,但是使用当前的Apache设置,所有相对路径都尝试在/var/www/YaraWeb/
内创建目录,这可能会导致覆盖现有目录其他项目中的文件。是否有任何Apache设置可以更改此行为?