【发布时间】:2018-06-21 10:45:32
【问题描述】:
我正在尝试在 LAMP 堆栈服务器上为 Hugo 设置持续部署脚本,而我遇到的最后一个问题是让 Hugo 运行。
背景
我在 VPS 上安装了 Hugo 和 PHP,对于我的应用,有两个目录:
-
public,我的实际网站所在的位置。 -
hugo,我的整个 Hugo 设置都是从 GitHub 中提取的。
当我合并到 master 分支时,我正在使用 GitHub webhook ping 我的 deploy.php 脚本。这是该脚本的相关部分:
// 1. Pull the latest build from GitHub
exec('cd /path/to/hugo && git fetch --all && git reset --hard origin/master');
// 2. Run Hugo to compile any new posts and pages into HTML
exec('cd /path/to/hugo && hugo');
// 3. Copy the files in the /public directory from Hugo into the /public app directory
exec('cd /path/to/hugo && cp -r /path/to/hugo/public/. public');
发生了什么
项目 1 和 3 运行。第 2 项没有。
更明确地说:最新的构建来自 GitHub,我提前构建的任何文件都从 Hugo 构建复制到 /public 目录中。
不过,我无法让 hugo 通过 exec() 运行,而且我不完全确定原因。
如果我在终端窗口中通过 SSH 连接到服务器,cd 进入 /path/to/hugo 目录,然后在那里运行 hugo,一切都按预期编译,这样就消除了诸如“可能 Hugo 安装错误”或“也许在那个目录中无法访问 Hugo”。
那么...我错过了什么?提前致谢!
【问题讨论】:
标签: php git github continuous-deployment hugo