本地调试Wordpress

1663次阅读  |  发布于5年以前

Wordpress本地调试时,想将线上的环境同步一份到本地,本地代码与服务器保持同步,本地修改后可以及时预览。要做到这一点,需要解决2个问题:

资源引用

Wordpress 在设置完站点 URL 和主页 URL 后,所有的资源引用都指向线上地址,比如我线上地址是 112.108.3.78:3333 ,进入后台管理页,会直接跳转到 http://112.108.3.78:3333/wp-admin/ ,根本不会进入我本地的 http://localhost:8888/wp-admin ,原因很简单,WP 会从数据库读取这些配置信息,可以将 /wp-includes/option.php 中的 get_option 函数做一下修改:

function get_option( $option, $default = false ) {
  $BLOG_DEBUG = $_COOKIE["blog_debug"]; 

  if ( $BLOG_DEBUG && preg_match("/^https?:\/\/[\w-_.:]+$/", $BLOG_DEBUG)
    && ($option == 'siteurl' || $option == 'home') ) {
    return $BLOG_DEBUG;
  }
  // ...
}

上面代码的意思是,如果访问站点时,找到了名叫 blog_debug 的 cookie,则将数据库取出来的 siteurl 和 home 两个值提换成 blog_debug 对一个的 cookie。那么,我们只需要在本地打开的 http://localhost:8888/ 页面中写上:

document.cookie = 'blog_debug=http://localhost:8888';

如上,就可以完成本地调试了。

远程访问数据库

Linux 上安装数据库,默认只允许在 127.0.0.1 下访问,外部是访问不了的,比如通过 102.183.98.7:3306,设置比较简单:

# vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 注释下面这行
# binding-adress = 127.0.0.1

然后重启 mysql 就好了:

sudo /etc/init.d/mysql restart

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8