一个星期以来,我一直在尝试让 Kalabox 使用具有与 Pantheon 的嵌套 Web 根目录的 WordPress 安装,但都失败了。我找到了一些很棒的资源,但其中很多是针对 Drupal 的,它们似乎并没有转化为 WP 安装,就像 Tandem 在这里发表的一篇很棒的文章:https ://www.thinktandem.io/blog/2017/ 05/20/使用-pantheon-s-nested-docroot-with-kalabox/
有没有人有一个可行的快速演练?谢谢!
我想到了!这是它所需要的:
确保你已经在你的机器上安装了 Kalabox。如果您尚未安装 Docker,这也将安装它。现在,打开你的终端。
mkdir -p ~/Kalabox
cd ~/Kalabox
kbox create pantheon
# follow the prompts to clone down your Pantheon site
这是真正的工作开始的地方。确保您位于主 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 错误。这是我们正在努力解决的问题!
这部分是秘方。我们必须进入 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
以返回到您的正常命令行。
确保您在~/Kalabox/<your-site-name>
目录中,然后键入kbox restart
以确保您已从 Kalabox 缓存中清除所有内容。Kalabox 将为您停止并重新启动您的站点。完成后,在浏览器中访问 http://.kbox.site 以查看您的作品!
~/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');