Ronald Torres
Ronald Torres

Reputation: 121

How can i run artisan commands in cpanel

How can i run these artisan commands in my application that is hosted in the net? Is there like a cmd in my cpanel where i can do these commands? Thanks in advance.

Upvotes: 7

Views: 32137

Answers (4)

Mudassar
Mudassar

Reputation: 598

Now in Laravel 5.8, you cannot pass object to call() func. You must pass an array [] as second argument to call() func.

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

Upvotes: 8

Bogdan Stoica
Bogdan Stoica

Reputation: 4539

You could create a simple bash script called clear-cache.sh like this:

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

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

Save the script and make it executable (chmod +x clear-cache.sh). Run it through a cronjob at specific intervals and configure the cron job to email you the output of those 2 commands. This way you'll get an email, every time the cron runs the script (basically the cron will automatically issue your two commands) and the ouput will be emailed to you.

Of course there are other methods as well like creating a php script and invoke it via web

Upvotes: 2

Gothiquo
Gothiquo

Reputation: 868

You can make a personalized route, and call it when you need it:

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

Another solution is to access ssh to your server and to run the commands.

Upvotes: 4

Nazmul Hasan
Nazmul Hasan

Reputation: 1977

Try this. You can clear all of laravel application cache hosted in shared hosting server that can not access ssh shell by the following code:

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>";
});

Now run yourdoamin.com/cleareverything

This code does not throw any error. I already used this code.

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

Upvotes: 4

Related Questions