Na moim serwerze dedykowanym posiadam kilku użytkowników i każdy posiada po kilka domen.
Użytkownik MICHAŁ ma path: /home/users/michal/domains/forum.pl/public_html
Na koncie forum.pl mam skrypt php, który generuje treść.
Na końcu owego skryptu chciałbym zrobić include do innego skryptu na moim serwerze, który doda wpis do portalu.
Zrobiłem tak:
include('/home/users/franek/domains/portal.pl/public_html/db_connect.php'); $db = new connect(); // tresc nie jest dalej wazna.
Wiadomo, że chciałbym na końcu swojego skryptu na forum.pl - nawiązać połączenie do bazy danych poprzez plik, który znajduje się na koncie innego użytkownika / domenie.
Wynik skryptu to po prostu:
Kod
Warning: require_once() [function.require-once]: open_basedir restriction in effect. File(/home/users/franek/domains/portal.pl/public_html/db_connect.php) is not within the allowed path(s): (/home/users/michal/:/tmp:/var/tmp:/usr/local/lib/php/) in /home/users/michal/domains/forum.pl/public_html/newpost.php on line 4
Warning: require_once(/home/users/franek/domains/portal.pl/public_html/db_connect.php) [function.require-once]: failed to open stream: Operation not permitted in /home/users/michal/domains/forum.pl/public_html/newpost.php on line 4
Fatal error: require_once() [function.require]: Failed opening required '/home/users/franek/domains/portal.pl/public_html/db_connect.php' (include_path='.:/usr/local/lib/php') in /home/users/michal/domains/forum.pl/public_html/newpost.php on line 4
Warning: require_once(/home/users/franek/domains/portal.pl/public_html/db_connect.php) [function.require-once]: failed to open stream: Operation not permitted in /home/users/michal/domains/forum.pl/public_html/newpost.php on line 4
Fatal error: require_once() [function.require]: Failed opening required '/home/users/franek/domains/portal.pl/public_html/db_connect.php' (include_path='.:/usr/local/lib/php') in /home/users/michal/domains/forum.pl/public_html/newpost.php on line 4
Jak zaincludować plik tak jak ja chcę?
Nie chciałbym, aby do moich skryptów dostęp mieli osoby spoza serwera, bo czytałem coś o allow_url_include, ale zezwolić wszystkim to trochę przesada. Natomiast odblokowując open_basedir udostępnię wszystkim na serwerze dostęp do wszystkich katalogów, a wystarczy mi jedynie powyższe jednorazowe zezwolenie.