Apache-Probleme nach dem Upgrade auf Yosemite

8

Mein Mac-Webserver funktioniert nach dem Upgrade auf Yosemite nicht mehr. Wenn ich apachectlin Terminal tippe, erhalte ich Folgendes:

httpd: Syntax error on line 527 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/+php-osx.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found: _unixd_config\n  Referenced from: /usr/local/php5/libphp5.so\n  Expected in: /usr/sbin/httpd\n in /usr/local/php5/libphp5.so

Wenn ich sudo apachectl [re]startnichts tippe, passiert nichts, als ob es gestartet wäre und ich es erneut tippe, heißt es, dass es bereits läuft. Außerdem ist der Bereich "Webfreigabeeinstellungen" installiert ( http://clickontyler.com/web-sharing/ ). Wenn ich den Schalter von "Aus" auf "Ein" stelle, wird immer noch angezeigt, dass er ausgeschaltet ist, obwohl sich der Schalter in der Position "Ein" befindet .

Welche Dateien wollen / müssen ihr sehen? Ich muss das wirklich so schnell wie möglich beheben.

Tom Oakley
quelle

Antworten:

6

Beachten Sie außerdem, dass das Yosemite-Installationsprogramm die gesamte Datei /private/etc/apache2/httpd.conf mit der neuen Standardkonfigurationsdatei für Apache 2.4 überschreibt.

Wenn beispielsweise ListenAnweisungen hinzugefügt wurden, sind diese verschwunden und müssen erneut hinzugefügt werden. Z.B:

Listen 127.0.0.1:81

Ich habe meine alte Konfiguration in der folgenden Datei gefunden, aber aufgrund von Unterschieden zu 2.2 sollte sie wahrscheinlich nicht direkt über die Datei http.conf kopiert werden:

/private/etc/apache2/httpd.conf~previous

Ein Upgrade-Handbuch finden Sie unter: http://httpd.apache.org/docs/2.4/upgrading.html

Stellen Sie sicher, dass alle zuvor enthaltenen zusätzlichen Konfigurationsdateien noch enthalten sind, und testen Sie die Konfiguration mit dem folgenden Befehl:

sudo apachectl configtest
Otto G.
quelle
Wie beantwortet das die Frage? Sie sollten nicht ändern müssen, welches PHP-Modul Sie nach dem Upgrade von Apache
laden
8

Das Problem tritt auf, weil Yosemite die neueste Version von Apache (2.4) installiert, während frühere Versionen von Mac OS X Apache Version 2.2 verwendeten

Aus dem Fehler geht hervor, dass Sie nicht die von Apple bereitgestellte Standardversion von PHP verwendet haben, sondern eine andere von liip.ch bereitgestellte Version. Durch Entfernen des # -Zeichens, wie von Nuttyx oben vorgeschlagen, wird die Apple-Version von PHP (5.5.14) geladen. Wenn Sie die von liip bereitgestellte Version weiterhin ausführen möchten, müssen Sie sie neu installieren, damit sie ordnungsgemäß in Apache 2.4 geladen wird. Eine ausführliche Erklärung finden Sie hier: ( http://blog.liip.ch/archive/2014/06/11/php-osx-available-for-os-x-10-10-yosemite.html )

Hinweis: Wenn Sie virtuelle Hosts verwenden, müssen Sie wahrscheinlich Ihre Konfigurationsdateien etwas ändern. Insbesondere müssen Sie Folgendes ändern:

2.2 Konfiguration:

Order allow,deny
Allow from all

2.4 Konfiguration:

Require all granted
John Dalton
quelle
4

Es scheint, dass Sie dies beheben können, indem Sie die #am Anfang der folgenden Zeile in der /etc/apache2/httpd.confDatei entfernen :

LoadModule php5_module libexec/apache2/libphp5.so
NuTTyX
quelle
1
Das hat es für mich getan!
Matthieu Riegler
1

Das Ausführen von 'sudo apachectl' ohne Argumente zeigt das Problem in den conf-Dateien. In meinem Fall hat das Upgrade von PHP das Problem behoben.

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6

Danach lief Apache erneut, aber ich musste die vhosts neu konfigurieren.

raoulsson
quelle
0

Während die obige Frage beantwortet wurde, gibt es eine andere Möglichkeit des gleichen Fehlers wie:

/private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_XYZ.so into server: dlopen(/usr/libexec/apache2/mod_XYZ.so, 10): image not found

Dies kann passieren, wenn Sie einen symbolischen Link erstellt haben, auf den im obigen Namen verwiesen wird und der nicht gefunden wird. Erstellen Sie zum Auflösen einen symbolischen Link, der den absoluten Pfad für die tatsächliche Datei und den gleichen für den angegebenen Symlink-Dateinamen angibt.

Onik
quelle