it-swarm.com.de

WordPress Permalinks unter Mac OSX Server 5 (El Capitan)

Ich habe mehrere Standorte auf einem Mac Mini-Server mit OSX Server (El Capitan). Ich verwende WordPress auf einer Website und konnte die Permalinks nicht richtig zum Laufen bringen.

Ich habe die Anweisungen in diesem Beitrag befolgt: https://wordpress.org/support/topic/getting-htaccess-working-for-permalinks-on-mac-osx-server?replies=3

  • Ich habe meinen Webstammordner unter/Library/Server/Web/Data/Sites festgelegt
  • Ich habe in meinem Websiteverzeichnis (/ Library/Server/Web/Data/Sites/website) eine .htaccess-Datei erstellt.
  • Ich habe mod_rewrite aktiviert und die AllowOverride-Einstellung in meiner httpd.conf-Datei auf All gesetzt.
  • Ich habe dafür gesorgt, dass die httpd.conf-Datei beschreibbar ist.
  • Wenn ich den Permalink ändere (um /% postname%/zu formatieren) und auf Speichern klicke, wird die Meldung "Permalink-Struktur aktualisiert" angezeigt.
  • Wenn ich eine neue Seite speichere, scheint sie die richtige Permalink-Struktur zu haben (Beispielseite /)
  • Wenn ich versuche, die Seite zu öffnen, wird eine 404-Fehlermeldung angezeigt.

Aufgrund des Vorschlags unten habe ich mir mein Serverprotokoll angesehen. Das Protokoll ergab folgende Ausgabe:

[Sat Aug 13 09:15:28.081255 2016] [autoindex:error] [pid 7076] [client 17.151.38.202:49836] AH01276: Cannot serve directory /Library/Server/Web/Data/Sites/www.ecumene.com/: No matching DirectoryIndex (index.html,index.php,default.html) found, and server-generated directory index forbidden by Options directive
[Sat Aug 13 09:16:44.879836 2016] [mpm_prefork:notice] [pid 6994] AH00169: caught SIGTERM, shutting down
[Sat Aug 13 09:16:49.596197 2016] [mpm_prefork:notice] [pid 7117] AH00163: Apache/2.4.18 (Unix) LibreSSL/2.2.7 mod_wsgi/3.4 Python/2.7.10 PHP/5.5.36 configured -- resuming normal operations
[Sat Aug 13 09:16:49.596277 2016] [core:notice] [pid 7117] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND -f /Library/Server/Web/Config/Apache2/httpd_server_app.conf -E /var/log/Apache2/error_log'
[Sat Aug 13 09:16:50.291312 2016] [mpm_prefork:notice] [pid 7117] AH00169: caught SIGTERM, shutting down
[Sat Aug 13 09:16:55.105614 2016] [ssl:warn] [pid 7157] AH01916: Init: (www.ecumene.com:443) You configured HTTP(80) on the standard HTTPS(443) port!
[Sat Aug 13 09:16:55.181103 2016] [ssl:warn] [pid 7157] AH01916: Init: (www.ecumene.com:443) You configured HTTP(80) on the standard HTTPS(443) port!
[Sat Aug 13 09:16:55.242694 2016] [mpm_prefork:notice] [pid 7157] AH00163: Apache/2.4.18 (Unix) LibreSSL/2.2.7 mod_wsgi/3.4 Python/2.7.10 PHP/5.5.36 configured -- resuming normal operations
[Sat Aug 13 09:16:55.242740 2016] [core:notice] [pid 7157] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND -f /Library/Server/Web/Config/Apache2/httpd_server_app.conf -E /var/log/Apache2/error_log -D WEBSERVICE_ON'
postdrop: warning: unable to look up public/pickup: No such file or directory

Dies ist eine Neuinstallation von WordPress ohne Plugins. Wie bringe ich das zum Laufen? Ich habe jetzt eine Weile damit zu kämpfen.

Vielen Dank.

2
mattbowlby

Ich würde ein paar Dinge überprüfen

Apache2-Protokolle

  • öffne ein Terminal
  • Überprüfen Sie die Fehlerprotokolle unter tail -f /var/log/Apache2/error_log
  • Überprüfen Sie die Zugriffsprotokolle unter tail -f /var/log/Apache2/access_log

WordPress

  • Überprüfen Sie, ob .htaccess die richtigen Regeln enthält für die grundlegende Einrichtung
  • aktivieren Sie das wp-Debugging, um zu sehen, ob Sie beim Auftreten der Umleitung weitere Fehler protokollieren können

auf diese Weise aktivieren Sie die Protokollierung von WP

  • Fügen Sie wp-config.php vor /* That's all, stop editing! Happy blogging. */ diese 3 Codezeilen ein

Dadurch wird eine debug.log Datei im Ordner wp-content erstellt

define('WP_DEBUG', true);
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Versuchen Sie dann, auf Ihre URL zuzugreifen und in Ihren Protokollen nach Informationen zu suchen, während Sie den Fehler 404 erhalten.

Überprüfen Sie diese Dinge und melden Sie sich, wenn Sie etwas Seltsames finden. Dein Setup scheint mir in Ordnung zu sein. Aber Ihnen könnte noch etwas fehlen. Das ist der Grund, warum das Überprüfen Ihrer Protokolle mehr Informationen liefern sollte, wenn Sie eine Fehlkonfiguration haben.

EDIT

Ich glaube, Ihr Problem liegt in der DirectoryIndex-Direktive

Cannot serve directory /Library/Server/Web/Data/Sites/www.ecumene.com/: No matching DirectoryIndex (index.html,index.php,default.html) found, and server-generated directory index forbidden by Options directive

Wordpress verwendet die Datei index.php im Hintergrund, um Permalinks in Abfragevariablen zu konvertieren. Derzeit ist Ihr Webserver jedoch nicht zum Lesen von index.php-Dateien eingerichtet (höchstwahrscheinlich werden nur index.html-Dateien zugelassen). Sie müssen diese Datei daher Ihrer DirectoryIndex-Direktive hinzufügen

finden Sie Ihren httpd.conf (wahrscheinlich in /private/etc/Apache2/httpd.conf)

dann

  • Sudo nano /private/etc/Apache2/httpd.conf
  • Durchsuchen Sie die Datei (Strg + W) nach DirectoryIndex

und füge index.php zu diesem Block hinzu

<IfModule dir_module>
  DirectoryIndex index.php index.html
</IfModule>
  • Beenden Sie nano mit Strg + x und antworten Sie mit y, um die geänderte Datei zu speichern
  • Teste deine Konfiguration Sudo apachectl -t
  • Starten Sie Apache Sudo apachectl restart neu

Dadurch wird Apache angewiesen, zuerst in Ihrem Site-Verzeichnis nach index.php-Dateien zu suchen. Wenn keine gefunden werden, wird nach index.html-Dateien gesucht.

Dies sollte Ihr Problem beheben.

2
bynicolas