我试图在LAMP堆栈服务器上为Hugo设置一个连续的部署脚本,而我遇到的最后一个问题是让Hugo运行。
背景
我在VPS上安装了Hugo和PHP,对于我的应用程序,有两个目录:
public,我的真实网站就住在这里。hugo,我所有的雨果装置都是从GitHub上拉进来的。当我合并到GitHub分支中时,我正在使用一个deploy.php web钩子来平平我的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在那个目录中无法访问”之类的东西。
所以..。我遗漏了什么?提前感谢!
发布于 2018-01-12 06:00:35
检查这是否是路径问题,这意味着默认情况下,bash会话不会仅仅因为您位于正确的文件夹而执行程序:您必须指定它的路径(在您的例子中是:当前文件夹)
这意味着:将&& hugo替换为&& ./hugo
或者,正如OP Chris Ferdinandi (comments)所做的那样,您可以使用绝对路径:
我使用ssh进入服务器并运行
which hugo以获得适当的路径,并将&& hugo替换为该路径。
https://stackoverflow.com/questions/48218338
复制相似问题