[Powrót][Do góry][Dalej]

Dyrektywy PHP i Plesk

Na szczególną uwagę zasługuje temat dyrektyw PHP (np. register_globals, safe_mode, display_errors).

Problematyka ta nie została optymalnie rozwiązana w przypadku panelu Plesk. Pomimo małego ulepszenia – wersja 8.0 przyniosła obsługę dyrektywy safe_mode bezpośrednio w panelu – nadal konieczna jest ręczna ingerencja w celu włączania lub wyłączania tych funkcji.

Zmiana tych dyrektyw przeprowadzane być powinny z reguły lokalnie, czyli tylko dla konkretnej domeny. Oczywiście istnieje również możliwość globalnych zmian ustawień serwera, konieczna jest wówczas edycja plików konfiguracyjnych, takich jak np.: php.ini, httpd.conf lub apache2.conf.

  • safe_mode odpowiednie ustawienia dokonywać można bezpośrednio w panelu Plesk. Odbywa się to w punkcie Ustawienia, znajdującym się w sekcji Hosting w poziomie administracji domeny.

Zmianę tego ustawienia przeprowadzić może tylko użytkownik zalogowany w panelu jako admin, czyli Administrator. Dla użytkownika/administratora domeny opcja ta jest niedostępna.

  • register_globals – zmiana tej dyrektywy następuje w dwojaki sposób:
    • za pomocą pliku .htaccess – administrator domeny tworzy plik o nazwie .htaccess (ważne jest, aby plik ten utrzymany był w formacie UNIX), z następującym wpisem:

php_flag register_globals off

lub

php_flag register_globals on

Plik ten należy umieścić w katalogu, od którego ma obowiązywać (w normalnym wypadku /httpdocs), wpis ten zmienia ustawienia wszystkich podkatalogów leżących w tym katalogu.

    • Za pomocą pliku host.conf – w tym przypadku konieczny jest dostęp shell z posiadaniem uprawnień ROOT. Ścieżka do odpowiedniego katalogu jest - w przypadku systemów Debian:
        • var/www/vhosts/<domena-użytkownika.pl>/conf/
          Suse:
        • usr/www/vhosts/<domena-użytkownika.pl>/conf/

w katalogu tym utworzyć należy plik o nazwie host.conf, z następującą zawartością:

          php_admin_flag register_globals on

Uwaga!
W przypadku zmian plików konfiguracyjnych serwera, zarówno globalnych, jak i lokalnych, dotyczących tylko danej domeny, konieczne jest „poinformowanie” Pleska o zmianie w systemie. Polega to na wpisaniu odpowiedniej komendy w shell.  Uwaga ta nie dotyczy zmian dokonanych za pomocą plików .htaccess. Dokładne informacje na ten temat podane zostaną poniżej.

Aby zmiany te zostały przejęte przez Plesk, należy wykonać następującą komendę:

/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=<domena-użytkownika.pl>

gdzie <domena-użytkownika.pl> zastąpić należy właściwą domeną. Przykład takiej komendy w przypadku domeny xxl-web.pl byłby:

/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name= xxl-web.pl

Po wykonaniu tej domeny konieczne jest jeszcze restartowanie Apache. Ponieważ w przypadku niektórych ustawień zwykła komenda reload lub restart nie jest wystarczająca, najpewniej jest zatrzymanie tej usługi, a następnie jej wystartowanie:

/etc/init.d/apache2 stop
/etc/init.d/apache2 start

Te same zasady obowiązują dla pozostałych dyrektyw, jak np. display_errors.

Uwaga!
Dyrektywę safe_mode ustawiać należy wyłącznie w panelu Plesk. Próba jej ustawienia za pomocą vhost.conf lub .htaccess może doprowadzić do nieprzewidywalnych efektów, co pokazała praktyka.

Komenda powodująca przejęcie zmian ogólnych, obowiązujących globalnie, czyli nie tylko dla jednej domeny, jest następująca:

/usr/local/psa/admin/sbin/websrvmng -a –v

[Powrót][Do góry][Dalej]