Z góry przejdę do konkretów.
<?php chmod('dodatki/', 0777); chmod('dodatki/pliki_konfiguracyjne/', 0777); chmod('dodatki/pliki_konfiguracyjne/config.php', 0777); ?>
To jest część dość dużego pliku php odpowiedzialnego, która jest odpowiedzialna za zmianę "chmodów" i stworzenie nowego pliku. Na windowsowym serwerze - Apache 2 działa bez zarzutu (oczywiście nie zmieniają się chmody, gdyż w windzie ich nie ma), natomiast, gdy wrzuce go na moje konto ftp (serwer na linuxie) pojawia się problem. Aby wam przedstawić to bardziej obrazowo przygotowałem skrypt, który zawiera wyłącznie powyższe linijki. Skrypt znajdziecie pod adresem: http://my.xon.pl/strona/bnk_cms/play.php .
Wywala on następujące błędy:
Cytat
Warning: chmod() [function.chmod]: Operation not permitted in /home/bnk/public_html/strona/bnk_cms/play.php on line 2
Warning: chmod() [function.chmod]: Operation not permitted in /home/bnk/public_html/strona/bnk_cms/play.php on line 3
Warning: fopen(dodatki/pliki_konfiguracyjne/config.php) [function.fopen]: failed to open stream: Permission denied in /home/bnk/public_html/strona/bnk_cms/play.php on line 4
Warning: chmod() [function.chmod]: No such file or directory in /home/bnk/public_html/strona/bnk_cms/play.php on line 5
Warning: fwrite(): supplied argument is not a valid stream resource in /home/bnk/public_html/strona/bnk_cms/play.php on line 6
Warning: fclose(): supplied argument is not a valid stream resource in /home/bnk/public_html/strona/bnk_cms/play.php on line 7
Warning: chmod() [function.chmod]: Operation not permitted in /home/bnk/public_html/strona/bnk_cms/play.php on line 3
Warning: fopen(dodatki/pliki_konfiguracyjne/config.php) [function.fopen]: failed to open stream: Permission denied in /home/bnk/public_html/strona/bnk_cms/play.php on line 4
Warning: chmod() [function.chmod]: No such file or directory in /home/bnk/public_html/strona/bnk_cms/play.php on line 5
Warning: fwrite(): supplied argument is not a valid stream resource in /home/bnk/public_html/strona/bnk_cms/play.php on line 6
Warning: fclose(): supplied argument is not a valid stream resource in /home/bnk/public_html/strona/bnk_cms/play.php on line 7
Jeden wynika z drugiego.
Próbowałem do sprawy podejść w ten sposób:
<?php chmod('/dodatki', 0777); chmod('/dodatki/pliki_konfiguracyjne', 0777); chmod('/dodatki/pliki_konfiguracyjne/config.php', 0777); ?>
ale ten wywala błędy (zastosowane w skrypcie oryginalnym):
<?php Warning: chmod() [function.chmod]: open_basedir restriction in effect. File(/dodatki) is not within the allowed path(s): (/home/bnk/:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/bnk/public_html/strona/bnk_cms/instalacja.php on line 56 Warning: chmod() [function.chmod]: open_basedir restriction in effect. File(/dodatki/ustawienia) is not within the allowed path(s): (/home/bnk/:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/bnk/public_html/strona/bnk_cms/instalacja.php on line 57 ?>
Na serwerze nie posiadam safe-mode, funkcji chmod używałem już nie raz. Kilka innych skryptów cały czas z niej korzysta. Katalog "." ma chmod 777, plik który zawiera tą treść także ma taki sam. Wszystkie katalogi stworzyłem sam (tzn. powinienem mieć do nich pełny dostęp), nie grzebie w ustawieniach.
Dla google powyższe komunikaty oznaczają, że mam safe-mode. W tym jednak problem, że ja jestem pewien, że tak owy nie istnieje. Mam płatny serwer - to raz; funkcji chmod używałem już parenaście razy (w innych skryptach) - to dwa.
Prosiłbym o jakieś wskazówki, co powienienem zrobić. To może byc nawet drobnostka.
Pozdrawiam, z góry dziękuję.
BNK