如何在 cpanel 中运行工匠命令
Posted
技术标签:
【中文标题】如何在 cpanel 中运行工匠命令【英文标题】:How can i run artisan commands in cpanel 【发布时间】:2018-05-22 12:07:55 【问题描述】:如何在托管在网络中的应用程序中运行这些工匠命令?我的 cpanel 中是否有类似 cmd 的地方可以执行这些命令?提前致谢。
php 工匠清除:缓存 php工匠视图:清除【问题讨论】:
SSH 访问怎么样? 完成后请务必在此处将网址粘贴到您的网站,以便我们都可以清除您的缓存 【参考方案1】:现在在 Laravel 5.8 中,你不能将 object 传递给 call() 函数。您必须将 array [] 作为第二个参数传递给 call() func。
Route::get('/clear-cache', function()
$output = [];
\Artisan::call('cache:clear', $output);
dd($output);
);
【讨论】:
【参考方案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 作业以通过电子邮件向您发送这 2 个命令的输出。这样,每次 cron 运行脚本时,您都会收到一封电子邮件(基本上,cron 会自动发出您的两个命令)并且输出将通过电子邮件发送给您。
当然还有其他方法,比如创建一个 php 脚本并通过 web 调用它
【讨论】:
【参考方案3】:您可以制定个性化路线,并在需要时调用它:
Route::get('/clear-cache', function()
$output = new \Symfony\Component\Console\Output\BufferedOutput;
\Artisan::call('cache:clear', $output);
dd($output->fetch());
);
另一种解决方案是通过 ssh 访问您的服务器并运行命令。
【讨论】:
我尝试了个性化路线。我如何知道缓存是否被成功清除? 您可以为输出添加回声。看看答案的更新。 (1/1) FatalErrorException Class 'BufferedOutput' not found - 我得到这个错误。 你必须为其添加完整路径:\Symfony\Component\Console\Output\BufferedOutput【参考方案4】:试试这个。您可以通过以下代码清除无法访问 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
【讨论】:
哦不!!!完全错误....您只是假设缓存成功但您不确定,它也可能失败!!! 我已经在我的各种应用程序中使用了这个代码并成功清除了缓存,我已经确认这个代码没有错误 没有测试代码就放弃投票的人是愚蠢的。我有 3 年的 laravel 应用程序开发经验,我在很多项目中都使用过这段代码。 我尊重你的经验,但很抱歉,这段代码是错误的!当你真的不知道它的输出时,你确保使用 echo 正确地完成了命令...... 是的,我同意你的观点,但你显示缓存已清除,不知道它是否真的在运行这个命令!有时它可能会返回错误,但使用您的代码它只会输出成功!以上是关于如何在 cpanel 中运行工匠命令的主要内容,如果未能解决你的问题,请参考以下文章