Czasami, gdy próbujesz przesłać moduł, rozszerzenie czy też dodatek na zapleczu swojej witryny Joomla, pojawia się taki komunikat  "JFolder :: create: Nie można utworzyć katalogu" lub "Ostrzeżenie! Nie można przenieść pliku." Często dzieje się tak z powodu, że Twoja strona Joomla nie ma odpowiednich uprawnień do zapisu. Co to są uprawnienia i jak rozwiązać ten problem? Dowiesz się czytając dalej, a więc zapraszam.

LINUX

Na początek należy wyjaśnić, że bardzo duży odsetek serwerów opiera się o systemy unixowe. Bez względu, jaki system operacyjny się znajduję Joomla musi mieć zapewnione pewne prawa zapisu i odczytu na serwerze, aby mogła działać poprawie.

W systemie operacyjnym Linux każdy plik i katalog posiada zestaw praw określający, kto ma dostęp do pliku i jakie ma prawa. Każdy plik lub folder może mieć prawo czytania (read), pisania (write), i wykonywania (execute). Każde z tych praw dostępu reprezentowane jest odpowiednią literą i posiada przypisaną cyfrę.

4 - r - Read

2 - w - Write

1 - x - Execute

0 -  Brak praw 

Do każdego pliku lub katalogu możemy wyszczególnić trzy zestawy takich praw:

  • prawa właściciela
  • prawa grupy
  • prawa pozostałych użytkowników

Katalogi (foldery) w Joomla powinny mieć uprawnienia 755

Pliki w Joomla powinny mieć uprawnienia 644

Plik konfiguracyjny 644 lub 444 (po zapisaniu zmian przez Joomla)

GDY COŚ IDZIE NIE TAK

Joomla ma w sobie mechanizm kontrolny, który sprawdzi które katalogi są niezapisywalne. Należy udać się do Informacji o systemie.

informacja o systemie joomla3

A następnie na zakładkę Prawa do folderów. Na zrzucie po niżej widzimy, że wszyskie foldery są zapisywalne co świadczy o tym że system jest zdrowy. Gdyby przy katalogu świciło sie niezapisywalny należy wówczas poprawić uprawnienia. O tym w dalszej cześci wpisu.

joomla zapisywalny

configuration.php - niezapisywalny. 

joomla niezapisywalny

Otóż chronimy nasz plik configuration.php dlatego widnieje, że jest niezapisywalny. Jest to prawidłowy obraz. Czasem po przeniesieniu między serwerami należy zrobić plik zapisywalny 755 i zapisać z poziomu Joomla, aby ustawić nowego właściciela pliku.

Jak zmienić uprawnienia

Uprawnienia można zmieniać na wiele sposobów poprzez cPanel, FTP lub poprzez console o ile mamy dostęp przez SSH. 

Najcześciej spotykanym systemem obsługi serwera jest cPanel, a więc na nim się skupimy. Jednak na każdym serwerze procedura wygląda podobnie o ile jest możliwość z poziomu przeglądarki zmiany uprawnień.

cpanel manager plikow

Następnie odszukujemy folder z którym są problemy. Sprawdzamy jego uprawnienia ostatnia pozycja "Permissions" w tym wypadku 0700, należy to skorygować.

cpanel manager plikow zmiana praw Korygujemy upraweniania możemy zaznaczyć folder i u góry z menu wybrać "Uprawnienia" lub prawym myszy na folderze, który nas interesuje i dać "Change Permissions". Oba sposoby są dobre i prowadzą do nowego okna.

cpanel manager plikow zmiana praw okno

W nowym oknie nadajemy odpowiednie uprawnienie dla naszego folderu. Uprawnenie ma wyglądać 755 przy wyborze kolejnych pustych kwadratów liczba się będzie zmienić. Więc nawet metodą prób i błędów ustawisz poprawnie uprawnienie. Następnie zapisujemy zmiany "Change Permissions". Po tym zabiegu folder powinien mieć wartość 755, a Ty powinieneś mieć możliwość zapisu w nim poprzez Joomla.

KONSOLA SSH

Jeśli używasz konsoli SSH mógłbyś to zorbić za pomocą komend. 

Wylistowanie folderów z uprawnieniami:

ls -l 

Zmiana pojedyńczego pliku i nadanie praw 644: 

chmod 644 pojedynczy-plik.jpg

Zmiana folderu i nadanie mu uprawnień 755:

chmod -R 755 folder 

Masowa zmiana folderów:

find /sciezka/do/folderu-glownego -type d -exec chmod 755 {} \;

Masowa zmiana plików

find /sciezka/do/folderu-glownego -type f -exec chmod 644 {} \;

PODSUMOWANIE

Pamiętaj, aby uniakać pozostawienia folderów z uprawnieniami 777 tak samo jak i plików. Generalnie im niższy numer tym bezpieczniej. Plik configuration.php przyjmuje wartość 444 i jest ona prawidłowa.