Mac OSX服务器5上的WordPress固定链接(El Capitan)

时间:2016-08-13 作者:matt

我有多个站点在运行OSX服务器(El Capitan)的Mac Mini服务器上运行。我在一个网站上运行WordPress,但无法使永久链接正常工作。

我遵循了这篇文章中的说明:https://wordpress.org/support/topic/getting-htaccess-working-for-permalinks-on-mac-osx-server?replies=3

我在/Library/Server/web/Data/Sites中设置了我的web根文件夹。htaccess在我的网站目录(/库/服务器/Web/数据/网站/网站)中,我启用了mod\\u rewrite,并将AllowOverride设置设置为我的httpd上的All。conf文件

  • 当我保存一个新页面时,它似乎给出了正确的永久链接结构(示例页面/)
  • 当我尝试打开该页面时,我得到一个404错误

    [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
    
    这是一个新安装的WordPress,没有插件。如何使其正常工作?我已经为此挣扎了一段时间了。

    非常感谢。

  • 1 个回复
    最合适的回答,由SO网友:bynicolas 整理而成

    我会检查一些东西

    Apache2 logs

    <打开终端检查错误日志tail -f /var/log/apache2/error_logtail -f /var/log/apache2/access_log

    WordPress

    <检查。htaccesshas correct rules 对于基本设置,请启用wp调试,以查看在重定向发生时是否可以记录更多错误,这是启用wp日志记录的方式

    加载项wp-config.php/* That\'s all, stop editing! Happy blogging. */ 这三行代码将创建调试。登录文件wp-content 文件夹

    define(\'WP_DEBUG\', true);
    define( \'WP_DEBUG_LOG\', true );
    define( \'WP_DEBUG_DISPLAY\', false );
    
    然后尝试访问您的url,并在收到404错误时检查日志中的任何信息。

    检查这些东西,如果你发现有什么不对劲的地方就报告。你的设置对我来说似乎很好。但你可能错过了其他东西。这就是为什么如果您缺少配置,那么检查日志应该提供更多信息的原因。

    EDIT

    我认为您的问题在于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正在使用index.php 将永久链接转换为查询变量。但当前您的web服务器未设置为读取index.php 文件(很可能只允许index.html 文件),因此您需要将此文件添加到DirectoryIndex 指令

    找到您的httpd.conf (可能在/private/etc/apache2/httpd.conf)

    然后

    • sudo nano /private/etc/apache2/httpd.confDirectoryIndex
    并添加index.php 到这个街区

    <IfModule dir_module>
      DirectoryIndex index.php index.html
    </IfModule>
    
    使用退出nanoctrl + x 和回答y 要保存修改后的文件,请测试配置sudo apachectl -tsudo apachectl restartindex.php 首先是文件,如果找不到,它将尝试index.html 文件。

    这应该可以解决您的问题。