Php 如何将WP mysql user/pass从localhost更改为server?
我刚刚在本地主机上创建了一个WP站点,并准备将其上传到生产服务器。这两个环境运行在具有相同库和php版本的相同操作系统上,但我为本地mysql安装设置的密码与生产服务器不同。所以,我想上传整个WP文件,一旦进入prod,我可以修改WP-config.php并更改db,但如果我不得不再次将代码拉到本地或迁移到另一台服务器,这从长远来看似乎是无法管理的Php 如何将WP mysql user/pass从localhost更改为server?,php,mysql,wordpress,Php,Mysql,Wordpress,我刚刚在本地主机上创建了一个WP站点,并准备将其上传到生产服务器。这两个环境运行在具有相同库和php版本的相同操作系统上,但我为本地mysql安装设置的密码与生产服务器不同。所以,我想上传整个WP文件,一旦进入prod,我可以修改WP-config.php并更改db,但如果我不得不再次将代码拉到本地或迁移到另一台服务器,这从长远来看似乎是无法管理的 因此,我的问题是如何做到这一点?您可以直接从数据库更改用户/密码。以下是步骤 在数据库中打开wp_users表。 选择要编辑的用户,然后单击编辑链接
因此,我的问题是如何做到这一点?您可以直接从数据库更改用户/密码。以下是步骤 在数据库中打开wp_users表。 选择要编辑的用户,然后单击编辑链接。 使用MD5更新密码,使用您的电子邮件地址更新用户电子邮件。 现在尝试使用更新的凭据登录。
希望这对您有所帮助。您可以通过在functions.php中添加此代码来更改特定用户的密码 wp_set_password$password$user_id 注意:一旦您重置为当前密码,请删除上述代码,否则每当用户访问您的网站时,将执行此代码 您可以使用插件从数据库更改用户名 将其安装在本地设置和生产服务器上。 从本地WP安装创建导出文件。 在生产WP安装时导入它,您的数据将正确导出。
请注意,我假设您的生产服务器上安装了WordPress。如果不是这样,您首先必须在那里安装WordPress,然后按照步骤操作。在“wp config.php”中为“localhost”和“production”服务器分别设置数据库参数,如下所示
if($_SERVER['SERVER_NAME']=="localhost") //change if local server name is different
{
$db_name='local_db_name';
$db_username='local_db_username';
$db_password='local_db_password';
$db_host='local_db_host';
}
else // production server database credentials
{
$db_name='production_db_name';
$db_username='production_db_username';
$db_password='production_db_password';
$db_host='production_db_host';
}
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', $db_name);
/** MySQL database username */
define('DB_USER', $db_username);
/** MySQL database password */
define('DB_PASSWORD', $db_password);
/** MySQL hostname */
define('DB_HOST', $db_host);
希望这有帮助。转到Phpmyadmin,选择您的数据库,然后单击导出选项卡 在那里,您可以以所需格式导出数据,然后使用“导入”选项卡将其导入回
对于页面或其他文件系统数据,您可以使用filezilla或其他ftp工具。我将如何做到这一点,如下所示:
//::1 is localhost on servers using ipv6, 127.0.0.1 is for ipv4
$localIpList = ['::1', '127.0.0.1'];
$databasePassword = 'productionPassword';
if (in_array($_SERVER['SERVER_ADDR'], $localIpList)) {
$databasePassword = 'localDevPassword';
}
这样做可以使它非常容易维护,而且服务器ADDR相当可靠。如果您使用的是不同于本地主机的开发服务器,那么使用带有in_array的阵列可以使您在将来添加IP变得非常容易。正确的处理方法是使用服务器环境变量: 我强烈建议您不要像其他人提到的那样,将密码或任何其他私人信息直接存储在wordpress wp配置文件中 您的本地设置将具有如下环境变量:
SetEnv DB_USER mylocaldbuser
SetEnv DB_NAME mylocaldbname
SetEnv DB_HOST mylocaldbhost
SetEnv DB_PASS mylocaldbpass
define('DB_NAME', $_SERVER['DB_NAME']);
define('DB_USER', $_SERVER['DB_USER']);
define('DB_PASSWORD', $_SERVER['DB_PASS']);
define('DB_HOST', $_SERVER['DB_HOST']);
然后,您的生产服务器将拥有自己的一组环境变量:
SetEnv DB_USER myproddbuser
SetEnv DB_NAME myproddbname
SetEnv DB_HOST myproddbhost
SetEnv DB_PASS myproddbpass
最后,您的wp-config.php文件如下所示:
SetEnv DB_USER mylocaldbuser
SetEnv DB_NAME mylocaldbname
SetEnv DB_HOST mylocaldbhost
SetEnv DB_PASS mylocaldbpass
define('DB_NAME', $_SERVER['DB_NAME']);
define('DB_USER', $_SERVER['DB_USER']);
define('DB_PASSWORD', $_SERVER['DB_PASS']);
define('DB_HOST', $_SERVER['DB_HOST']);
通过这种方式设置,您的wp-config.php文件不会在不同的环境中更改,因此您无需担心每次部署到prod时都会对其进行编辑。您也会因为没有公开wp-config中的任何敏感信息而犯下谨慎错误,它位于公共目录中。这意味着两个prod/local mysql数据库将具有相同的用户pass。。但是在我的示例中,他们没有。你是说要将所有sql表从开发服务器上载到生产服务器吗?除了开发服务器和生产服务器之间不同的用户表之外?他要求更改mysql密码,而不是wordpress用户的密码。我也是这样做的,只是有时候你需要检查$服务器['HTTP\U主机']。还有一件事——在本地服务器和生产服务器之间进行同步,在大多数情况下,您不需要同步根文件。仅仅是/wp内容/文件夹插件、主题和上传的竞争。当然还有数据库内容。这种方法的缺点是在wp config.php中公开敏感凭据。我同意,但这是WordPress的默认设置,WordPress本身将凭据保存在这里。问题是如何使用相同的'wp config.php',而不是更高端的安全性。这看起来更好,但设置env不会自动用数据填充$\u服务器变量。您是说$_ENV吗?嗯,您应该能够使用apache SetEnv指令在apache配置中设置$_服务器变量。