Mezzanine--使用Apache的StaticFile設定

Posted by: Max Chen | in Mezzanine | 1 year, 11 months ago |

#9 Issue closed: Mezzanine--使用Apache的StaticFile設定

Labels: Mezzanine

MaxwellBest opened issue at 2021-06-19 13:41:

apache要能夠正確的讀取static文件必須設定兩個東西

  1. apache web server 在 linux上的權限 - www-data
  2. apache config 讀取static的路徑

以下開始設定

---
1. www-data
一開始發現圖片有問題是在upload圖片時會有500 error.

進去apache error.log察看發現是 : [errno 13]-permission denied /static/....

這是因為apache使用的account是www-data, 且他沒有權限寫入, 我們可以使用以下語法加入權限:
```

添加群組 varwwwusers

sudo groupadd varwwwusers

將www-data使用者添加至群主varwwwusers

sudo adduser www-data varwwwusers

更改文件屬於哪個群組 ; -R 代表裡面的每一個文件

sudo chgrp -R varwwwusers /var/www/

更改文件的九個屬性

sudo chmod -R 775 /var/www/ ```

以上更詳細作用, 參考另一篇Blog

  1. 000-default.conf 我這裡被書上坑了一下,導致我卡非常久...

因為書上建議, 將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

Currently unrated
 or 

Subscribe

* indicates required

Recent Posts

Archive

2023
2022
2021

Categories

Apache 1

Data Science 2

Dbfit 1

Design Pattern 1

Devops 4

DigitalOcean 1

Django 1

English 3

Excel 5

FUN 4

Flask 3

Git 1

HackMD 1

Heroku 1

Html/Css 1

Linux 4

MDX 1

Machine Learning 2

Manufacture 1

Master Data Service 1

Mezzanine 18

Oracle 1

Postgresql 7

PowerBI 4

Powershell 4

Python 22

SEO 2

SQL Server 53

SQL Server Analytics Service 1

SQLite 1

Windows 1

database 8

work-experience 1

其他 1

投資入門 1

投資心得 2

時間管理 1

總體經濟 2

自我成長 3

資料工程 1

Tags

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)

Authors

Max Chen (159)

Feeds

RSS / Atom

Mezzanine--使用Apache的StaticFile設定

© COPYRIGHT 2011-2022. Max的文藝復興. ALL RIGHT RESERVED.