wake-up-neo.net

Von Homebrew installiertes PHP7 funktioniert nicht mit Apache unter macOS

Ich versuche ein Upgrade auf PHP7 durchzuführen, das ich über Homebrew installiert habe.

In CLI kehrt php -v zurück 

PHP 7.0.10 (cli) (built: Aug 21 2016 19:14:33) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

Bei localhost wird jedoch beim Laden von Firefox ein Problem angezeigt, und ich kann keine localhost/phpinfo.php anzeigen. Wenn ich die Modulzeilen wieder auf php5 austausche, funktioniert das einwandfrei.

Hier ist ein Pastebin http://Pastebin.com/950yC7wA meiner Apache2/httpd.conf, ich habe keine Ahnung, wie ich das beheben kann.

  • oS-Version El Capitan 10.11
25
Arthur

Weitere Informationen:

  • Вы установили PHP с поддержкой модуля Apache (см.: brew options php71).

    Например. --with-httpd22 или --with-httpd24 включены.

  • Вы следовали инструкциям brew info php71

    ==> Caveats
    To enable PHP in Apache add the following to httpd.conf and restart Apache:
        LoadModule php7_module /usr/local/opt/php71/libexec/Apache2/libphp7.so
    
        <FilesMatch .php$>
            SetHandler application/x-httpd-php
        </FilesMatch>
    
    Finally, check DirectoryIndex includes index.php
        DirectoryIndex index.php index.html
    
  • Вы перезапустили Apache через Sudo apachectl restart.

Пошаговое руководство см. В: Настройка Apache, MySQL и PHP с использованием Homebrew на macOS Sierra .

Поиск проблемы

  • Weitere Informationen zum Thema:

    tail -f /usr/local/var/log/Apache2/*error*
    

    Затем запустите/перезагрузите сервер.

    Beschreibung: когда закончите, нажмитеControl-Cвыйти tail.

13
kenorb

Während Homebrew ein hervorragendes Werkzeug ist, ist es manchmal nicht erforderlich.

Ich erwähne in meinen Beiträgen zu Apache, PHP und MySQL unter Mac OS X installieren , OS X wird mit Apache und PHP vorinstalliert. Daher müssen Sie sie lediglich konfigurieren und aktivieren.

Ab Mac OS 10.11 (El Capitan) ist die Version PHP leider immer noch 5.5. Ich kann mir vorstellen, dass sich dies mit 10.12 (Sierra) ändern wird, da PHP 5.5 EOL ist. Es kann jedoch nur PHP 5.6 sein.

Für die Installation von PHP 7 empfehle ich die Verwendung von PHP OSX . Sie bieten Paketinstallationen für PHP Versionen 5.3 bis 7.1 (aktuell). Es ist für Mac OS 10.6 und höher verfügbar (Snow Leopard).

Da es sich um eine Paketinstallation handelt, ist die Standardinstallation von Apache standardmäßig installiert. Sie müssen lediglich Ihre PATH aktualisieren und ihre PHP -Ini-Datei ändern. Beide sind in ihrer FAQ umrissen.

Wenn Sie ein Schritt-für-Schritt-Tutorial möchten, sehen Sie sich meinen letzten Beitrag über Update PHP unter Mac OS X an.

12
Jason McCreary

Wenn Sie Apache unter OS X Sierra verwenden, wird php7 standardmäßig nicht mehr mit dem Apache-Modul geliefert.

Mit der Veröffentlichung von macOS Sierra wird das Apache-Modul jetzt nicht standardmäßig erstellt. Wenn Sie es auf Ihrem System erstellen möchten Sie müssen PHP mit der Option --with-Apache installieren. Weitere Informationen finden Sie in den Brühoptionen php70.

Versuchen Sie eine Neuinstallation mit der Flagge:

brew reinstall php70 --with-Apache
4
Flo Schild

Wenn Sie $ apachectl -t ausführen, werden alle Probleme mit Ihrer aktuellen Konfiguration angezeigt. Als ich es lief, bekam ich folgendes:

httpd: Syntaxfehler in Zeile 171 von /private/etc/Apache2/httpd.conf: /Usr/local/opt/php70/libexec/Apache2/libphp7.so kann nicht in .__ geladen werden. Server: dlopen (/usr/local/opt/php70/libexec/Apache2/libphp7.so, 10): Symbol nicht gefunden: _ldap_control_find\n Verweist von: /usr/local/opt/php70/libexec/Apache2/libphp7.so\n Erwartet in: /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP\n in /usr/local/opt/php70/libexec/Apache2/libphp7.so

Ich kann diese Problemumgehung auf github bestätigen - die Installation des Pakets ohne LDAP-Unterstützung verhindert diesen Fehler:

brew reinstall php70 --without-ldap

3
HPierce

Ich hatte das gleiche Problem und es ging weg, als ich diese Zeile in /etc/Apache2/httpd.conf auskommentierte.

LoadModule php5_module libexec/Apache2/libphp5.so
3
dmac

Keine direkte Lösung für Ihr Problem, aber ich hatte unzählige Probleme mit php unter OS X. Vor kurzem versuchte ich, OCI-Bibliotheken nach einem Upgrade auf El Capitan zum Laufen zu bringen. 

Ich habe es aufgegeben, es jetzt zu verwenden, und begann, Docker für meine Entwicklung zu verwenden. Ich finde es eine weitaus bessere Lösung und Sie können sogar mehrere Umgebungen auf derselben Codebasis einrichten, was zum Testen verschiedener Versionen sehr nützlich ist.

Docker ist unter OS X sehr einfach einzurichten und verfügt über eine große Auswahl an vorgefertigten Containern im Repository. Sie müssen lediglich den Mount-Punkt installieren und als Quellverzeichnis festlegen und den Port verwenden, auf den Sie zugreifen können. 

3
Ben Cummins

Ich entdecke heute einen neuen Pfad zum Laden der verschiedenen PHP-Bibliotheken in der Datei httpd.conf (/usr/local/etc/httpd/httpd.conf): 

### OLD VERSION (NOT WORKING NOW)  ###
#LoadModule php5_module    /usr/local/opt/php56/libexec/Apache2/libphp5.so
#LoadModule php7_module    /usr/local/opt/php70/libexec/Apache2/libphp7.so
#LoadModule php7_module    /usr/local/opt/php71/libexec/Apache2/libphp7.so
#LoadModule php7_module    /usr/local/opt/php72/libexec/Apache2/libphp7.so

### NEW VERSION ###
#LoadModule php5_module    /usr/local/opt/php56/lib/httpd/modules/libphp7.so
#LoadModule php7_module    /usr/local/opt/php70/lib/httpd/modules/libphp7.so
#LoadModule php7_module    /usr/local/opt/php71/lib/httpd/modules/libphp7.so
LoadModule php7_module    /usr/local/opt/php72/lib/httpd/modules/libphp7.so
1
vincent

Stellen Sie für die Benutzer, bei denen dieses Problem auftreten kann, sicher, dass Sie Apache mit "apachectl restart" neu starten können. In meinem Fall musste ich zunächst alle Prozesse von httpd mit dem Befehl "httpd stop" stoppen und dann Apache mit "apachectl start" starten.

0
Naresh Dhiman

Ich weiß, es ist ein sehr altes Thema, aber wenn Sie PHP aktualisieren, müssen Sie auch die Apache-Konfektionierung aktualisieren - zum Beispiel:

LoadModule php5_module libexec/Apache2/libphp5.so

ändern:

LoadModule php7_module libexec/Apache2/libphp7.so
0
Wordica