0

一个星期以来,我一直在尝试让 Kalabox 使用具有与 Pantheon 的嵌套 Web 根目录的 WordPress 安装,但都失败了。我找到了一些很棒的资源,但其中很多是针对 Drupal 的,它们似乎并没有转化为 WP 安装,就像 Tandem 在这里发表的一篇很棒的文章:https ://www.thinktandem.io/blog/2017/ 05/20/使用-pantheon-s-nested-docroot-with-kalabox/

有没有人有一个可行的快速演练?谢谢!

4

1 回答 1

1

我想到了!这是它所需要的:

1. 在万神殿中设置站点

2. 使用Kalabox将站点克隆到您的本地计算机

确保你已经在你的机器上安装了 Kalabox。如果您尚未安装 Docker,这也将安装它。现在,打开你的终端。

mkdir -p ~/Kalabox
cd ~/Kalabox
kbox create pantheon
# follow the prompts to clone down your Pantheon site

3.添加您的站点代码

这是真正的工作开始的地方。确保您位于主 Kalabox 目录中。我正在使用优秀的Advanced Wordpress On Pantheon作为这个应用程序的样板。但是你可以使用任何你想要的东西。

# replace text in < > with your site name
cd ~/Kalabox/<your-site-name>
rm -rf code/

# Clone this or copy your own site code into the code directory
git clone https://github.com/ataylorme/advanced-wordpress-on-pantheon.git code

如果您使用的是上面的高级 WordPress 安装,请同时键入以下行:

cd code/
./bin/local-build.sh

确保将代码添加到目录~/Kalabox/<your-site-name>/code/中。

您现在可以在浏览器上通过 http://.kbox.site 访问您的网站,但如果您有嵌套的 Web 根目录,您可能会看到 Nginx 500 错误。这是我们正在努力解决的问题!

4. 编辑 Kalabox 设置以允许嵌套的 Web 根

这部分是秘方。我们必须进入 Kalabox 设置的 Docker 容器并更改 nginx 配置文件。如果这一切对你来说都是无稽之谈,请不要担心。这些简单的说明应该可以帮助您做到这一点!回到终端!

docker ps

这会转储一个包含正在运行的 Docker 容器列表的表。找到在图像nginix下显示的那个。立即查看列中的左侧。注意、复制和/或写下该容器 ID 的前四个左右的字母。您将在下一个命令的一部分中使用它们:Container ID<container-id>

docker exec -i -t <container-id> bash

这将使用您的 nginx 容器打开一个伪远程 shell。耶!现在我们可以编辑 nginx 文件并让我们的网站正常运行!命令行可能发生了一些变化,将您的用户显示为root@<your-site-name>. 这意味着它奏效了。

nginx 容器默认没有下载文本编辑器。因此,我们将下载一个名为 Nano 的小型文本编辑器。

apt-get update
apt-get install nano

一旦这些命令完成运行,我们就可以编辑配置文件:

nano /etc/nginx/conf.d/default.conf

这将打开带有我们正在尝试编辑的配置文件的 Nano 编辑器。查看并更改以下行:

# This one is near the top of the file
# Before
root /code;
# After
root /code/web;

# These next two are near the bottom of the file.
# This exact line appears twice--once in the `location ~ ^/simplesaml/`
# block, and once in the `location ~ \.php$` block. Edit it in
# BOTH locations.
#
# Before
fastcgi_param SCRIPT_FILENAME /code/$fastcgi_script_name;
# After
fastcgi_param SCRIPT_FILENAME /code/web/$fastcgi_script_name;

完成后,键入<Ctrl-o> <Enter> <Ctrl-x>以保存您的工作并退出。您回到了 Docker 容器的伪 shell。键入exit以返回到您的正常命令行。

5. 重建 Kalabox 并进行测试!

确保您在~/Kalabox/<your-site-name>目录中,然后键入kbox restart以确保您已从 Kalabox 缓存中清除所有内容。Kalabox 将为您停止并重新启动您的站点。完成后,在浏览器中访问 http://.kbox.site 以查看您的作品!

额外的好东西

  • 升级到 PHP 7:~/Kalabox/<your-site-name>/kalabox.yml在您喜欢的编辑器中打开,并将第 33 行更改为php: 70.
  • 删除Undefined Index: NONCE_KEY错误:打开~/Kalabox/<your-site-name>/config/php/prepend.php并大致转到第 55 行,其中显示$_ENV['NONCE_SALT'] = getenv('NONCE_SALT');. 在它下面,添加一个类似的行:$_ENV['NONCE_KEY'] = getenv('NONCE_KEY');
于 2017-06-12T17:36:36.577 回答