Tzw. tryb bezpieczny w PHP (safe_mode) m.in. wymusza sprawdzanie właścicieli i pozwala na wykonywanie operacji tylko wtedy, gdy wykonywany plik i zasób, na którym ma być wykonana operacja należą do tego samego właściciela. Instalacja PEAR na serwerze odbywała się z konta root i on jest właścicielem plików źródłowych. Natomiast właścicielem plików regularnych dla podpiętych na serwerze domen jest już zupełnie inny użytkownik. Dlatego, gdy tryb safe_mode jest włączony na serwerze przy próbie użycia rozszerzeń PEAR pojawia się mniej więcej taki błąd:
Warning: require_once(System.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/vhosts/domenasrutututu.pl/httpdocs/peartest.php on line XX Fatal error: require_once() [function.require]: Failed opening required 'System.php' (include_path='.:/usr/share/pear/') in /var/www/vhosts/domenasrutututu.pl/httpdocs/peartest.php on line XX
Aby temu zaradzić można np. zmienić właściciela plików ze skryptem na root ( chown root peartest.php ), co jednak jest bez sensu.
Jeśli niezbędne jest zachowanie włączonego trybu safe_mode na serwerze, wówczas należy edytować plik conf/vhost.conf o czym wcześniej pisałem przy okazji instalacji PEAR. W tym przypadku należy dopisać kolejną linię z modyfikacją parametru safe_mode_include_dir:
<Directory /var/www/vhosts/domenasrutututu.pl/httpdocs> php_admin_value open_basedir /var/www/vhosts/domenasrutututu.pl/httpdocs/:/tmp/:/usr/share/pear/ php_admin_value safe_mode_include_dir /usr/share/pear/ </Directory>
Po zapisaniu standardowo należy przeładować konfiguracje Apache dla domeny:
/usr/local/psa/admin/sbin/websrvmng -u --vhost-name=domenasrutututu.pl
Pingback: Błąd: sendmail returned error code 127 — Have You Tried IT