从 php 脚本运行 git pull

2023-11-21

我正在尝试完美的工作流程,使用 Git、GitHub 和 SSH,除了运行命令之外,我已经设置好了一切git pull来自 PHP.

当我跑步时exec('git pull') i get:

无法创建目录“/.ssh”。主机密钥验证失败。 fatal:远端意外挂断

如果我在终端(以 root 身份)运行它,它工作得很好,但我需要这个钩子才能从接收后 URL (Github) 工作。

If i do exec('whoami') i get apache.

这是来自 mediatemple 的 CentOS 的 (dv)。


如果你想apache(用户)为了能够从 git 拉取,您必须为 apache 创建一个 ssh 密钥,然后将其添加到 github 上的只读密钥中。

流程是这样的(根据您的需要进行调整)

usermod -s /bin/bash apache
su apache
cd ~
ssh-keygen # work through the keygen dance (added a dash)

上传(这里的波浪号指的是apache的homedir)~/.ssh/id_rsa.pub到 github 并允许 apache 访问它需要从中提取的任何存储库。

然后你可以再次在服务器上测试su'ing 到 apache 并运行git pull

su apache
cd ~/working-copy
git clone my-project

一旦工作正常,您应该能够运行git pull通过 PHP。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 php 脚本运行 git pull 的相关文章

随机推荐

  • jquery ctrl+enter 作为在文本区域中输入

    I am trying to reproduce standard instant messenger behavior on TEXT area control enter works as send button ctrl enter
  • 如何在不使用更新数据库的情况下生成启用了迁移的 EF6 数据库?

    在 EF5 中 我依赖于这样一个事实 我可以使用以下命令从模型重新创建数据库Database CreateIfNotExists 我会根据需要生成迁移 但永远不会将它们签入源代码管理 因为它们往往是开发周期的工件 然后每个开发人员都会根据需
  • iTextSharp - 在电子邮件附件中发送内存中的 pdf

    我在这里问了几个问题 但仍然遇到问题 如果您能告诉我我的代码中做错了什么 我将不胜感激 我从 ASP Net 页面运行上面的代码并得到 无法访问关闭的流 var doc new Document MemoryStream memoryStr
  • 字符串数组长度显示为 1,即使调用后数组为空,用逗号 (,) 分割 [重复]

    这个问题在这里已经有答案了 这是我的代码 serialNumbers String serialArray serialNumbers split int arrayLength serialArray length 即使serialArr
  • 我可以观看另一个班级的 NSNotification 吗?

    我正在尝试了解 NSNotificationCenter 如果我的应用程序代理中有这样的内容 NSNotificationCenter defaultCenter addObserver self selector selector som
  • shell 中的浮点比较

    您能否向我建议在 Bash 脚本中进行浮点比较的语法 我理想地希望将其用作if陈述 这是一个小代码片段 key1 12 3 result 12 2 if result lt key1 then some code here fi bc是你的
  • 检测字符串中的 CJK 字符 (C#)

    我正在使用 iTextSharp 生成一系列 PDF 使用 Open Sans 作为默认字体 有时 姓名会插入 PDF 的内容中 然而我的问题是 我需要插入的一些名称包含 CJK 字符 存储在 SQL Server 中的 nvarchar
  • 如何增加 MongoDB 中的现有值

    我在用MongoDB 的 Stitch 平台 我想存储一个value and a count与数据库中的该值相关联 现在value可能不是第一次出现 所以我想插入value with count 1 我可以用update 使用以下命令更新
  • 实体框架无法识别唯一键

    我有两张桌子 Reports and Visualizations Reports有一个字段 VisualizationID 这指向Visualization通过外键的同名字段 它还具有在现场声明的唯一密钥 VisualizationID不
  • 有没有办法忽略 UNIX 排序中的标题行?

    我有一个固定宽度字段文件 我正在尝试使用 UNIX 在我的例子中是 Cygwin 排序实用程序对其进行排序 问题是文件顶部有一个两行标题 该标题被排序到文件底部 因为每个标题行都以冒号开头 有没有办法告诉 sort 将前两行传递给未排序的
  • 如何在 AJAX 请求中实现 jQuery 旋转图像

    我有一个 jQuery AJAX 请求 我想在请求加载时显示 ajax spinner gif 然后在请求成功后消失 任何人都可以建议将其实现到下面的 jquery 代码中的最佳方法 function updateCart qty rowi
  • 使用 MySQL 查找最近的重复 ID

    我用来做 SELECT email COUNT email AS occurences FROM wineries GROUP BY email HAVING COUNT email gt 1 根据他们的电子邮件查找重复项 但现在我需要他们
  • Excel - 将 JavaScript/Unix 时间戳转换为日期

    我想知道如何在 Excel 中将时间戳转换为日期 JavaScript 时间戳 1486812409161 Unix时间戳 1486812409 Excel 函数 公式可以转换为以下内容 2 11 2017 11 26 AM 或任何人类可读
  • java中双精度乘法的精度?

    java中双精度值的乘法运算符的保证精度是多少 例如 2 2 100 是 220 00000000000003 但 220 是双精度数 220 00000000000003 是 220 之后的下一个双精度值 乘法工作正常 但是2 2不能精确
  • SwipeRefreshLayout setRefreshing() 最初不显示指示器

    我有一个非常简单的布局 但是当我打电话时setRefreshing true in onActivityCreated 我的片段 它最初没有显示 它仅在我进行拉动刷新时显示 有什么想法为什么它最初没有出现吗 片段 xml
  • Weak_ptr 如何知道共享资源已过期?

    考虑以下代码 include
  • 源代码控制 - 如果、为什么、如何开始? [复制]

    这个问题在这里已经有答案了 可能的重复 使用源代码管理 因此 尽管 Stack Overflow 上确实有几十个关于版本控制的内容 但我找不到好东西来回答我的所有问题 如果您有任何话要说或发布链接 请在此处进行 1 需要从版本控制入手吗 虽
  • 基于要在 MSBUILD 中使用的用户定义目录创建 wix 片段文件的最佳方法

    本着 Si 提出这个问题的精神 WiX 技巧和技巧 我正在尝试确定基于目录创建 wix 片段的最佳方法 可以这么说 文件收获 例如 在 bin release 文件夹下 我可以有许多不同的文件夹以及我想在片段中轻松捕获的文件 我一直通过输入
  • Android Systrace 跟踪文件格式

    Android systrace工具 调用atrace通过亚行工具 但是 我不太了解跟踪文件的格式 显然它与linux非常相似ftrace工具有一些差异 主要区别在于它不使用系统映射文件 但它将所有信息包含到跟踪文件中 此外 还有 Andr
  • 从 php 脚本运行 git pull

    我正在尝试完美的工作流程 使用 Git GitHub 和 SSH 除了运行命令之外 我已经设置好了一切git pull来自 PHP 当我跑步时exec git pull i get 无法创建目录 ssh 主机密钥验证失败 fatal 远端意