Я хочу переместить все мои сайты в GitHub для всех очевидных преимуществ. Я не большой поклонник командной строки, поэтому мне нравится GitHub, потому что это позволяет мне не касаться всего этого. Настройка репозитория на GitHub, а затем синхронизация его с моим компьютером достаточно проста. Мне нужно иметь возможность автоматически переходить от GitHub к веб-серверу, поэтому, когда я обновляю что-то локально в главном ветви, синхронизируйте его с GitHub, он переходит в прямом эфире на сайт. Из Googling объекта кажется, что большинство методов требуют командной строки или кажутся довольно сложными. Я хочу сделать это примерно с 15-20 сайтами (многие из которых размещены на разных серверах от разных клиентов). Я хочу найти вариант, который входит в мой набор навыков и не занимает 2-3 часа на сайт. Кто-нибудь знает лучший и самый простой способ настроить это?Перемещение с GitHub на веб-сервер
ответ
Часть, которая является сложным является webhook on GitHub
Каждый репозиторий GitHub имеет возможность взаимодействовать с веб-сервером, когда хранилище выталкивается.
Это означает, что на вашем веб-сайте должен быть процесс прослушивания этих сообщений JSON, отправленных GitHub после получения фиксации.
Вы можете увидеть несколько примеров таких слушателей, как этот webhook-deployer, с auto.php (для сервера PHP):
<?php
// Prevent accidental XSS
header("Content-type: text/plain");
// Run the script
if ($_POST['payload']) {
shell_exec("./pull.sh");
}
Этот проект GitHub рекомендует ключ SSH с не ключевой фразы, которую я согласен сначала (для проверки).
Однако, особенно для частных проектов, лучше всего запускать ssh-agent и управлять защищенной парольной фразой ssh.
Как Яноша comments:
- Если хранилище GitHub является открытым, то он даже не нужен.
- Если репо является закрытым, то он нуждается в нем, но это не следует воспринимать так легко. Если возможно, он должен использовать ключевой агент.
Если это слишком сложно, он может использовать выделенный SSH-ключ без кодовой фразы только для этого развертывания, и этот ключ никогда не должен покидать ПК развертывания.
Почему вы поощряете SSH-ключи без кодовой фразы? Если репозиторий GitHub является общедоступным, то он даже не нужен. Если репо является приватным, то он нуждается в нем, но это не следует воспринимать так легко. Если возможно, он должен использовать ключевой агент. Если это слишком сложно, он может использовать выделенный SSH-ключ без кодовой фразы только для этого развертывания, и этот ключ никогда не должен покидать ПК развертывания. – janos
@janos очень хорошие моменты. Я изменил ответ и включил в него свои баллы, для большей наглядности. – VonC
Я знаю, что этот билет старый, но для тех, кто находит это каким-то образом, проверку dploy.io. Это размещенная служба, созданная специально для развертывания вашего репо из GitHub/Bitbucket на ваш сервер. Он поддерживает команды SFTP/FTP/S3/Heroku/SSH и многое другое.
Отказ от ответственности: Я работаю на dploy.io
Вы можете посмотреть на этот PHP скрипт:
https://github.com/JohannesHoppe/easy-git-deploy
(Это делает мерзавец клон, мерзавец тянуть, мерзавец толчок для вас)
С нескольких лет я управляю всеми установками wordpress с этим скриптом.
Подсказка: Если вы используете общедоступную среду хостинга, то пределы сценария могут прервать первое исполнение.В этом случае вход через SSH и сделать первый клон вручную:
git clone 'https://user:[email protected]//github.com/user/repo.git'
Здесь вы также можете вручную подтвердить отпечаток ключа SSH.
Второй совет: Вы должны защитить каталог файлом .htaccess/.htpasswd.
Первым шагом будет научиться использовать командную строку. Вы направляетесь к какой-то довольно развитой схеме, и без использования командной строки вы не получите очень далеко. Кроме того, будьте осторожны, вероятно, есть некоторые файлы, которые вы не ставите в github (изображения и документы могут не требовать управления исходным кодом), а также базы данных для развертывания, и это не будет сделано, как магия ... Я думаю, что вы должны look for - инструмент развертывания –
Независимо от того, используете ли вы OSX, этот удобный графический интерфейс, основанный на графическом интерфейсе (я также использую это для некоторых материалов WordPress): http://eppz.eu/blog/push-git-to-ftp/ – Geri
Возможно, вам понадобится использовать PAAS, например https://www.heroku.com/, который поддерживает развертывание через простой push, т.е. 'git push heroku master' –