2017-09-26 14 views
5

Ich aktualisierte mein Mac auf die neueste Version von OS. Wenn ich versuche, ein PHP-Projekt auszuführen, zeigt der Browser den PHP-Code an, anstatt ihn zu interpretieren. Ich habe festgestellt, dass in neuen Betriebssystemen PHP in Version 7.1 ist. Ich installierte 5.6 (es ist für mich erforderlich) unter Verwendung von Homebrew und Wechselmodul in httpd.conf:PHP funktioniert nicht nach MacOS Update auf High Sierra

LoadModule- Module php5_module /usr/local/Cellar/php56/5.6.31_7/libexec/apache2/libphp5.so

Hier apache error log:

[Di 26. September 23: 59: 38,600410 2017] [mpm_prefork: Bekanntmachung] [pid 980] AH00169: gefangen SIGTERM, heruntergefahren [Di 26. September 23: 59: 38.622998 2017] [Kern: Mitteilung] [pid 980] AH00 060: seg Fehler oder ähnlich eklatant Fehler im übergeordneten Prozess erkannt AH00557: httpd: apr_sockaddr_info_get() für MacBook-Pro-Kamil.local fehlgeschlagen AH00558: httpd: Konnte den vollqualifizierten Domain-Namen des Servers mit 127.0 nicht zuverlässig ermitteln .0.1. Setzen Sie die Direktive 'ServerName' global auf , 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 - Wiederaufnahme des normalen Betriebs [Di 26. September 23: 59: 48,838097 2017] [Kern: Bekanntmachung] [pid 991] AH00094: Befehlszeile: '/ usr/sbin/httpd -D FOREGROUND'

Antwort

-2

Sie kann die Xampp-Version herunterladen, die PHP 5.6.31 unterstützt und deine App mit Xampp ausführen.

Wenn Sie das nicht möchten, denke ich, dass Sie zurück zu MacOs Sierra gehen müssen, denken Sie daran, dass PHP 5.6 alt ist, die neuen Systeme kommen mit der neuesten Version!

+0

Sie sagen, das ist, als ob die Herabstufung PHP ist keine Option und keine läuft PHP5 Seite an Seite mit PHP7. Liegt das daran, dass Sie wissen, dass keines dieser Dinge möglich ist oder weil es außerhalb Ihrer Antwort liegt? – dubloons

+0

Ich sage das, weil die neuen MacOs PHP 7 im Kern verwenden, also könnte das Herunterstufen von PHP eine Katastrophe sein. – Kurogani

+0

Wie OP erwähnt, benutzt er Brew, um PHP-Version (en) zu handhaben, also ist das überhaupt kein Problem. – Erebus

-1

Ich schaute auch auf die Homebrew-Option, am Ende entschied ich mich, Vagrant zu verwenden. Sie können Ihre Projektdateien dort lassen, wo sie sind, und vagrant verwenden, um sie lokal zu bedienen. Ich benutze die Laravel/Homestead-Box und folge der Anleitung auf https://laravel.com/docs/5.5/homestead und in Homestead.yaml - du kannst die gleiche Box für Laravel und WordPress etc. verwenden. Es ist auch viel zukunftssicherer für das nächste osx-Upgrade und du kannst die php-Version einfach auswählen auf einer Seite für Seite Basis

folders: 
    - map: ~/Documents/www/mysite/ 
     to: /home/vagrant/mysite 
     type: "nfs" 
sites: 
    - map: mysite.app 
     to: /home/vagrant/mysite/dist 
     php: "5.6" 

und in/etc/hosts/add

192.168.10.10 mysite.app 
0

Es sieht nicht so aus wie das Problem mit PHP ist, ist aber mit Domain-Namen Ihrer Maschine. Beachten Sie die Meldung "Konnte den vollständig qualifizierten Domänennamen des Servers mit 127.0.0.1 nicht zuverlässig ermitteln. Setzen Sie die Direktive 'ServerName' global, um diese Nachricht zu unterdrücken." Überprüfen Sie die Domäneneinstellungen in Ihrer httpd.conf-Datei. Sie sollten Ihre/etc/hosts-Datei auch dort auf Konflikte überprüfen.

This guide for installing and using Apache/MySQL/PHP via Homebrew has been immensely useful. Es gilt für macOS Sierra, wird aber auch mit High Sierra funktionieren. Es zeigt Ihnen auch, wie Sie mehrere PHP-Versionen installieren und wie Sie zwischen ihnen hin und her schalten können, wenn Sie das interessiert (oder einfach nur eine einzige PHP-Version laufen lässt).

Ich mag die Homebrew Route im Gegensatz zu Vagrant oder MAMP, weil es näher an einer nativen Installation ist und weniger Ressourcen verbraucht. Ich hoffe, das hilft!

+0

Die ServerName-Nachricht ist nur eine Warnung. Wenn alles andere richtig konfiguriert ist, sollte es keine Probleme verursachen (Ich habe mein lokales env mit dieser Warnung lange Zeit ausgeführt, bevor ich es endgültig repariert habe). – Erebus

4

die folgenden Zeilen in meiner httpd.conf Hinzufügen das Problem behoben:

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

Hoffentlich hilft!

Edit: nur ein bisschen näher zu liefern, wie crmpicco schon sagt, ich habe auch die neue High Sierra httpd.conf und httpd-vhosts.conf Dateien mit meiner alten Sierra ersetzen, wie so:

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

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

1

Der MacOS Upgrade-Prozess scheint Ihre Apache-Konfiguration in ~previous Dateien zu verschieben, während Sie neue, frische Versionen erstellen. Sie müssen sie nur zurückbewegen. Dies funktionierte für mich:

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

Ich habe das versucht, aber ohne die Zeilen in meiner Antwort, es hat immer noch nicht funktioniert. Vielleicht hatten Sie diese Zeilen in Ihren alten Konfigurationsdateien? Außerdem möchte ich im Allgemeinen mit den frischen Konfigurationsdateien beginnen und die Sachen hinzufügen, die ich brauche, falls neue Dinge hinzugefügt werden. – Erebus

0

Die gleiche Sache hier mit MAMP und PHP 5.6: nur nach dem High Sierra aktualisiert haben (was wahrscheinlich eine Sierra mit zu viel Unkraut ist ..) Apache2 aufgehört zu arbeiten.

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

Und wieder angelegt meine kundenspezifische Änderungen an der php.ini:

Nach Stunden habe ich endlich mit diesem Befehl aufgelöst. (in meinem Fall memory_limit und short_open_tag)

Neustart MAMP und es funktionierte auf Anhieb.

1

Mit PHP5.6 mit HighSierra

  1. aktivieren Gebäuden gemeinsamen Apache Handler-Modul Stellen Sie sicher, dass die neueste Version von PHP56 installiert zusammen mit http-Option aktiviert (entweder installieren/aktualisieren/neu installieren je nach Bedarf)

    $ brauen Upgrade php56 --with-httpd

  2. das Modul Verknüpfung in apache2 Config Datei Add folgende Anweisung in apache2 Konfigurationsdatei/etc/ap ache2/httpd.conf

    LoadModule- Module php5_module

    /usr/local/Cellar/php56/5.6.32_8/libexec/apache2/libphp5.so
  3. die PHP5 Konfigurationsdatei hinzufügen

    eine Kopie von der Make php7.conf

    $ cd/etc/apache2/andere; sudo cp php7.conf php5.

    conf

    ersetzen php7_module mit Module php5_module

  4. Restart Apache Server

    $ sudo/usr/sbin/apachectl neu starten

Verwandte Themen