it-swarm.com.de

PHP funktioniert nach dem MacOS-Update auf High Sierra nicht mehr

Ich habe meinen Mac auf die neueste Version von OS aktualisiert. Wenn ich versuche, das PHP -Projekt auszuführen, zeigt der Browser den PHP-Code an, anstatt ihn zu interpretieren. Mir ist aufgefallen, dass PHP in der neuen Version 7.1 ist. Ich habe 5.6 (es ist für mich erforderlich) mit Homebrew installiert und das Modul in httpd.conf geändert:

LoadModule php5_module /usr/local/Cellar/php56/5.6.31_7/libexec/Apache2/libphp5.so

Hier ist das Apache-Fehlerprotokoll:

[Di 26 Sep 23: 59: 38.600410 2017] [mpm_prefork: notice] [pid 980] AH00169: SIGTERM erwischt, heruntergefahren [Di Sep 26 23: 59: 38.622998 2017] [core: notice] [pid 980] AH00060: Seg-Fehler oder ähnliches böses Fehler im übergeordneten Prozess AH00557: httpd: apr_sockaddr_info_get () für MacBook-Pro-Kamil.local AH00558 fehlgeschlagen: httpd: Der Server konnte nicht vollständig qualifiziert werden Domänenname mit 127.0.0.1. Setzen Sie die Direktive 'ServerName' global um diese Nachricht zu unterdrücken [Di Sep 26 23: 59: 48.838005 2017] [mpm_prefork: notice] [pid 991] AH00163: Apache/2.4.27 (Unix) PHP/5.6.31 konfiguriert - Normalbetrieb fortsetzen [Di Sep 26 23: 59: 48.838097 2017] [core: notice] [pid 991] AH00094: Befehlszeile: '/ usr/sbin/httpd -D FOREGROUND'

5
kamcik

Das Hinzufügen der folgenden Zeilen zu meiner httpd.conf-Datei hat das Problem behoben:

AddType x-httpd-php .php
AddHandler application/x-httpd-php .php .php5

Hoffentlich hilft das!

Edit: Um etwas mehr Details zu bieten, wie Crmpicco vorschlägt, habe ich auch die neuen High Sierra-Dateien httpd.conf und httpd-vhosts.conf durch meine alten Sierra-Dateien ersetzt:

mv httpd-vhosts.conf~previous httpd-vhosts.conf
mv httpd.conf~previous httpd.conf

Selbst nach all dem und dem Neustart von Apache funktionierte es immer noch nicht - er musste einen Neustart durchführen, damit alles wirksam wurde.

4
Erebus

Der MacOS-Upgradeprozess scheint Ihre Apache-Konfiguration in ~previous-Dateien zu verschieben, während neue, frische Versionen erstellt werden. Sie müssen sie nur zurückschieben. Das hat für mich funktioniert:

mv httpd-ssl.conf~previous httpd-ssl.conf
mv httpd-vhosts.conf~previous httpd-vhosts.conf
mv httpd.conf~previous httpd.conf

Überprüfen Sie die Syntax.

apachectl -S

Starten Sie Apache neu.

apachectl restart
3
crmpicco

PHP5.6 mit HighSierra verwenden

  1. Ermöglichen Sie das Erstellen eines gemeinsam genutzten Apache-Handler-Moduls Stellen Sie sicher, dass Sie die neueste Version von PHP56 installiert haben und die http-Option aktiviert ist (entweder installieren/aktualisieren/neu installieren).

    $ brew upgrade php56 --with-httpd

  2. Verknüpfen des Moduls in der Apache2-Konfigurationsdatei Fügen Sie die folgende Anweisung in der Apache2-Konfigurationsdatei /etc/Apache2/httpd.conf hinzu

    LoadModule php5_module /usr/local/Cellar/php56/5.6.32_8/libexec/Apache2/libphp5.so

  3. PHP5-Konfigurationsdatei hinzufügen 

    Erstellen Sie eine Kopie aus der php7.conf

    $ cd/etc/Apache2/other; Sudo cp php7.conf php5.conf

    Ersetzen Sie php7_module durch php5_module

  4. Starten Sie Apache Server neu

    $ Sudo/usr/sbin/apachectl neu starten

1
Raghav Tandon

Es sieht nicht so aus, als ob Ihr Problem mit PHP zusammenhängt, sondern mit dem Domainnamen Ihres Computers. Beachten Sie die Nachricht "Der vollständig qualifizierte Domänenname des Servers konnte mit 127.0.0.1 nicht zuverlässig ermittelt werden. Setzen Sie die Anweisung 'ServerName' global, um diese Nachricht zu unterdrücken." Überprüfen Sie die Domäneneinstellungen in Ihrem httpd. Conf-Datei. Sie sollten auch Ihre/etc/hosts -Datei auf Konflikte überprüfen.

Dieses Handbuch zur Installation und Verwendung von Apache/MySQL/PHP über Homebrew war sehr nützlich. Es gilt für macOS Sierra, funktioniert aber auch mit High Sierra. Es zeigt Ihnen auch, wie Sie mehrere PHP -Versionen installieren und wie Sie zwischen diesen Versionen hin und her wechseln können, wenn Sie daran interessiert sind (oder einfach eine einzelne PHP -Version ausführen).

Im Gegensatz zu Vagrant oder MAMP gehe ich gerne die Homebrew-Route, weil sie eher einer nativen Installation entspricht und weniger Ressourcen benötigt. Hoffentlich hilft das!

0
schmelding

Nachdem Sie hinzugefügt haben

LoadModule php5_module /usr/local/Cellar/php56/5.6.31_7/libexec/Apache2/libphp5.so

sie müssen hinzufügen

<IfModule mod_php5.c>
# If php is turned on, we respect .php and .phps files.
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

# Since most users will want index.php to work we
# also automatically enable index.php
<IfModule mod_dir.c>
    DirectoryIndex index.html index.php
</IfModule>

zu deinem 

/etc/Apache2/httpd.conf

Nicht vergessen

apachectl restart
0
Hermann Schwarz

Gleiches hier mit MAMP und php 5.6: kurz nach High Sierra (was wahrscheinlich eine Sierra mit zu viel Unkraut ist). 

Nach Stunden entschloss ich mich schließlich mit diesem Befehl:

cp /Applications/MAMP/bin/php/php5.6.25/conf/php.ini.temp /Applications/MAMP/bin/php/php5.6.25/conf/php.ini

Und habe meine benutzerdefinierten Änderungen erneut auf die php.ini angewendet. (in meinem Fall memory_limit und short_open_tag)

MAMP wurde neu gestartet und beim ersten Versuch funktionierte es.

0
Enrico