Wpis z mikrobloga

#linux #apache #flask
Mam pewien problem związany z moją prostą aplikacją. Od razu mówię, że to kompletnie nie mój stack. Załóżmy, że mam aplikację Flask w /var/www/my-app/. Jest ona prosta a jej zadaniem jest zedytowanie pliku json, który znajduje się w w/w ścieżce, np. na POST request pod dany endpoint (załóżmy, niech będzie to /request). Problem jest taki, że na deploy serwerze, gdy uruchomie apache serwer to nie jestem w stanie tego za żadne skarby zrobić. Zmieniałem uprawnienia pliku, uprawnienia dla usera www-data, nic nie pomaga (). Dodam tylko, że jeżeli na maszynie odpalę apkę w debug mode na porcie 5000 to wszystko działa. Niestety uruchamiając ją poprzez wsgi, konfigurując plik .conf dostaję zwrotkę w logach: Permission Denied. Iso halp
  • 9
@borsuk123: Sprawdź dodatkowo logi Apache, w /var/log.

Ale na ten moment (zakładając, że aplikacja sięuruchamia):

podejrzewałbym jeden z powszechniejszych błędów, tj. uprawnienia katalogu cache. Taki folder, zwykle znajduje się w głównym katalogu projektu, tj. u Ciebie /var/www/((my-app))/cache.

Folder może istnieć, ale mieć błędne uprawnienia do zapisu. Może też nie istnieć i wtedy musisz go utworzyć i nadać właściwe uprawnienia, bo być może sam Flask próbuje takowy katalog utworzyć, ale uprawnienia /var/www/my-app
  • 0
@psiversum: folder na uploady ma aktualnie uprawnienia 777 ( ͡° ͜ʖ ͡°), a i tak nic to nie daje. Wszystkie foldery prowadzące do /var/www/my-app/upload mają odchaczone wchodzenie dla kazdego (owner/group/others).
@borsuk123: Może aplikacja ma własnego użytkownika? Czy coś. Chociaż jak dałeś 777 ...
Niestety za mało znam Pythona i Flaska, by pomóc :P Permission denied zwykle odnosi się do dostępu do plików.

Pytanie też czy użytkownik twój ma dostęp do tego katalogu, bo może nie ma XD Można tak ustawić
@borsuk123: No ok, flaska można użyć z domyślnym użytkownikiem. Nie wiem jak to wygląda z apachem i flaskiem zintegrowanym. Możesz się ogólnie upewnić, ale też dałeś 777, więc xd

Możesz sprawdzić jakim userem jesteś w kodzie Pythona (uruchomionym na flasku z apachem) i ci wypluje. Pewnie www-data, ale może nie xD
  • 0
@fervi: Rozwiązanie problemu, a nóż komuś się przyda. Jeżeli jesteście uposiami tak jak ja i stawiacie to na CentOS'ie, to jest SELinux, czy jakoś tak. Trzeba mu podać komendkę: chcon -R -t httpdsysrwcontentt /var/www/my-app.