Apache pobiera pliki PHP

Nie wiem czemu, ale niekiedy zdarza się tak, że instalując rodzinę Apache2+PHP ten drugi nie jest widziany przez serwer www. Objawia się to tym, że gdy mamy pliki PHP to przeglądarka zamiast wyświetlać ich zawartość wyświetla komunikat, który oferuje… możliwość pobrania tego pliku. To znak, że Apache nie interpretuje plików PHP. Artykuł pokaże, jak rozwiązać ten problem.

Na sam początek musimy zainstalować paczkę:

libapache2-mod-php5

Po instalacji ładujemy odpowiedni moduł:

a2enmod php5

i restartujemy Apache:

/etc/init.d/apache2 restart

Teraz sprawdzamy, czy Apache interpretuje pliki php. Jeżeli nie , to wertujemy dalej ten poradnik.

Edytujemy pliki

Na początku musimy sprawdzić, czy w odpowiednim folderze znajdują się dwa odpowiednie pliki. Wpisujemy zatem polecenie:

cd /etc/apache2/mods-available

Przeniesie to nas do folderu mods-available.

Teraz wylistujemy wszystkie pliki, które się w nim znajdują:

ls

I szukamy plików php5.conf oraz php5.load. Jeżeli ich nie ma, to je tworzymy. To polecenie wykonujemy jako administrator:

touch php5.conf
touch php5.load

Ok. Pliki są gotowe. Teraz znów jako administrator musimy je wy edytować. Pierwszy do odstrzału pójdzie php5.load:

nano php5.load

Jako treść wpisujemy:

LoadModule php5_module /usr/lib/apache2/modules/libphp5.so

Zapisujemy zmiany. Teraz klepiemy:

nano php5.conf

i jako treść wpisujemy:

<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>

Zapisujemy zmiany i wykonujemy restart Apache poleceniem:

/etc/init.d/apache2 restart

Od tej chwili pliki php powinny być interpretowane, a nie pobierane.