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.