Have You Tried IT ?

Information Technology from scratch

Zmiana konfiguracji serwera dla /var/www/vhosts/default/

Dodano przez Kategoria: Linux

Przy okazji instalacji PEAR i trochę później przy konfiguracji pisałem o modyfikowaniu ustawień konfiguracyjnych dla poszczególnych domen przy wykorzystaniu pliku vhost.conf. Tak się składa, że na serwerze w lokalizacji /var/www/vhosts/ oprócz typowych katalogów domen wyklikanych z poziomu Plesk, jest również katalog o nazwie default. Po wpisaniu w przeglądarce nazwy hosta serwera, serwowana jest zawartość tego katalogu, a konkretnie zawartość default/htdocs (przy połączeniu nieszyfrowanym). Wszystko działa tutaj zwyczajnie normalnie, poza tym, że nie działa tutaj już ten trik 😉 z plikiem conf/vhosts.conf. Tzn. działa, ale przy każdym upgradzie i innym przeładowaniu konfiguracji Plesk generuje automatycznie nowy plik, który już nie pobiera treści z pliku conf/vhosts.conf.

Gdy zajdzie taka potrzeba by np. wyłączyć  tryb safe_mode, akurat dla tej domyślnej pozostawiając domyślnie (w pliki php.ini) go włączonym należy przejść do lokalizacji:
/etc/httpd/conf.d/ i odnaleźć tam plik zz010_psa_httpd.conf lub podobny. Nazwa może nieco się różnić głównie ze względu na zainstalowaną wersję Plesk (może to być zz009)… itp.).  Z moich notatek wynika, że prawdopodobnie w wersjach wcześniejszych struktura tego pliku była podobna do typowego *httpd.include. Tam wystarczyło w odpowiednim miejscu dodać php_admin_flag safe_mode off lub zaincludować przygotowany plik vhost.conf.

Natomiast dla wersji Plesk 10+ plik ma mniej więcej taką postać:

cat /etc/httpd/conf.d/zz010_psa_httpd.conf

# ATTENTION!
# DO NOT MODIFY THIS FILE OR ANY PART OF IT. THIS CAN RESULT IN IMPROPER PLESK
# FUNCTIONING OR FAILURE, CAUSE DAMAGE AND LOSS OF DATA.

Include '/usr/local/psa/admin/conf/generated/12990884850.71565400_server.include'
Include '/usr/local/psa/admin/conf/generated/12990884850.71565400_atmail.include'
Include '/usr/local/psa/admin/conf/generated/12990884850.71565400_horde.include'

Stąd znana jest nazwa pliku konfiguracyjnego i można przejść do jego edycji:

vi /usr/local/psa/admin/conf/generated/12990884850.71565400_server.include

Tutaj już trzeba w odpowiednim miejscu dopisać php_admin_flag safe_mode off lub po prostu dołączyć wcześniej przygotowany plik vhosts.conf w miejscu między znacznikami VirtualHost (tu np. dla połączenia nieszyfrowanego na porcie 80)

<VirtualHost \
        XX.XX.XX.XX:80 \
    >
...
Include "/var/www/vhosts/default/conf/vhost.conf*"

    </VirtualHost>

a plik ten ma następującą treść:

cat /var/www/vhosts/default/conf/vhost.conf

<Directory /var/www/vhosts/default/htdocs>
php_admin_value open_basedir /var/www/vhosts/default/htdocs/:/tmp/:/usr/share/pear/
php_admin_flag safe_mode off
</Directory>

Po zapisaniu wystarczy tylko zrestartować usługę Apache (bez przeładowywania pliku konfiguracyjnego)

service httpd restart

i można się cieszyć wyłączonym trybem safe_mode, oczywiście do czasu następnej aktualizacji Pleska bądź innego tego typu akcji 😉

We wszystkich tych plikach pojawia się zawsze informacja w nagłówku, żeby przypadkiem nie modyfikować tych plików pod groźbą zepsucia serwera, tak więc trzeba być czujnym! Gdyby jednak coś się zepsuło i przestało działać a serwer Apache nie chciał się zrestartować, wówczas pozostaje tylko przeładowanie pliku konfiguracyjnego.

/usr/local/psa/admin/sbin/websrvmng -u --vhost-name=nazwa-ho.sta.net

Powyższą komendę proszę wywoływać tylko w sytuacji ostatecznej. Po tym nowy plik zostanie wygenerowany i trzeba będzie wszystko zaczynać od początku.

Rozwiązanie to może nie jest najlepsze, ale doraźnie działa. Jedyne utrudnienie to to, że trzeba o tym pamiętać przy okazji każdego upgrade.

Jeśli ktoś czytający to zna na to lepsze rozwiązanie, to wdzięczny będę za pozostawienie informacji w komentarzu.

 

Dodaj komentarz

XHTML: Dozwolone znaczniki: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="">