closed
: Mezzanine--使用Apache的StaticFile設定Labels: Mezzanine
以下開始設定
---
1. www-data
一開始發現圖片有問題是在upload圖片時會有500 error.
進去apache error.log察看發現是 : [errno 13]-permission denied /static/....
這是因為apache使用的account是www-data, 且他沒有權限寫入, 我們可以使用以下語法加入權限:
```
sudo groupadd varwwwusers
sudo adduser www-data varwwwusers
sudo chgrp -R varwwwusers /var/www/
sudo chmod -R 775 /var/www/ ```
以上更詳細作用, 參考另一篇Blog
因為書上建議, 將static文件都放在/var/www/staticfiles, 使用python manage.py collectstatic, 將所有static都放在/var/www/staticfiles
因此他在apache中加入了以下設定:
```
#Alias /static/ /var/www/staticfiles/
#<Directory /var/www/staticfiles>
# Require all granted
#</Directory>
```
而這句話的意思, 就是要apache讀取/static 路徑時, 都"只"去staticfiles讀取.
但這對Mezzanine是錯誤的, 因為Mezzanine上傳的media是放在/static/media/uploads
而且建立縮圖的時候會放在/static/media/uploads.thumbnail/
所以我們應該加入以下設定才對:
```
Alias /static/ /var/www/InvestBlog/static/
<Directory /var/www/InvestBlog/static>
Require all granted
</Directory>
```
坑了好久阿...
使用的static與media在setting.py是這樣的:
```
STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(PROJECT_ROOT, STATIC_URL.strip("/"))
MEDIA_URL = STATIC_URL + "media/"
MEDIA_ROOT = os.path.join(PROJECT_ROOT, *MEDIA_URL.strip("/").split("/"))
```
Reference:
https://stackoverflow.com/questions/24508494/oserror-at-admin-pages-richtextpage-3-errno-13-permission-denied-static https://www.semicolonworld.com/question/55551/django-errno-13-permission-denied-39-var-www-media-animals-user-uploads-39 https://www.itread01.com/content/1523008588.html https://ithelp.ithome.com.tw/articles/10228309 http://hk.uwenku.com/question/p-qomeezix-ce.html https://groups.google.com/g/mezzanine-users/c/2_hf9eIc4eM https://stackoverflow.com/questions/62025873/django-file-browser-can-upload-file-but-cant-open-file-with-404-error
Share on Twitter Share on FacebookSQL Server Analytics Service 1
SEO(1) Github(2) Title Tag(2) ML(1) 李宏毅(1) SQL Server(18) Tempdb(1) SSMS(1) Windows(1) 自我成長(2) Excel(1) python Flask(1) python(5) Flask(2)
Max Chen (159)