在wp-config.php中为本地构建和实时网站配置MySQL WordPress设置

时间:2016-10-10 17:13:25

标签: php mysql wordpress

我正在尝试编辑位于wp-config.php的WordPress的MySQL设置。我的数据库名称,密码和用户名与我的网站的实时版本和我的网站的本地版本不同。我正在尝试将此设置为我的本地构建的MySQL设置的一个版本,localhost以及网站的实时版本的不同设置,casestudies.splashworldwide.com。我在下面做了什么有什么问题?我怎么能做到这一点?

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'case-study-wp');

/** MySQL database username */
define('DB_USER', 'root');

/** MySQL database password */
define('DB_PASSWORD', 'root');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8mb4');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'casestudies', 'live.domain.url');

/** MySQL database username */
define('DB_USER', 'db_casestudies', 'live.domain.url');

/** MySQL database password */
define('DB_PASSWORD', 'password', 'live.domain.url');

/** MySQL hostname */
define('DB_HOST', 'live.domain.url');

4 个答案:

答案 0 :(得分:2)

这个if / else语句对我有用:

if($_SERVER['HTTP_HOST'] === 'live.domain.url') {
   define('DB_NAME', 'casestudies');
   define('DB_USER', 'db_casestudies');
   define('DB_PASSWORD', 'password');
   define('DB_HOST', 'localhost');
   define('DB_CHARSET', 'utf8mb4');
   define('DB_COLLATE', '');
 }else{
   define('DB_NAME', 'case-study-wp');
   define('DB_USER', 'root');
   define('DB_PASSWORD', 'root');
   define('DB_HOST', 'localhost');
   define('DB_CHARSET', 'utf8mb4');
   define('DB_COLLATE', '');
 }

答案 1 :(得分:0)

您只能在WordPress中配置一个define变量,并且您将覆盖WordPress提供的策略。

  

define() - 如果为单个define变量提供两个值,那么 PHP将永远不允许您以这种方式为单个定义名称定义两个值,并且它将覆盖并且仅采用任何一个人。

因此,建议每个站点只添加一个配置,并在上线时尝试更改站点凭据。

保持这一点:对于本地

/ ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'case-study-wp');

/** MySQL database username */
define('DB_USER', 'root');

/** MySQL database password */
define('DB_PASSWORD', 'root');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8mb4');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

对于直播网站,你有这个:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'casestudies');

/** MySQL database username */
define('DB_USER', 'db_casestudies');

/** MySQL database password */
define('DB_PASSWORD', 'password');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8mb4');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

答案 2 :(得分:0)

在页面顶部设置一个变量,如:

$live = false;

然后使用if语句定义如下信用:

if($live) {
  define('DB_NAME', 'casestudies');
  define('DB_USER', 'db_casestudies');
  define('DB_PASSWORD', 'password');
  define('DB_HOST', 'localhost');
  define('DB_CHARSET', 'utf8mb4');
}else{
  define('DB_NAME', 'case-study-wp');
  define('DB_USER', 'root');
  define('DB_PASSWORD', 'root');
  define('DB_HOST', 'localhost');
  define('DB_CHARSET', 'utf8mb4');
  define('DB_COLLATE', '');
}

然后您只需进行一次更改,在网站上线时将顶部$ live的值更改为TRUE。

答案 3 :(得分:0)

您可以在本地计算机中设置一个Envionment Variable,将其标识为开发计算机(并确保未在生产服务器上设置环境变量)。

然后在wp-config.php中,您可以轻松检查是否存在环境变量并相应地应用不同的配置:

if(getenv('IS_LOCAL')){
   define('DB_HOST', 'localhost');
   ....
}else{
   define('DB_HOST, 'mysql.myhost.com');
   ...
}

我认为这是一种比其他答案更简洁的方法,因为它需要对代码的干扰最小,并允许您通过简单地在那里启用环境变量来轻松调试生产WordPress安装。