首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从PHP ()函数运行Hugo

从PHP ()函数运行Hugo
EN

Stack Overflow用户
提问于 2018-01-12 01:33:59
回答 1查看 278关注 0票数 2

我试图在LAMP堆栈服务器上为Hugo设置一个连续的部署脚本,而我遇到的最后一个问题是让Hugo运行。

背景

我在VPS上安装了Hugo和PHP,对于我的应用程序,有两个目录:

  1. public,我的真实网站就住在这里。
  2. hugo,我所有的雨果装置都是从GitHub上拉进来的。

当我合并到GitHub分支中时,我正在使用一个deploy.php web钩子来平平我的deploy.php脚本。下面是该脚本的相关部分:

代码语言:javascript
复制
// 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在那个目录中无法访问”之类的东西。

所以..。我遗漏了什么?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-12 06:00:35

检查这是否是路径问题,这意味着默认情况下,bash会话不会仅仅因为您位于正确的文件夹而执行程序:您必须指定它的路径(在您的例子中是:当前文件夹)

这意味着:将&& hugo替换为&& ./hugo

或者,正如OP Chris Ferdinandi (comments)所做的那样,您可以使用绝对路径:

我使用ssh进入服务器并运行which hugo以获得适当的路径,并将&& hugo替换为该路径。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48218338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档