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.
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.
configuration.php - 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ń.
Następnie odszukujemy folder z którym są problemy. Sprawdzamy jego uprawnienia ostatnia pozycja "Permissions" w tym wypadku 0700, należy to skorygować.
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.
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.