#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
@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
@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
@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.
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
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
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ć
użytkownikiem jest apache czyli www-data user
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
Sprawdzałem już to i jest to apache ::(