Warum Spuckt der Webserver php Dateien aus?
Moin,
Ich musste einen Webserver neu aufsetzen, alles installiert, aber er Läd PHP Dateien herunter anstatt sie Anzuzeigen?
000-default.conf
- DirectoryIndex index.php index.html index.htm;
php sollte geladen sein?
root@ubuntu:/etc/apache2/sites-available# sudo a2enmod php8.1
Considering dependency mpm_prefork for php8.1:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.1:
Module php8.1 already enabled
gibt es noch testmöglichkeiten oder dinge zu beachten?
3 Antworten
# apache2ctl -t -D DUMP_MODULES
Taucht php_module auf?
Wenn nein, dann httpd neu starten, andernfalls schauen, ob auch ein SetHandler (et. al.) in der Config vorhanden ist.
Gut, das Modul würde also bei einem Neustart geladen, hast Du nach SetHAndler geschaut? Und dann führe trotzdem einen Neustart des httpd aus.
Danke, hab apache2 neugestartet, httpd kennt er anscheinend nicht :s
SetHandler findet er keine in der apache2.conf.
Auch nicht in dne inkludierten Configs? Dann könnte das das eigentliche PRoblem sein.
So in etwa sollte das aussehen:
<FilesMatch "\.(php|php[57]|phtml)$">
SetHandler application/x-httpd-php
</FilesMatch>
mods-enabled/php8.0.conf zeigt:
<FilesMatch ".+\.ph(ar|p|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(ar|p|ps|tml)$">
Require all denied
</FilesMatch>
# Running PHP scripts in user directories is disabled by default
#
# 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_flag engine Off
</Directory>
</IfModule>
Sieht soweit erstmal okay aus.
Wie hast Du den Webserver neu gestartet?
Im Zweifelsfall kannst Du nochmal versuchen den Server zu stoppen. Zu schauen, daß alle Prozesse beendet wurden, ggf. übriggebliebene Prozesse zu killen und dann den Server neu zu starten.
Und wenn nichts anderes hilft, dann müßtest Du mal exzessives Debug-Loggign betreiben, um der Sache auf den Grund zu gehen.
logging ist schon im debug mode zeigt aber bei /var/log/apache2/error.log nur SSL Zertifikate an aber keine fehler
Das Modul ist ja scheinbar aktiviert. Gibt es einen entsprechenden SetHandler für PHP Files in der Config? Magst Du die vielleicht mal irgendwo hochladen?
mods-enabled/php8.0.conf zeigt allerdings:
<FilesMatch ".+\.ph(ar|p|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(ar|p|ps|tml)$">
Require all denied
</FilesMatch>
# Running PHP scripts in user directories is disabled by default
#
# 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_flag engine Off
</Directory>
</IfModule>
PHP ist auf dem Server nicht aktiviert oder nicht installiert.
Module php8.1 already enabled
wo kann ich denn checken ob es tatsächlich enabled ist? die apache2.conf zeigt mir da irgendwie nichts zu an was ich so rauslesen kann