上传文件显示权限被拒绝(CentOS7 + Apache + mod_wsgi + django)
Uploading files show permission denied (CentOS7 + Apache + mod_wsgi + django)
我将我的 Django 应用程序的测试版部署到 DigitalOcean,我正在使用 Apache 和 WSGI 为它提供服务。
一切正常,包括静态文件和 'get' 媒体文件(我将其直接保存到数据库),但上传文件除外。
它显示 'Permission denied' 错误,完整目录如 '/home/test/project/media/test.jpeg'.
我这样配置了 httpd-vhosts。
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
WSGIScriptAlias / /home/test/project/project/wsgi.py
WSGIDaemonProcess example.com python-home=/home/test/project/.venv python-path=/home/test/project/project
WSGIProcessGroup example.com
Alias /static/ /home/test/project/frontend/build/static/ # react build dir
<Directory /home/test/project/frontend/build/static>
Require all granted
</Directory>
Alias /uploadImg/ /home/test/project/media/
<Directory /home/test/project/media>
Require all granted
</Directory>
<Directory /home/test/project/project>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
所以 httpd 是 运行 守护进程,我的目录 'media' 属于 root,755。
但是目录 'media' 是符号 link 目录,位于 '/home/test/'
我做了很多尝试来修复它,但没有任何效果..
感谢大家的回复
我自己解决了。
我的问题是关于 'who runs the apache process' 和 'who owned the dir'。
它应该是具有写入权限的同一用户或组。
希望对此有疑问的人有所帮助。
我将我的 Django 应用程序的测试版部署到 DigitalOcean,我正在使用 Apache 和 WSGI 为它提供服务。
一切正常,包括静态文件和 'get' 媒体文件(我将其直接保存到数据库),但上传文件除外。 它显示 'Permission denied' 错误,完整目录如 '/home/test/project/media/test.jpeg'.
我这样配置了 httpd-vhosts。
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
WSGIScriptAlias / /home/test/project/project/wsgi.py
WSGIDaemonProcess example.com python-home=/home/test/project/.venv python-path=/home/test/project/project
WSGIProcessGroup example.com
Alias /static/ /home/test/project/frontend/build/static/ # react build dir
<Directory /home/test/project/frontend/build/static>
Require all granted
</Directory>
Alias /uploadImg/ /home/test/project/media/
<Directory /home/test/project/media>
Require all granted
</Directory>
<Directory /home/test/project/project>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
所以 httpd 是 运行 守护进程,我的目录 'media' 属于 root,755。 但是目录 'media' 是符号 link 目录,位于 '/home/test/'
我做了很多尝试来修复它,但没有任何效果.. 感谢大家的回复
我自己解决了。 我的问题是关于 'who runs the apache process' 和 'who owned the dir'。 它应该是具有写入权限的同一用户或组。 希望对此有疑问的人有所帮助。