PHP-Skript wird auf dem Apache-Server nicht ausgeführt

54

Ich habe gerade Apache und PHP5 neu installiert, aber wenn ich mein Doc-Stammverzeichnis besuche, wird nur eine "Download" -Datei heruntergeladen. Und wenn ich documentroot /index.php versuche , wird nur die PHP-Datei heruntergeladen.

Ich habe PHP installiert, aber Apache scheint es nicht ausführen zu wollen.
Die Leute schlugen vor, eine 'Load Module'-Zeile zu meiner hinzuzufügen, httpd.confaber ich habe diese Datei nicht.

user2919631
quelle

Antworten:

103

Eingabe:

sudo apt-get install apache2 php5 libapache2-mod-php5

installiert alles was Sie brauchen und startet den Apache Server mit Unterstützung für PHP.

Um zu überprüfen, ob das PHP-Modul geladen ist, geben Sie Folgendes ein:

a2query -m php5

Wenn nicht aktiviert, laden Sie mit:

sudo a2enmod php5

und starte Apache neu:

sudo service apache2 restart

Update für php7.x (getestet auf Ubuntu 16.04, 16.10, 18.04, 18.10 )

Dank der Kommentare aktualisiere ich die Antwort für php7.x.

Installieren:

sudo apt-get install apache2 php7.x libapache2-mod-php7.x 

Überprüfen:

a2query -m php7.x

Belastung:

sudo a2enmod php7.x

Starte Apache neu:

sudo service apache2 restart
girardengo
quelle
Es ist besser, a2enmoddie Datei manuell zwischen "Mods-available" und "Mods-enabled" zu kopieren. a2enmodWenn Sie einen Symlink erstellen, haben Sie nur eine Kopie der Konfiguration.
jkt123
@ jkt123 du hast recht. danke für den rat, ich bearbeite meine antwort.
Girardengo
In meinem Fall heißt es "FEHLER: Modul php5 existiert nicht!" es ist installiert
Marian Klühspies
3
für Ubuntu 16.04 mit php7 habe ich diese Befehle ausgeführt , um apt-get install libapache2-mod-php, a2query -m php7.0,service apache2 restart
marlo
Für Ubuntu 14.04: # a2query -m php7.0 php7.0 (vom Site-Administrator aktiviert) PHP-Code wird immer noch nicht ausgeführt
Ashish Karpe
19

Eine weitere häufige Ursache ist, dass PHP-Short-Tags <?in der Standardkonfiguration von php.ini nicht aktiviert sind. Nach einem Upgrade oder einer Neuinstallation ist diese Einstellung möglicherweise deaktiviert und der PHP-Code hängt davon ab. Versuchen Sie ersetzen <?mit <?php.

( Gutschrift )

Tufelkinder
quelle
13

Ubuntu 16.04 ist auf PHP 7 umgezogen. Dieser einzelne Befehl erledigt die Arbeit für Sie:

sudo apt-get install apache2 php libapache2-mod-php

Hier libapache2-mod-phpist ein Metapaket, das libapache2-mod-php7 installiert.

daltonfury42
quelle
2

Öffnen Sie php.inimit nanoim Terminal:

sudo nano /etc/php/php5.6/apache2/php.ini

Dann ändern Sie:

short_open_tag = Off

zu

short_open_tag = On

Dann speichere und starte apache2 neu:

sudo systemctl restart apache2
Satrio Prasojo
quelle
1
Oder korrigieren Sie die PHP-Skripte :-)This directive determines whether or not PHP will recognize code between <? and ?> tags as PHP source which should be processed as such. It is generally recommended that <?php and ?> should be used and that this feature should be disabled [...]
Nicolas Raoul
1

Ich bin auf dasselbe Problem gestoßen, aber mein spezielles Problem war einzigartig. Ich lief in einem Benutzerverzeichnis (mit mod_userdir) - das heißt, Sie greifen über http://host.name.com/~username/example.php auf meine Webseite zu

Dies ist standardmäßig in php * .conf in meinem mods-fähigen Verzeichnis deaktiviert. Ich musste es ändern, um es auskommentieren zu können:

#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
#</IfModule>

Das war ein Schmerz, um herauszufinden ..

Ich bezweifle, dass irgendjemand DIESES spezielle Problem hatte, aber ich dachte, ich würde es hinzufügen, weil es für mich verwirrend war und MÖGLICHERWEISE jemand das Gleiche tut. Ich schätze, niemand außer mir benutzt mehr ~ / user.

Du musst danach natürlich Apache neu starten.

Jiminy Idiot
quelle
0

Mein Fall war etwas anders. Ich habe ein Upgrade von Ubuntu 19.04 auf 19.10 durchgeführt. Während des Upgrations wurde PHP 7.3 installiert (wobei PHP 7.2 bereits installiert war). Mit 2 installierten Versionen a2query -m php7.3 return Kein Modul stimmt mit php7.3 überein .

Lösung Ich fand, war von How-to-Install-PHP-7-3-auf-Ubuntu .

Führen Sie Folgendes aus, um PHP 7.0 als Standard festzulegen

update-alternatives --set php /usr/bin/php7.0

Führen Sie Folgendes aus, um PHP 7.2 als Standard festzulegen

update-alternatives --set php /usr/bin/php7.2

Führen Sie Folgendes aus, um PHP 7.3 als Standard festzulegen

update-alternatives --set php /usr/bin/php7.3

Bevor wir Apache für die Verwendung von PHP 7.3 konfigurieren können, müssen wir die alte Version von PHP 7.0 durch Eingabe deaktivieren

a2dismod php7.2

Aktivieren Sie nun die neu installierte PHP 7.3-Version mit dem folgenden Befehl:

a2enmod php7.3

Starten Sie den Apache-Webserver neu, damit die Änderungen wirksam werden:

sudo systemctl restart apache2
Adeel Raza Azeemi
quelle