如何在远程服务器上执行“php artisan migrate”和其他Laravel命令?

时间:2014-09-14 21:05:19

标签: php laravel frameworks remote-server

我在远程服务器上使用Laravel 4.2,我想执行Laravel命令php artisan migrate,但我不知道如何。

4 个答案:

答案 0 :(得分:2)

您可以ssh到服务器并执行命令,您可以将服务器公钥添加到远程服务器,以便在没有密码的情况下执行此操作。我使用以下代码创建了一个bash脚本,然后我可以通过命令行或程序手动执行,假设我用以下代码将其命名为myscript.sh

ssh root@127.0.0.1 << 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',它将在远程服务器上运行迁移。

答案 1 :(得分:0)

您可以像这样设置一个cronjob:

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

这将每分钟运行并运行迁移。

您可以将其更改为您想要的所有内容。

如果你想打开一个url什么,而不是命令。

使用此代码:

Artisan::call('migrate');

希望这有效!

答案 2 :(得分:0)

为了本文的完整性,您使用PS远程(首先启用)然后使用Windows主机执行此操作...

$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发布部署中使用它。

答案 3 :(得分:-1)

这个问题的解决方案可以运行一次php代码(在服务器上),如下所示:

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

并且您需要在浏览器中访问installation.php 迁移后,您应该删除安装文件,以便没有人可以再次执行