Bạn không thể chạy bất kỳ lệnh từ xa nào trên artisan
cục bộ của mình . Mọi thứ bạn chạy ở đó sẽ chỉ hoạt động cục bộ (ngay cả khi bạn đặt ENV
biến).
Đặt ENV
biến chỉ để yêu cầu ứng dụng hoạt động như thể nó đang ở trong môi trường đó. Nhưng không yêu cầu nghệ nhân sử dụng môi trường sản xuất từ xa.
Nếu bạn muốn chạy các lệnh trên máy chủ sản xuất của mình, tôi khuyên bạn nên xem xét Envoy . Đây là một dự án hoàn toàn độc lập (và không phải chỉ được sử dụng với các dự án Laravel) và đặc biệt để triển khai.
Về cơ bản, nó là một lớp bao bọc mỏng xung quanh SSHing vào máy chủ từ xa của bạn và sau đó chạy các lệnh. Một ví dụ Envoy.blade.php
tệp trên các trang web của tôi có thể trông giống như sau:
@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 này vào, đặt ứng dụng ở chế độ bảo trì, kéo mã mới, thực hiện các thiết lập 'mã mới' khác nhau như cài đặt trình tổng hợp, di chuyển, v.v. và sau đó kéo ứng dụng ra khỏi chế độ bảo trì.