[+] Apache2 pobiera pliki .php z public_html
-
- Posty: 4
- Rejestracja: 12 lipca 2011, 18:30
[+] Apache2 pobiera pliki .php z public_html
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ę.
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ę.
Kod: Zaznacz cały
a2enmod userdir
Kod: Zaznacz cały
/etc/init.d/apache2 restart
Kod: Zaznacz cały
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_value engine Off
</Directory>
</IfModule>
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:
i zrestartuj
Jeżeli go nie ma, to po prostu:
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
Kod: Zaznacz cały
/etc/init.d/apache2 restart
Kod: Zaznacz cały
apt-get install libapache2-mod-php5
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.
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:
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ć.
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>
Kod: Zaznacz cały
On
-
- Posty: 4
- Rejestracja: 12 lipca 2011, 18:30