[+] Apache2 pobiera pliki .php z public_html

Konfiguracja serwerów, usług, itp.
Nieobraznany
Posty: 4
Rejestracja: 12 lipca 2011, 18:30

[+] Apache2 pobiera pliki .php z public_html

Post autor: Nieobraznany »

Witam.
Zainstalowałem sobie na Debianie z repozytorium: apache2,PHP, MySQL i PhpMyAdmina.

Wszystko działa poza jednym. Pliki .php, które umieszczę w katalogu /var/www, poprawnie się wykonują. Jednak, gdy umieszczę je w public_html, zamiast przetwarzać .php, przeglądarka chce je pobierać.

Czy ktoś Wie jak to rozwiązać? Z góry dziękuję.
steb0

Post autor: steb0 »

Kod: Zaznacz cały

a2enmod userdir
następnie

Kod: Zaznacz cały

/etc/init.d/apache2 restart
jeśli to nie pomoże zakomenduj linie w pliku /etc/apache2/mods-avaible/php5.conf

Kod: Zaznacz cały

<IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
</IfModule>
Awatar użytkownika
VMLine
Beginner
Posty: 137
Rejestracja: 28 lutego 2011, 08:44
Lokalizacja: Poznań / Słupsk

Post autor: VMLine »

steb0, nie w tym problem.
Nieobrazany, moduł php nie załadował się, dlatego apache nie wie jak obsłużyć php. Teoretycznie powinien być zainstalowany ten moduł - libapache2-mod-php5 - jeżeli jest, wykonaj polecenie:

Kod: Zaznacz cały

a2enmod php5
i zrestartuj

Kod: Zaznacz cały

/etc/init.d/apache2 restart
Jeżeli go nie ma, to po prostu:

Kod: Zaznacz cały

apt-get install libapache2-mod-php5
steb0

Post autor: steb0 »

VMLine, jakby nie załadował modułu to również z katalogu /var/www pobierałoby mu pliki .php
Awatar użytkownika
VMLine
Beginner
Posty: 137
Rejestracja: 28 lutego 2011, 08:44
Lokalizacja: Poznań / Słupsk

Post autor: VMLine »

Z każdego katalogu pobierałoby .php oraz każdy inny nieznane dla serwera apache rozszerzenie. Mod_userdir pozwala na listing katalogów. Gdyby wylistował pliki i apache miałby załadowany moduł, to by go nie ściągnął, tylko go wykonał (skrypt). Listując katalogi masz wgląd w listę plików - to wszystko.
steb0

Post autor: steb0 »

Ale przecież napisał że mu ładnie skrypty wykonuje w /var/www, ma tylko problem z katalogiem public_html
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Eh. Moduł jest na 99% załadowany. Po prostu w domyślnej konfiguracji mod_php w debianie, php w katalogach serwowanych przez mod_userdir jest zablokowane. Standardowy /etc/apache2/mods-available/php5.conf:

Kod: Zaznacz cały

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>
Wyraźnie jest napisane, że php jest wyłączone i żeby je włączyć, trzeba zakomentować tą dyrektywę, lub zmienić jej wartość na: Potem przeładuj serwer apache i powinno działać.
steb0

Post autor: steb0 »

Zmiana na ON nic nie da tak było przynajmniej w moim przypadku, tak jak napisałem wcześniej pomogło jedynie zakomentowanie.
Awatar użytkownika
VMLine
Beginner
Posty: 137
Rejestracja: 28 lutego 2011, 08:44
Lokalizacja: Poznań / Słupsk

Post autor: VMLine »

Rzeczywiście nie doczytałem że z poziomu public_html się wczytuje. W związku z tym najlepiej by autor pokazał swoją wirtualkę i ustawienia mod`a php.
Nieobraznany
Posty: 4
Rejestracja: 12 lipca 2011, 18:30

Post autor: Nieobraznany »

steb0, lessmian2, Wasze rozwiązanie właśnie mi pomogło. Konkretnie chodziło o zakomentowanie tej linijki.
Dziękuję wszystkim za pomoc i zainteresowanie się tematem.
ODPOWIEDZ