web-dev-qa-db-fra.com

WordPress Liens permanents sur Mac OSX Server 5 (El Capitan)

J'ai plusieurs sites fonctionnant sur un serveur Mac Mini sous OSX Server (El Capitan). J'utilise WordPress sur un site et je n'ai pas réussi à faire fonctionner les permaliens correctement.

J'ai suivi les instructions de cet article: https://wordpress.org/support/topic/getting-htaccess-working-for-permalinks-on-mac-osx-server?replies=3

  • Mon dossier racine Web est défini dans/Bibliothèque/Serveur/Web/Données/Sites.
  • J'ai créé un fichier .htaccess dans mon répertoire de sites Web (/ Bibliothèque/Serveur/Web/Données/Sites/site Web)
  • J'ai activé mod_rewrite et défini le paramètre AllowOverride sur Tous dans mon fichier httpd.conf.
  • Je me suis assuré que le fichier httpd.conf est accessible en écriture.
  • Lorsque je modifie le permalien (au format /% postname% /) et que je clique sur Enregistrer, un message indiquant "Structure de permalien mise à jour" s'affiche.
  • Quand je sauve une nouvelle page, elle semble donner la structure correcte de permalien (sample-page /)
  • Lorsque j'essaie d'ouvrir la page, j'obtiens une erreur 404.

Sur la base de la suggestion ci-dessous, j’ai jeté un coup d’œil au journal de mon serveur. Le journal a donné cette sortie:

[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

Ceci est une nouvelle installation de WordPress sans plugins. Comment puis-je obtenir que cela fonctionne correctement? Je lutte avec cela depuis un moment maintenant.

Je vous remercie.

2
mattbowlby

Je vérifierais quelques petites choses

Apache2 logs

  • ouvrir un terminal
  • Vérifier les journaux d'erreur à tail -f /var/log/Apache2/error_log
  • Vérifier les journaux d'accès à tail -f /var/log/Apache2/access_log

WordPress

  • Vérifiez .htaccess a les règles correctes pour la configuration de base
  • active le débogage wp pour voir si vous pouvez enregistrer d'autres erreurs lorsque la redirection se produit

voici comment vous activez la journalisation WP

  • Ajouter dans wp-config.php avant le /* That's all, stop editing! Happy blogging. */ ces 3 lignes de code

Cela créera un fichier debug.log dans le dossier wp-content

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

Essayez ensuite d’accéder à votre URL et de rechercher dans vos journaux toute information pendant que vous obtenez votre erreur 404.

Vérifiez ces informations et signalez-les si vous trouvez quelque chose d'étrange. Votre configuration me semble bien telle quelle. Mais vous pourriez manquer quelque chose d'autre. C'est pourquoi la vérification de vos journaux devrait fournir plus d'informations si vous avez une configuration manquante.

EDIT

Je crois que votre problème est avec la directive DirectoryIndex

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 utilise le fichier index.php situé derrière la scène pour convertir les liens permanents en vars de requête. Mais actuellement, votre serveur Web n'est pas configuré pour lire les fichiers index.php (très probablement, il autorisera uniquement les fichiers index.html). Vous devrez donc ajouter ce fichier à votre directive DirectoryIndex.

localisez votre httpd.conf (probablement dans /private/etc/Apache2/httpd.conf)

puis

  • Sudo nano /private/etc/Apache2/httpd.conf
  • Recherchez dans le fichier (ctrl + w) DirectoryIndex

et ajoutez index.php à ce bloc

<IfModule dir_module>
  DirectoryIndex index.php index.html
</IfModule>
  • Quittez nano avecctrl + xet répondez à y pour enregistrer le fichier modifié.
  • Testez votre configuration Sudo apachectl -t
  • Redémarrez Apache Sudo apachectl restart

Cela indiquera à Apache de commencer par rechercher dans le répertoire de votre site les fichiers index.php. Si aucun fichier n'est trouvé, il essaiera de rechercher les fichiers index.html.

Cela devrait résoudre votre problème.

2
bynicolas