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
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.
Je vérifierais quelques petites choses
Apache2 logs
tail -f /var/log/Apache2/error_log
tail -f /var/log/Apache2/access_log
WordPress
voici comment vous activez la journalisation WP
wp-config.php
avant le /* That's all, stop editing! Happy blogging. */
ces 3 lignes de codeCela 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
DirectoryIndex
et ajoutez index.php
à ce bloc
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
y
pour enregistrer le fichier modifié.Sudo apachectl -t
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.