尝试从我的本地计算机在客户的 Drupal 站点上工作
Trying to work on a client's Drupal site from my local machine
我有一个客户希望我更新他们的 Drupal 站点。我以前从未这样做过,我想在我的本地机器上处理它,以防出现问题。我什至不知道从哪里开始!
首先,我如何访问我客户的站点文件以便将它们放到我的计算机上?我试过将客户给我的信息输入 Cyberduck,但它不会给我访问权限。还有其他获取访问权限的方法吗?
此外,如何在本地托管它?我有 XAMPP,但我不确定如何使用它。
话虽这么说,但我发现了一些应该可以帮助我设置本地服务器的论坛。我就是不知道怎么把live服务器的文件传到我的电脑上。
我知道这是一个超级菜鸟问题,但我需要帮助。谢谢!
您的客户需要授予您访问这些文件的权限,以便您可以将它们放入 XAMPP 上的 htdocs,然后您需要数据库(也由客户提供),开始 XAMPP,创建localhost/phpMyAdmin
上的新数据库并导入站点的数据库。在项目代码上转到 sites/default/settings
并将数据库设置更改为您的本地设置。然后你可以去 localhost/{your-proyect}
它应该工作。
嗯,对于基本问题,您必须从客户那里获得正确的凭据。别无选择,真的:D
当您使用它时,您还需要该站点数据库的副本。
对于"how do I host it locally?"这个问题,我是这样处理的。
将网站纳入版本控制。
鉴于您已获得 (S)FTP 凭据,我猜该站点不受版本控制。如果这是正确的,那么这可能是您想要做的 第一件事。这将允许您跟踪您在本地站点上所做的与生产版本不同的更改。
- 在您的计算机上创建一个空目录。
- 导航到终端中的目录,然后 运行
git init
。
- 将
.gitignore
文件添加到该文件夹(您可以创建自己的文件,或使用 one customized for Drupal)。
- 将站点文件下载到步骤 1 中创建的目录中。
- 通过 运行 在终端中执行以下命令,将目录中的文件添加到 git 存储库:
git commit -am "First commit of Drupal files to repository."
有个不错的help page about working with Drupal in git on drupal.org.
创建并填充您的数据库。
- 从实时站点获取数据库转储。
- 在您的机器上创建一个新的数据库和数据库用户。
- 将数据库转储导入新数据库。
- 在
settings.php
或 settings.local.php
中记录数据库凭据并将它们存储在安全的地方,最好是在密码管理器中。
更改 settings.php
或 settings.local.php
中的数据库凭据以匹配您刚创建的数据库的凭据。
(为了安全和避免混淆,我总是使用与实时站点不同的名称、用户和密码创建本地数据库。这意味着如果您的本地凭据被泄露,实时站点不会,并且这意味着您无法意外地连接并更改实时站点的数据库。)
在XAMPP
中设置网络服务器
- 在 XAMPP 中创建一个名为例如
example.local
指向包含文件 index.php
的目录
在您的计算机上名为 /etc/hosts
的文件中添加以下行:
127.0.0.1 example.local
通过访问例如http://example.local
或 http://example.local/robots.txt
.
将本地更改移至生产站点
您将如何做到这一点在某种程度上取决于您客户的网络托管基础设施,以及您的客户使用的 Drupal 版本。但无论如何,对于所做的更改,您将有三个不同的关注点:
代码更改
您需要将对代码所做的更改部署回服务器。理想情况下,您可能会通过 Git 直接克隆到实时站点或(更好!)作为自动构建过程的一部分来执行此操作。听起来,您可能只需要 FTP 备份更改即可。
注意不要重新上传修改后的settings.php
或settings.local.php
文件!
内容更改
您可能需要在本地测试 some/all 内容更改,然后 在实时站点上重新创建它们。因为您的客户可能在您工作时对实时站点进行了更改,所以您不能冒险将本地数据库导入实时站点。
配置更改
配置更改应在代码中进行管理(即作为 1 的一部分。代码更改 以上)如果可能的话。在 Drupal 7 中,the Features module is usually the best way to accomplish this (here's an answer I wrote describing the Features workflow). Drupal 8 has the Configuration Manager。请注意,这两个工具都很难用好。
我有一个客户希望我更新他们的 Drupal 站点。我以前从未这样做过,我想在我的本地机器上处理它,以防出现问题。我什至不知道从哪里开始!
首先,我如何访问我客户的站点文件以便将它们放到我的计算机上?我试过将客户给我的信息输入 Cyberduck,但它不会给我访问权限。还有其他获取访问权限的方法吗?
此外,如何在本地托管它?我有 XAMPP,但我不确定如何使用它。
话虽这么说,但我发现了一些应该可以帮助我设置本地服务器的论坛。我就是不知道怎么把live服务器的文件传到我的电脑上。
我知道这是一个超级菜鸟问题,但我需要帮助。谢谢!
您的客户需要授予您访问这些文件的权限,以便您可以将它们放入 XAMPP 上的 htdocs,然后您需要数据库(也由客户提供),开始 XAMPP,创建localhost/phpMyAdmin
上的新数据库并导入站点的数据库。在项目代码上转到 sites/default/settings
并将数据库设置更改为您的本地设置。然后你可以去 localhost/{your-proyect}
它应该工作。
嗯,对于基本问题,您必须从客户那里获得正确的凭据。别无选择,真的:D
当您使用它时,您还需要该站点数据库的副本。
对于"how do I host it locally?"这个问题,我是这样处理的。
将网站纳入版本控制。
鉴于您已获得 (S)FTP 凭据,我猜该站点不受版本控制。如果这是正确的,那么这可能是您想要做的 第一件事。这将允许您跟踪您在本地站点上所做的与生产版本不同的更改。
- 在您的计算机上创建一个空目录。
- 导航到终端中的目录,然后 运行
git init
。 - 将
.gitignore
文件添加到该文件夹(您可以创建自己的文件,或使用 one customized for Drupal)。 - 将站点文件下载到步骤 1 中创建的目录中。
- 通过 运行 在终端中执行以下命令,将目录中的文件添加到 git 存储库:
git commit -am "First commit of Drupal files to repository."
有个不错的help page about working with Drupal in git on drupal.org.
创建并填充您的数据库。
- 从实时站点获取数据库转储。
- 在您的机器上创建一个新的数据库和数据库用户。
- 将数据库转储导入新数据库。
- 在
settings.php
或settings.local.php
中记录数据库凭据并将它们存储在安全的地方,最好是在密码管理器中。 更改
settings.php
或settings.local.php
中的数据库凭据以匹配您刚创建的数据库的凭据。(为了安全和避免混淆,我总是使用与实时站点不同的名称、用户和密码创建本地数据库。这意味着如果您的本地凭据被泄露,实时站点不会,并且这意味着您无法意外地连接并更改实时站点的数据库。)
在XAMPP
中设置网络服务器- 在 XAMPP 中创建一个名为例如
example.local
指向包含文件index.php
的目录
在您的计算机上名为
/etc/hosts
的文件中添加以下行:127.0.0.1 example.local
通过访问例如
http://example.local
或http://example.local/robots.txt
.
将本地更改移至生产站点
您将如何做到这一点在某种程度上取决于您客户的网络托管基础设施,以及您的客户使用的 Drupal 版本。但无论如何,对于所做的更改,您将有三个不同的关注点:
代码更改
您需要将对代码所做的更改部署回服务器。理想情况下,您可能会通过 Git 直接克隆到实时站点或(更好!)作为自动构建过程的一部分来执行此操作。听起来,您可能只需要 FTP 备份更改即可。
注意不要重新上传修改后的
settings.php
或settings.local.php
文件!内容更改
您可能需要在本地测试 some/all 内容更改,然后 在实时站点上重新创建它们。因为您的客户可能在您工作时对实时站点进行了更改,所以您不能冒险将本地数据库导入实时站点。
配置更改
配置更改应在代码中进行管理(即作为 1 的一部分。代码更改 以上)如果可能的话。在 Drupal 7 中,the Features module is usually the best way to accomplish this (here's an answer I wrote describing the Features workflow). Drupal 8 has the Configuration Manager。请注意,这两个工具都很难用好。