这个问题只发生在我的共享主机上的 Laravel 5.8 上。
它在我与 Laravel 5.7 的共享主机中运行良好。
它在我的本地环境中使用 Laravel 5.8 运行良好。
问题是:
每次我运行 php artisan 命令(仅在我与 Laravel 5.8 的共享主机上)时,我都会收到此错误
环境文件无效!由于名称无效,无法解析 dotenv 文件。
在 [APP_NAME] 上失败。
我的 .env 第一行是: APP_NAME=rased
更新到 Laravel 5.8 后,我的网站也变成了一个白色的空白页面!
我设置了一个虚拟命令作业,其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 应用程序并想要优化自动加载,通常我会运行命令
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
我可以使用App::runningInConsole()命令查看脚本是否在控制台中运行,但我想知道(出于审计日志记录目的)哪个命令已从控制台运行。
添加一些上下文 - 我需要在系统或用户访问某种类型的数据时进行记录。对于用户来说,这非常简单——我可以使用Auth::user()并从 获取他们的 IP 地址Request,但对于控制台命令,这有点困难。
我可以确定控制台命令是否正在运行,这很好,但我需要能够记录哪个控制台命令正在运行。
我有一个通过 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) 如何强制所有用户在 SPA 中注销?我想要这样,当我部署新版本时,所有用户都会自动注销。
我尝试了以下方法,但我不确定这是否是最安全的方法。
php artisan key:generate
Run Code Online (Sandbox Code Playgroud) 我在 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 …
嗨,我刚刚尝试安装带有风帆的 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 控制台命令编写一个非常基本的测试,如下所示:
$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 命令的实际输出?
我想知道 Laravel 默认命令(源代码)的位置,如:php artisan storage:link,我想将其用作自定义命令的示例。
提前致谢!
laravel-artisan ×10
laravel ×8
php ×5
laravel-5 ×2
laravel-5.8 ×2
command ×1
composer-php ×1
frameworks ×1
laravel-5.1 ×1
laravel-8 ×1
laravel-sail ×1
logging ×1
phpdotenv ×1
vue.js ×1