Как выполнить & quot; php artisan migrate & quot; и другие команды Laravel на удаленном сервере?

Я использую Laravel 4.2 на удаленном сервере и хочу выполнять команды Laravel php artisan migrate но я не знаю как.

1

Решение

Вы можете подключиться к серверу по ssh и выполнить команду, добавить удаленный ключ сервера на удаленный сервер, чтобы сделать это без пароля. Я сделал скрипт bash со следующим кодом, который затем могу выполнить вручную через командную строку или из программы, скажем, я называю это myscript.sh со следующим кодом

ssh [email protected] << EOF
cd /var/www/app/;
php artisan migrate --force; // force prevents artisan from asking for a yes/no on production
exit;
EOF

Теперь я могу написать ‘sh myscript.sh’, и он запустит миграцию на удаленном сервере.

2

Другие решения

Вы можете настроить cronjob следующим образом:

* * * * * /usr/bin/php /var/www/app/artisan schedule:run

Это будет запускаться каждую минуту и ​​запускать миграцию.

Вы можете изменить это на все, что вы хотите.

Если вы хотите, чтобы открыть URL-адрес, что в то время как выполнение команды.

Используйте этот код:

Artisan::call('migrate');

Надеюсь, это работает!

0

Для полноты этой статьи вы делаете это на хосте Windows, используя PS remote (сначала включите), а затем …

$Username   = "{domain}\{domain account}"$PasswordSS = ConvertTo-SecureString '{domain account password}' -AsPlainText -Force
$Cred       = New-Object System.management.Automation.PSCredential $Username,$PasswordSS

Invoke-Command -ComputerName {server name} -ScriptBlock { cd d:\wwwroot\{website};php artisan migrate } -Credential $Cred

Это вернет результат на ваш локальный компьютер.

Я использую это во всех версиях VSTS.

0

Решением этой проблемы может быть запуск кода PHP (на сервере) следующим образом:

<?php
// installation.php file
echo exec('php /var/www/laravel-app/artisan migrate:install');

и чем вам нужно посетить installation.php в вашем браузере.
После миграции вы должны удалить установочный файл, чтобы никто не мог выполнить его снова

-1
По вопросам рекламы [email protected]