如何在cpanel中运行artisan命令

时间:2017-12-08 09:16:09

标签: laravel cpanel artisan

如何在网络中托管的应用程序中运行这些工匠命令?在我的cpanel中有像cmd我可以执行这些命令吗?提前谢谢。

  • php artisan clear:cache
  • php artisan view:clear

4 个答案:

答案 0 :(得分:3)

您可以制作个性化路线,并在需要时拨打电话:

Route::get('/clear-cache', function() {
    $output = new \Symfony\Component\Console\Output\BufferedOutput;
    \Artisan::call('cache:clear', $output);
    dd($output->fetch());
});

另一种解决方案是访问服务器的ssh并运行命令。

答案 1 :(得分:2)

您可以创建一个名为clear-cache.sh的简单bash脚本,如下所示:

#!/bin/sh
PHP=/path/to/your/php-binary
PATH=/path/to/your-artisan-install

cd $PATH
$PHP artisan clear:cache
$PHP artisan view:clear

保存脚本并使其可执行(chmod + x clear-cache.sh)。以特定的时间间隔通过cronjob运行它,并配置cron作业以通过电子邮件发送这两个命令的输出。这样你每次cron运行脚本时都会收到一封电子邮件(基本上cron会自动发出你的两个命令),输出就会通过电子邮件发送给你。

当然还有其他方法,比如创建一个php脚本并通过web调用它

答案 2 :(得分:0)

现在在Laravel 5.8中,您不能将对象传递给 call()函数。您必须将数组[] 作为第二个参数传递给call()函数。

Route::get('/clear-cache', function() {
    $output = [];
    \Artisan::call('cache:clear', $output);
    dd($output);
});

答案 3 :(得分:-1)

试试这个。您可以通过以下代码清除托管在无法访问ssh shell的共享主机服务器中的所有laravel应用程序缓存:

Route::get('/cleareverything', function () {
    $clearcache = Artisan::call('cache:clear');
    echo "Cache cleared<br>";

    $clearview = Artisan::call('view:clear');
    echo "View cleared<br>";

    $clearconfig = Artisan::call('config:cache');
    echo "Config cleared<br>";

    $cleardebugbar = Artisan::call('debugbar:clear');
    echo "Debug Bar cleared<br>";
});

现在运行yourdoamin.com/cleareverything

此代码不会引发任何错误。我已经使用过这段代码。

参考:https://laravel.com/docs/5.2/artisan#calling-commands-via-code