使用远程数据库的本地wordpress,ubuntu,apache2

时间:2016-12-20 20:59:19

标签: php linux wordpress apache ubuntu

我尝试使用此处提供的代码将我的本地wordpress安装连接到我拥有的域上的数据库: https://coderwall.com/p/ck8v4a/remote-database-with-local-wordpress-instance

define('WP_CACHE', true); $currenthost = $_SERVER['HTTP_HOST'];
$mypos = strpos($currenthost, 'localhost/wpdir');
if ($mypos === false) { 
    define('WP_HOME','http://example.org/wpDir/');
    define('WP_SITEURL','http://example.org/wpDir/'); 
} else { 
    define('WP_HOME','http://localhost');
    define('WP_SITEURL','http://localhost/wpDir/');
}

使用上面的配置我可以在本地打开网站,它正确加载导航和最近的帖子名称,所以db-connection似乎工作。 我不能使用链接,但找不到页面。

如果我将/wpDir/添加到define('WP_HOME'...和/或strpos($currenthost,...,它会被重定向到http://localhost/wpDir/home/(应该如此),但是我找不到网址错误。

我的localhost dir是标准的/var/www/html,这是我本地wordpress安装的地方。

任何想法如何解决这个问题?

更新:我重新开始研究这个问题,如果我可以设法使用远程数据库进行本地测试,那将会非常有用 我认为它可能是某种网址重写问题,但我寻找解决方案的所有努力都没有用......

1 个答案:

答案 0 :(得分:0)

不确定为什么它很难找到,但我设法做到了(另一种方式)基本上遵循wp-codex: https://codex.wordpress.org/Running_a_Development_Copy_of_WordPress 使用drop-in方法: 我的db.php文件中的代码如下所示:

<?php
// paste this in a (new) file, wp-content/db.php
add_filter ( 'pre_option_home', 'test_localhosts' );
add_filter ( 'pre_option_siteurl', 'test_localhosts' );
function test_localhosts( ) {
  if (strcasecmp($_SERVER['REQUEST_URI'], '/localCopyOfSite') == 0
      || strcasecmp(substr($_SERVER['REQUEST_URI'], 0, 17), '/localCopyOfSite/') == 0) {
     return "http://localhost/localCopyOfSite/";
  }
  else return false; // act as normal; will pull main site info from db
}