PHP выполнить сценарий ssh ​​git pull без sudo (ошибка проверки хоста) - PullRequest
0 голосов
/ 17 октября 2018

Что я пытаюсь сделать

У меня есть git-репозиторий на bitbucket.После отправки в репозиторий с локального компьютера я хочу автоматически перетащить ветку master в свое веб-пространство.

Что я сделал до сих пор

Я подключился к своему серверуиспользуя ssh, создал ключ ssh и зарегистрировал открытый ключ на github.Я создал скрипт .sh, который извлекает ветку master, используя ssh - пока что, бог - все работает, когда я запускаю скрипт из командной строки / putty

В чем проблема

Я хочу запустить скрипт .sh с помощью webhook на bitbucket (могу указать URL).Для этого я создал файл .php в своем веб-пространстве:

<?php
$output = shell_exec('./deploy.sh 2>&1');
echo $output;

мой сценарий .sh выглядит следующим образом:

#!/bin/bash
git pull git@bitbucket.org:dualmeta/test.git master

Как уже говорилось, запуск сценария .sh с использованием puttyотлично работаетОднако, если я ввожу URL-адрес в файл .php в своем браузере, это выдаст мне ошибку:

Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Я уже провел некоторое повторное исследование и обнаружил, что у многих людей точно такая же проблема.Однако в моем случае у меня нет доступа root / sudo, потому что это арендованное веб-пространство, а не мой собственный vServer.

Есть ли шанс заставить это работать?

1 Ответ

0 голосов
/ 17 октября 2018

Вы должны добавить доступ www-data или apache user в ваш каталог git.

chown -R apache:apache git_directory

или

chown -R www-data:www-data git_directory

или

chmod o+rw -R git_directory

Используйте это тоже:

git config credential.helper store
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...