标签: laravel-artisan

Laravel 5.8,工匠命令错误:由于名称无效,无法解析 dotenv 文件

这个问题只发生在我的共享主机上的 Laravel 5.8 上。

它在我与 Laravel 5.7 的共享主机中运行良好。

它在我的本地环境中使用 Laravel 5.8 运行良好。

问题是:

每次我运行 php artisan 命令(仅在我与 Laravel 5.8 的共享主机上)时,我都会收到此错误

环境文件无效!由于名称无效,无法解析 dotenv 文件。

在 [APP_NAME] 上失败。

我的 .env 第一行是: APP_NAME=rased

更新到 Laravel 5.8 后,我的网站也变成了一个白色的空白页面!

shared-hosting laravel-5.8 laravel-artisan phpdotenv

15
推荐指数
5
解决办法
2万
查看次数

Laravel Artisan:`schedule:run` 是如何工作的?

我设置了一个虚拟命令作业,其handle()功能如下:

public function handle()
{
    $this->line('==================');
    $this->line('Running my job at ' . Carbon::now());
    $this->line('Ending my job at ' . Carbon::now());
}
Run Code Online (Sandbox Code Playgroud)

如您所见,它实际上并没有做任何事情,只是将几行信息返回到标准输出。

现在,在我的App\Console\Kernel课堂上,我制定了以下时间表:

protected function schedule(Schedule $schedule)
{
    $schedule
        -> command('cbh:dummyCommand')
        -> everyMinute()
        -> appendOutputTo (storage_path().'/logs/laravel_output.log');
}
Run Code Online (Sandbox Code Playgroud)

现在,我从命令行运行php artisan schedule:run. 我的laravel_output.log文件中的输出读取

==================
Running my job at 2018-02-08 11:01:33
Ending my job at 2018-02-08 11:01:33
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好。看来我的日程正在运行。但是,如果我在同一分钟内再次运行该命令,我的日志文件现在会显示:

==================
Running my job at 2018-02-08 11:01:33
Ending my job at 2018-02-08 11:01:33
==================
Running my job …
Run Code Online (Sandbox Code Playgroud)

laravel laravel-5 laravel-artisan

9
推荐指数
2
解决办法
2万
查看次数

当我安装composer --optimize-autoloader --no-dev 时找不到类“BeyondCode\DumpServer\DumpServerServiceProvider”

我正在部署 Laravel 应用程序并想要优化自动加载,通常我会运行命令

composer install --optimize-autoloader --no-dev
Run Code Online (Sandbox Code Playgroud)

这是一个运行Laravel 5.8 的应用程序。我收到以下错误:

在 Application.php 第 662 行:未找到类 'BeyondCode\DumpServer\DumpServerServiceProvider'
脚本 @php artisan package:discover --ansi 处理返回的自动加载转储后事件,错误代码为 1

laravel composer-php laravel-5.8 laravel-artisan

9
推荐指数
1
解决办法
1万
查看次数

如何在 Laravel 中获取当前的控制台命令

我可以使用App::runningInConsole()命令查看脚本是否在控制台中运行,但我想知道(出于审计日志记录目的)哪个命令已从控制台运行。

添加一些上下文 - 我需要在系统或用户访问某种类型的数据时进行记录。对于用户来说,这非常简单——我可以使用Auth::user()并从 获取他们的 IP 地址Request,但对于控制台命令,这有点困难。

我可以确定控制台命令是否正在运行,这很好,但我需要能够记录哪个控制台命令正在运行。

php laravel laravel-5.1 laravel-artisan

8
推荐指数
2
解决办法
3362
查看次数

Laravel 队列:重启不会杀死工作人员

我有一个通过 envoyer 部署到非伪造服务器的 laravel 5.4 应用程序。我正在数据库驱动程序上运行队列工作器,使用主管进行监视,如文档中所述进行设置;

command=php /home/data/app/current/artisan queue:work --sleep=3 --tries=3
Run Code Online (Sandbox Code Playgroud)

并使用 envoyer 部署挂钩

cd ~/app/current
php artisan queue:restart
Run Code Online (Sandbox Code Playgroud)

问题是,在每次部署后,队列工作人员没有重新启动,旧的工作人员继续运行,然后抛出错误,因为他们正在处理以前版本的代码。运行队列:从 CLI 手动重启也不起作用。

data@medicone:~/ccpbase/current$ ps -aux | grep queue:work
data      4347  0.0  0.2 292988 34852 ?        S    11:12   0:00 php /home/data/ccpbase/current/artisan queue:work --sleep=3 --tries=3
data      4348  0.0  0.2 292988 34864 ?        S    11:12   0:00 php /home/data/ccpbase/current/artisan queue:work --sleep=3 --tries=3
data      4349  0.0  0.2 292988 34720 ?        S    11:12   0:00 php /home/data/ccpbase/current/artisan queue:work --sleep=3 --tries=3
data      4350  0.0  0.2 292988 34880 ? …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-queue laravel-artisan

8
推荐指数
2
解决办法
1万
查看次数

强制注销 Laravel 中的所有用户

如何强制所有用户在 SPA 中注销?我想要这样,当我部署新版本时,所有用户都会自动注销。

我尝试了以下方法,但我不确定这是否是最安全的方法。

php artisan key:generate
Run Code Online (Sandbox Code Playgroud)

php laravel vue.js laravel-5 laravel-artisan

8
推荐指数
2
解决办法
7764
查看次数

Laravel - 不断获取日志和框架数据缓存错误

我在 Homestead 环境中使用 Laravel 6.x 并且最近在我尝试通过 Angular 前端登录时出现了一些奇怪的错误 - 一旦它到达登录端点,它就会给我一些奇怪的错误(见下文)

The stream or file "/home/vagrant/code/abc-backend/storage/logs/laravel-2020-07-23.log" could not be opened: failed to open stream: Permission denied
Run Code Online (Sandbox Code Playgroud)

由于某种原因,上述文件不存在(存在其他日期的其他日志文件,但不存在 7 月 23 日的日志文件)。然后我手动创建了如下文件 & chmod'd 到 777:

touch storage/logs/laravel-2020-07-23.log
chmod 777 storage/logs/laravel-2020-07-23.log
Run Code Online (Sandbox Code Playgroud)

当我重新加载页面时,以前的错误已经消失,但现在出现以下错误:

file_put_contents(/home/vagrant/code/abc-backend/storage/framework/cache/data/1c/6e/1c6ea8378a1030f85a05f4cb2262de1e2164efa6): failed to open stream: No such file or directory",
Run Code Online (Sandbox Code Playgroud)

我也没有高兴地尝试了以下内容:

chown -R vagrant:www-data /home/vagrant/code/abc-backend/storage

chmod -R g+w /home/vagrant/code/abc-backend/storage

我尝试了很多方法php artisan来尝试纠正这些错误,包括php artisan cache:clear毫无乐趣地运行 命令 - 其他人能否让我深入了解为什么我同时收到日志文件错误和缓存/数据错误以及修复它们的最佳方法两个都?

如果您需要有关我的设置的更多信息,请告诉我,这将有所帮助。

-- 更新 -- 我使用的是 Virtual Box 6.0 Homestead box …

php logging frameworks laravel laravel-artisan

8
推荐指数
1
解决办法
1176
查看次数

不能将 migrate 与sail laravel 一起使用

嗨,我刚刚尝试安装带有风帆的 Laravel 8,但遇到了问题

我所做的是首先从 Laravel 自己的页面运行 curl one-liner

curl -s https://laravel.build/sail-test | bash
Run Code Online (Sandbox Code Playgroud)

一旦完成我就按照它说的运行

cd sail-test && ./vendor/bin/sail up
Run Code Online (Sandbox Code Playgroud)

一切都按原样开始,我可以连接到数据库,我可以在 http://localhost 上看到该站点,但是在尝试迁移时出现以下错误:

$ sail artisan migrate:install

   Illuminate\Database\QueryException 

  SQLSTATE[HY000] [2002] No route to host (SQL: create table `migrations` (`id` int unsigned not null auto_increment primary key, `migration` varchar(255) not null, `batch` int not null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:678
    674?         // If an exception occurs when attempting to run a query, we'll format the error
    675?         // message …
Run Code Online (Sandbox Code Playgroud)

laravel-artisan laravel-8 laravel-sail

8
推荐指数
2
解决办法
5977
查看次数

如何在编写测试时检查实际的 Laravel 命令输出?

我正在为 Laravel Artisan 控制台命令编写一个非常基本的测试,如下所示:

$this->artisan("my-command", ["--some-option" => "some-value"])
     ->expectsOutput("the expected output");
Run Code Online (Sandbox Code Playgroud)

测试没有通过。我真的很麻烦,因为“预期输出”正是手动执行时命令输出的内容。

但没关系,我只需要检查通过自动化测试执行时命令输出的实际情况,对吧?但是等等,我该怎么做呢?

我尝试了以下方法:

$output = new BufferedConsoleOutput();
Artisan::call("my-command", ["--some-option", "some-value"], $output);
// dd($output->fetch()
$this->assertTrue($output->fetch() === "the expected output");
Run Code Online (Sandbox Code Playgroud)

但 $output->fetch() 似乎总是空的。

简而言之:如何在测试上下文中打印 Laravel 命令的实际输出?

php laravel laravel-testing laravel-artisan

8
推荐指数
1
解决办法
3619
查看次数

Laravel 默认命令在哪里?

我想知道 Laravel 默认命令(源代码)的位置,如:php artisan storage:link,我想将其用作自定义命令的示例。

提前致谢!

command laravel laravel-artisan

7
推荐指数
2
解决办法
1570
查看次数