Вот скрипт bash:
#!/bin/bash
echo "$NODE_ENV"
(
echo $USER;
echo $PATH;
cd /opt/chat-staging/;
git pull;
NODE_ENV=staging;
echo "Set NODE_ENV to $NODE_ENV";
node leaderboard.js & node app.js;
echo "Started leaderboard.js";
echo "Started app.js";
)
echo "NODE_ENV is now $NODE_ENV"
Вот скрипт PHP:
<?php
exec('/bin/bash /opt/chat-staging/start_app.sh 2>&1', &$output, &$return_var);
print_r($output);
print $return_var;
?>
Я настроил его как ловушку github post-commit, но это вывод:
Array ([0] => [1] => www-data [2] => / usr / bin [3] =>
/ usr / lib / git-core / git-sh-setup: 90: sed: не найдено [4] => basename:
ошибка записи: Broken pipe [5] => / usr / lib / git-core / git-sh-setup: 212:
uname: not found [6] => Ошибка проверки ключа хоста. [7] => смертельно:
Удаленный конец неожиданно повесил трубку [8] => Установите NODE_ENV в промежуточное состояние [9]
=> /opt/chat-staging/start_app.sh: строка 11: узел: команда не найдена [10] => /opt/chat-staging/start_app.sh: строка 11: узел: команда не найдена
found [11] => Запущен leaderboard.js [12] => Запущен app.js [13] =>
NODE_ENV сейчас) 0
/ opt / chat-staging / принадлежит "www-pub"; в / etc / groups у меня есть "www-pub: x: 1000: www-data, root".
Так почему это не работает? У меня даже есть ключ RSA в /var/www/.ssh/id_rsa и открытый ключ добавлен как ключ развертывания GitHub.
РЕДАКТИРОВАТЬ, ДОБАВИТЬ
Я добавил git remote-v; к сценарию, прямо перед "git pull".
root@li70-243:/opt/chat-staging# su - www-data
$ bash /opt/chat-staging/start_app.sh
origin git@github.com:zackster/CompassionPit--Node-.git (fetch)
origin git@github.com:zackster/CompassionPit--Node-.git (push)
Already up-to-date.
В то время как я все еще вижу вывод PHP вроде ...
Array ([0] => origin git@github.com: zackster / CompassionPit - Node-.git
(выборка) [1] => origin git@github.com: zackster / CompassionPit - Node-.git
(нажать) [2] => мастер [3] => * репутация [4] =>
/ usr / lib / git-core / git-sh-setup: 90: sed: не найдено [5] => basename:
ошибка записи: Broken pipe [6] => / usr / lib / git-core / git-sh-setup: 212:
uname: не найдено [7] => / usr / lib / git-core / git-pull: 244: sed: не
found [8] => Ваша конфигурация указывает на слияние с реф
'reputation' [9] => с пульта, но такой ссылки не было получено.