Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Include z tego samego serwera
Forum PHP.pl > Forum > PHP
WoGuziczek
Witam!

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:
  1. include('/home/users/franek/domains/portal.pl/public_html/db_connect.php');
  2. $db = new connect();
  3. // 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


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.
Zyx
Skoro jest to serwer dedykowany, to powiedz czy masz tam FastCGI, mod_php + safe_mode czy coś jeszcze innego, ponieważ jest to dość istotne. Na zwykym Linuksie takiego jednorazowego zezwolenia raczej nie zrobisz, ponieważ system uprawnień nie jest aż tak elastyczny. Dopiero w SELinux powinno się dać wykonać coś takiego, ale oznacza to trochę zabawy z politykami, przydzielaniem ról itd.
WoGuziczek
Wiesz... mam full dostęp, więc jedno słowo i będę to wszystko miał lub nie.
Co proponujesz?

System to debian więc zdaję sobie sprawę, że system mi nie pozwoli na takie bajery.
bim2
Nie możesz spróbować zamiast robić include to wywołać file_get_contents localhost/cosZrobOdAdmina.php ? Albo exec(cosZrobOdAdmina.txt) ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.