Не можете да изпълнявате никакви отдалечени команди на вашия локален artisan
. Всичко, което стартирате там, ще работи само локално (дори ако зададете ENV
променлива).
Задаване на ENV
променлива е просто да каже на приложението да се държи така, сякаш е в тази среда. Но не казва на artisan да използва отдалечената производствена среда.
Ако искате да изпълнявате команди на вашия производствен сървър, предлагам ви да разгледате Envoy . Това е напълно самостоятелен проект (и не трябва да се използва само с проекти на Laravel) и е специално за внедряване.
По същество това е тънка обвивка около SSHing във вашия отдалечен сървър и след това изпълнение на команди. Пример Envoy.blade.php
файл на моите сайтове може да изглежда така:
@servers(['web' => '[email protected]'])
@task('deploy')
cd ~/src
php artisan down
git pull origin master
composer install --no-dev --no-progress --prefer-dist
php artisan migrate --force --no-interaction
php artisan optimize
php artisan up
@endtask
Този SSH влиза, поставя приложението в режим на поддръжка, изтегля новия код, прави различните настройки на „нов код“, като инсталиране на композитор, мигриране и т.н. и след това изтегля приложението от режим на поддръжка.