Подтвердить что ты не робот

Развертывание Laravel... есть стандартный способ?

Я начинаю серьезно использовать Laravel 4 в своих проектах. Я понимаю, что эта платформа имеет много преимуществ при разработке приложений RESTful. Но я понимаю, что нет единого мнения о том, как развертывание/публикация и приложение используют Laravel. Я по-прежнему использую FTP для передачи файлов на мой Хозяин. Но мой вопрос: есть ли стандартный способ сделать то же самое, но из Laravel? Я верен, полагая, что с небольшой изобретательностью можно создать что-то вроде php artisan publish [Имя производственного сервера и учетные данные SSH] в качестве параметров.

Я прочитал что-то интересное из Anahkiasen/rocketeer и Кристофера Питта, оба отличных источника, но есть консенсус или стандартный способ публикации приложений с использованием laravel?

4b9b3361

Ответ 1

Это не проблема Laravel/вопрос, вы должны спросить на форуме dev-ops, что они сделают, чтобы развернуть приложение PHP, подобное вашему.

Ваше приложение Laravel является в основном PHP-приложением, некоторые пакеты предоставляются Composer, поэтому это скорее приложение Composer, чем Laravel, но у вас могут быть некоторые потребности Laravel, например выполнение php artisan migrate или любая другая команда artisan для публикации - Разверните свое приложение или нет, так что это скорее требование вашего приложения, чем Laravel, правильно?

Я разработал пакет для развертывания, Deeployer. Цель этого пакета заключается в том, что каждый раз, когда я нажимаю свое приложение на производственную (или промежуточную) ветвь, Github запускает крючок, который сообщает моему серверу, что он делает все, что ему нужно, чтобы развернуть мое приложение на моем собственном VPS. При базовом развертывании он будет:

1) git pull репозиторий

2) Выполните composer update, чтобы обновить папку поставщика

3) Выполните bower update, чтобы загрузить все js или css, которые я установил

4) Выполните php artisan migrate, чтобы обновить мою схему базы данных

5) Выполните chmod и chown, чтобы исправить любые помехи, которые эти команды могли внести в мои каталоги при загрузке файлов

См? Это то, что очень важно для моей структуры развертывания, поэтому я действительно не думаю, что вы найдете консенсус относительно приложения для развертывания. Когда Anahkiasen сначала создает Rocketeer, кто-то кричит: "Почему вы делаете это, если у нас уже есть Capistrano?".

Вчера я столкнулся с этим: http://www.deployhq.com/packages, используемый Ben Corlet от Cartalyst и других хорошие парни.

Там также Rocketeer: http://rocketeer.autopergamene.eu/.

Не забывайте, что у самого Laravel есть собственный удаленный компонент SSH (я использовал его в Deeployer, а Rocketeer тоже его использует), что может помочь вам сделать все, что вам нужно для развертывания вашего приложения.

Итак, вам лучше подумать, каковы ваши потребности в развертывании и найти свой путь, используя пакет, приложение или просто Laravel.

Ответ 2

Есть много инструментов для развертывания, таких как Capistrano. Я рекомендую вам взглянуть на Deployer: он имеет простой api, в комплекте с рецептами для популярных фреймворков и приложений и может выполнять 100% параллельное выполнение задачи. Также это требует только для PHP.

Вот пример простой задачи:

task('my_task', function () {
    // Your tasks code...
});

Также он имеет код хорошего качества:

Code Quality Code Climate Code Coverage

Deployer

Ответ 4

Если вы просите стандарт, я не думаю, что он есть. Но альтернатива из FTP, вы считаете, используя git как способ развертывания вашего сайта для производства?

Вот как вы это делаете: http://danbarber.me/using-git-for-deployment/ (ссылка не работает) https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps

В основном резюме состоит в том, что у вас есть bare git repository, ваш собственный local repository и ваш production repository.. теперь, настроив правильные крючки, когда вы нажимаете на bare git repository, крючок в нем скажет чтобы вытащить последние изменения, которые вы перешли на производство. Кроме того, вы можете настроить правильные учетные данные в своем конфигурационном файле в зависимости от среды. Вы можете создать новую папку ex. app/config/production и app/config/stage, чтобы вы могли легко запускать приложение даже при одновременном включении обоих серверов.

Ответ 5

Я тоже не уверен в стандартном способе. У вас есть Forge и Envoyer, которые работают с Laravel, так что это то, что нужно изучить.

Вот способ развернуть Laravel с помощью Rocketeer и Git. Это очень просто настроить и позволяет использовать несколько серверов (подумайте о постановке, производстве и т.д.).

http://dericcain.com/blog/deploying-laravel-5-with-rocketeer