Aug012016

在 Mac 搭建 WordPress 开发环境遇到的几个问题

作者: 主机迷 分类: WordPress

既没有使用 MAMP,也没有安装 XAMPP,Apache是单独安装的,MySQL 部署在 Mac 的虚拟机里。对了,Mac 版本有点老,还是10.7.5。

安装完成后访问首页,报错:

Error establishing a database connection

确认并非wp-config.php设置错误,且MySQL是正常运行的。将wp-config.php的define(‘WP_DEBUG’, false)改为define(‘WP_DEBUG’, true)也没有打印更多信息,/var/log/apache2/error_log也没有输出错误信息。

检查数据,发现所有的表里数据都是空的。于是把线上的数据导入到开发环境的 MySQL,再次访问首页,竟然一片空白,什么错都不报了。推测是数据问题,毕竟线上数据的环境与本地不一样。最大的可能是模板了,线上使用的模板没有放到 Mac 本地目录。

在推测的同时做测试,在template-loader.php$template的值输出,结果为空,进一步印证了是模板的问题。

于是拷贝模板到本地,访问首页出现警告:

Notice: get_bloginfo was called with an argument that is deprecated
since version 2.2! The siteurl option is deprecated for the family of bloginfo() functions.

暂时不知道怎么解决,决定先切换模板为自带的模板,执行以下的 sql:

update wp_options  set option_value = 'twentysixteen'  where 
option_value ='yourtemplate' and option_name in('template','stylesheet'); 
//执行时yourtemplate要改为实际模板名

再次访问首页,发现跳转到线上网址去了,于是又修改数据,将 wp_options表的选型 siteurl 和 home 的值都改为http://127.0.0.1,这次终于能成功看到首页了。

当然,还需要配置 .htaccess,否则访问除了首页的其他页面会报404错误。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

遗留问题:
没有弄明白为什么在 Mac 安装 WordPress 时只生成了表没有生成数据。

后记:
Notice: get_bloginfo was called with an argument that is deprecated since version 2.2的问题,将wp-config.php的define(‘WP_DEBUG’, true)改回为define(‘WP_DEBUG’, false)就解决了


主机迷 is powered by Typecho