在 Ubuntu 中设置开发环境

通常我们想编辑我们域的代码,但在生产网站上,这可能很危险。 对生产站点进行更改不仅可以让所有 Internet 看到未完成的更改,而且还可能导致显示错误。 作为一种解决方法,我们将创建一个测试域或“开发”域来解决站点的任何错误和更改。

作为警告,这是先进的技术工作。 可能会出错并导致您的活动域停机。 如果您不是 100% 有信心,那么租用一个系统可能是个好主意 admin 或开发人员为您复制域。

飞行前

  • 确保您以 root 用户身份登录。
  • 我将在 Liquid Web Core Managed Ubuntu VPS 服务器上工作。

第1步: 以 root 身份登录后,使用以下命令备份域以保存压缩版本。 必须拥有您的网站的副本,以防遇到任何问题。 用您的站点名称替换括号和“域名”。

tar cfv backup.[domainname].tar /document/root/of/the/domain/

第2步: 我们将把我们的备份文件 .tar 移到该文档根目录之外的某个位置,这样我们仍然可以访问数据,同时保证数据的安全。

mv backup.[domainname].tar /another/location/on/the/server

第 3 步: tar 命令创建了一个文件,该文件仅包含站点的一半,其中包含文件。 接下来,您将要复制主站点的数据库。

mysqldump [database_name] > /another/location/on/the/server/backup.[database_name].sql

第4步:创建新的开发帐户,就像您向服务器添加新域一样。 但是,您将创建一个可以命名为 dev 的子域。[domain].com。

第 5 步: 创建 dev 子域后,将文件从主文档根目录复制到新创建的 dev 文档根目录。 文档根目录是包含您的域的文件的位置,也称为“路径”。

要查找任一域的文档根位置,请运行以下命令。 通过替换 live 和 dev 域的“exampledomain.com”来查找文档根目录。

conf=$(apache2ctl -S | grep exampledomain.com | perl -n -e '/((/.*):/ && print "$1n"'); grep -i documentroot $conf

第 6 步: 找到域和开发域的文档根后,您需要复制文件。 使用最后一个命令的输出,您将插入文档根目录的路径。

rsync -avh /document/root/of/the/domain/ /document/root/of/the/new/dev/domain

第 7 步: 为 dev 域提供正确的所有权,因为以前的用户名仍然存在。 “dev_username”是默认用户,是通过创建新帐户生成的。 以下命令将为您更改所有权。

chown -R [dev_username]: /document/root/of/the/new/domain

第 8 步: 完成此操作后,您需要为 dev 域创建一个新的数据库和数据库用户,请务必保留所有这些信息,包括您设置的密码。 首先,通过运行以下命令进入 mysql 命令提示符:

mysql

接下来,创建数据库本身。

CREATE DATABASE [new_database_name];

在我们的下一个命令中,我们创建用户及其密码。 确保这是一个唯一的用户名,到目前为止未使用。

CREATE USER '[select_new_username]'@'localhost' IDENTIFIED BY '[password]';

第 9 步: 授予用户对数据库的权限。

GRANT ALL PRIVILEGES ON [new_database_name] TO '[new_username]'@'localhost' WITH GRANT OPTION;

然后通过键入“quit”并按回车退出 mysql:

quit

第 10 步: 返回根命令提示符后,您可以开始将原始数据库复制到新数据库中。

mysqldump [new_database_name] < /home/temp/backup.[database_name].sql

转储数据库后,您仍需要编辑域的配置文件。 通常,有些文件需要访问数据库并引用数据库、数据库用户和密码。 这些凭据需要更新为本教程第 8 步中之前创建的凭据。 如果您不确定这些文件的位置,请联系开发人员。 如果您正在使用 WordPress 网站,请继续阅读下一部分。 否则,如果您已使用新数据库信息更新了开发配置文件,请继续执行第 11 步。

编辑 WordPress 配置

幸运的是,WordPress 是最常用的内容管理系统之一。 WordPress 易于配置,我们将在 wp-config.php 中提供有关如何更改数据库和数据库用户的简短教程。 首先,移动到新的文档根目录。

cd /document/root/to/the/dev/domain

在那里,您将使用您喜欢的文本编辑器(例如 vim 或 nano)编辑 wp-config.php。

nano wp-config.php

在 wp-config.php 文件中,您将看到如下所示的部分。 从那里,您将使用您在本教程中创建数据库的信息来编辑突出显示的字符。

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'new_database_name');
/** MySQL database username */
define('DB_USER', ‘new_database_user');
/** MySQL database password */
define('DB_PASSWORD', 'password');

在数据库中,清除所有提及的原始域并将它们替换为 dev 域。 为了 example 使用 WordPress,您需要在 _options 表中更改“home”和“siteurl”两个条目。 这些可以使用 WP-CLI 快速更改,这是一个用于与 WordPress 站点交互和管理的命令行工具。 要安装 WP-CLI,请遵循这些说明并继续下一步。

如果您确实有一个 WordPress 网站,一旦您安装了 WP-CLI,您将需要运行以下命令:

su - [dev_username]
cp public_html
wp option update siteurl https://dev.domain.com
wp option update home https://dev.domain.com
exit

有时插件或主题会提到数据库中的原始域。 如果 dev 域的某些部分无法正常工作,尤其是插件或主题,您可能需要联系开发人员以查看原始域名在数据库中是否仍然有效。

使用 WP-CLI 替换名称后,您将正式创建一个开发域。

第 11 步: 要完成本教程,您有两个选择:将 A 记录添加到您的 DNS 以在线查看您的开发站点或编辑您的本地主机文件以仅在您的计算机上查看。 对于我们的 Liquid Web 客户,如果您在设置开发环境时可能遇到问题,请随时联系 The Most Helpful Humans™。