PHP, safe mode i problem z zapisywaniem plików w folderze utworzonym przez serwer www
Bardzo często zdarza się, że serwera www, na którym uruchamiamy nasze skrypty został ustawiony w tryb bezpieczny dla PHP. Jednym z problemów jakie mogą się nam przytrafić w takiej sytuacji, jest niemożność utworzenia plików w katalogu, który został stworzony z poziomu PHP.
Błąd ten objawia się komunikatem
warning: fopen(): SAFE MODE Restriction in effect. The script whose uid is ... is not allowed to access "..." owned by uid .. in "..." on line ... .
Co prawda nie jest ten problem bardzo często możemy rozwiązać sami poprzez utworzenie katalogu z poziomu FTP i nadaniu mu stosownych praw, ale w przypadku gdy mamy do czynienia ze skryptem, który wymagał będzie ciągłego tworzenia katalogów (FileManager, aplikacja rozpakowująca pliki i foldery, skrypty backupujące itd.) musimy użyć podstępu.
Sposób, który przedstawię opiera się na zwykłym oszukaniu serwera i podłączeniu się do niego poprzez FTP korzystając z uprzejmości biblioteki CURL. Jedyną niedogognością w tej sytuacji może być jedynie limit połączeń z serwerem FTP, który dla kont darmowych bardzo często wynosi 1. Poza tym nie ma w zasadzie żadnych ograniczeń, bo serwer łączy się sam ze sobą, więc pozostając przy niezamykającym się połączeniu jesteśmy w stanie całkiem szybko utworzyć nowy katalog.
Przykładowa biblioteka znajduje się tutaj.
Proszę zważać na to co piszecie w komentarzach. Wpisy zawierające idiotyczne, obraźliwe, wulgarne, ubogie merytorycznie lub niezgodne z polskim prawem treści będą usuwane.