标签: laravel-artisan

在 cPanel 中设置 Laravel cron 作业

我有以下功能:

protected function schedule(Schedule $schedule)
{
    $schedule->command('email:users')->everyMinute();
}
Run Code Online (Sandbox Code Playgroud)

当我运行命令时

artisan schedule:run 
Run Code Online (Sandbox Code Playgroud)

它会发送一封电子邮件,但是当我将以下命令作为 cron 作业添加到 cpanel 时,它不会发送任何电子邮件。Cpanel 假设在运行 cron 作业时通过电子邮件向我发送通知,但我没有收到一封电子邮件。

php /home/rain/artisan schedule:run 1>> /dev/null 2>&1

我哪里做错了?

此外,当我运行命令时,artisan schedule:run它只运行一次。我很好奇,->everyMinute();如果不是每分钟都运行一次,为什么我必须添加?如果我想每周发送一次,我可以设置 cron 作业。->weekly();如果 cron 作业每周发送它,为什么我必须编写添加函数?

cron schedule cpanel laravel laravel-artisan

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

将迁移标记为在 Laravel 中运行

我的迁移失败了,所以我只是在 MySQL Workbench 中手动运行了一个查询。

是否有工匠命令将迁移标记为完成?因此,当我运行未来的迁移时,它会跳过我知道不需要运行的迁移。

我可以使用此命令列出它们及其状态,并查看哪些已运行,哪些未运行:

php artisan migrate:status 
Run Code Online (Sandbox Code Playgroud)

如果没有命令,我可能可以手动将条目插入到数据库迁移表中。(但目前没有迁移:P)

我想我也可以...删除迁移。

laravel artisan-migrate laravel-artisan

6
推荐指数
3
解决办法
3319
查看次数

Laravel: SQLSTATE[HY000] [2054] 服务器请求客户端未知的身份验证方法

安装新的 Laravel 应用程序 5.7 并尝试迁移后,出现此错误:

Illuminate\Database\QueryException : SQLSTATE[HY000] [2054] 服务器请求客户端未知的身份验证方法(SQL:select * from information_schema.tables where table_schema = xxx_db and table_name = migrations)

在 C:\xampp\htdocs\xxxxx\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664 660| // 如果尝试运行查询时发生异常,我们将格式化错误 661| // 包含与 SQL 的绑定的消息,这将使此异常成为 662| // 对开发人员更有帮助,而不仅仅是数据库的错误。663| 捕获(异常 $e){

664| throw new QueryException(665| $query, $this->prepareBindings($bindings), $e 666|); 667| 第668话

异常跟踪:

1 PDOException::("PDO::__construct(): 服务器请求了客户端未知的身份验证方法 [caching_sha2_password]") C:\xampp\htdocs\xxxxx\vendor\laravel\framework\src\Illuminate\Database\Connectors\连接器.php:70

2 PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=xxx_db", "root", "**********", []) C:\xampp\htdocs \xxxxx\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70

请使用参数 -v 查看更多详细信息。

php mysql migrate laravel laravel-artisan

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

Laravel:如何在自定义目录中生成播种机

我将 Laravel 5.5 与laravel-modules v2 一起使用。

在自定义目录中(特别是在模块内)生成迁移很容易:

php artisan make:migration create_users_table --path=Modules/User/Database/Migrations
Run Code Online (Sandbox Code Playgroud)

但似乎这对于播种课程是不可能的:

php artisan make:seeder UsersTableSeeder --path=Modules/User/Database/
Run Code Online (Sandbox Code Playgroud)

“--path”选项不存在。

或传递完整的相对路径:

php artisan make:seeder Modules/User/Database/Migrations/UsersTableSeeder
Run Code Online (Sandbox Code Playgroud)

./database/seeds/ 中创建这个完全相同的文件夹结构

或传递完整的绝对路径:

php artisan make:seeder /Modules/User/Database/Migrations/UsersTableSeeder
Run Code Online (Sandbox Code Playgroud)

file_put_contents(\my\file\system\project\database/seeds/C:/Program Files/Git /Modules/User/Database/Seeders/UsersTableSeeder.php):无法打开流:没有这样的文件或目录

如何在自定义目录中使用 artisan 命令生成播种机?

php laravel laravel-artisan

5
推荐指数
1
解决办法
5906
查看次数

Laravel - “工匠修补匠” -> mkdir():权限被拒绝

我现在已经搜索了几个小时,但即使有类似的问题也找不到解决方案。

我正在尝试php artisan tinker使用用户webmaster(项目目录的所有者demo)在全新的 laravel 安装上运行,但出现以下错误:

In Configuration.php line 352:
mkdir(): Permission denied
Run Code Online (Sandbox Code Playgroud)

使用详细标志运行:

异常跟踪:Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() at n/a:n/a mkdir() at /media/usb/drive1/websites/demo/vendor/psy/psysh/src/Psy/Configuration。 php:352 Psy\Configuration->getRuntimeDir() at /media/usb/drive1/websites/demo/vendor/psy/psysh/src/Psy/Shell.php:185 Psy\Shell->getDefaultCommands() at /media/ usb/drive1/websites/demo/vendor/symfony/console/Application.php:1211 Symfony\Component\Console\Application->init() 在 /media/usb/drive1/websites/demo/vendor/symfony/console/Application .php:435 Symfony\Component\Console\Application->add() 在 /media/usb/drive1/websites/demo/vendor/psy/psysh/src/Psy/Shell.php:134 Psy\Shell->add( ) 在 /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:421 Symfony\Component\Console\Application->addCommands() 在 /media/usb/drive1/websites/demo/vendor/laravel/tinker/src/Console/TinkerCommand.php:54 Laravel\Tinker\Console\TinkerCommand->handle() 在 n/a:n/a call_user_func_array() 在 /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29 Illuminate\Container\BoundMethod::Illuminate\Container{closure}() 在 /media /usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Container/ BoundMethod.php:87 Illuminate\Container\BoundMethod::callBoundMethod() 在 /media/usb/drive1/websites/demo/vendor/ laravel/framework/src/Illuminate/Container/BoundMethod.php:31 Illuminate\Container\BoundMethod::call() 在 /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Container/Container .php:549 Illuminate\Container\Container->call() 在 /media/usb/drive1/websites/demo/vendor/laravel/framework/src/Illuminate/Console/Command.php:183 Illuminate\Console\Command->execute() 在 /media/usb/drive1/网站/演示/供应商/symfony/console/Command/Command.php:252 Symfony\Component\Console\Command\Command->run() 在 /media/usb/drive1/websites/demo/vendor/laravel/framework/src /Illuminate/Console/Command.php:170 Illuminate\Console\Command->run() 在 /media/usb/drive1/websites/demo/vendor/symfony/console/Application.php:938 …

php permissions laravel tinker laravel-artisan

5
推荐指数
1
解决办法
1598
查看次数

Laravel 5.5 中的迁移:无法声明类,因为名称已被使用

在 Laravel 中运行迁移时出现错误:

PHP 致命错误:无法声明类 UpdateEnquiriesTable,因为该名称已在第 33 行的 /var/www/project/database/migrations/2018_01_17_160335_update_enquiries_table.php 中使用

做了一些研究后,我发现每个迁移文件都需要一个唯一的类名(我不记得之前提到过,但那可能是我)。

根据另一个问题,建议更改其中一个类的名称

但是其他人建议删除冲突的迁移

哪个是首选?假设两者都有效。

php laravel-5 laravel-artisan

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

Laravel artisan tinker - “安静模式” - 不打印查询结果

如何将 Eloquent 查询的结果存储到 tinker 中的变量,而不将结果打印到控制台?

例如,当我运行时,$threads = App\Thread::all()我只想将结果存储在变量中$threads而不查看所有线程。修补匠中有类似“安静模式”的东西吗?

php laravel laravel-5 laravel-5.5 laravel-artisan

5
推荐指数
1
解决办法
1235
查看次数

如何获取所有符合 Laravel Tinker 标准的记录?

我可以使用以下命令获取第一个用户,他是 Laravel tinker 的管理员:

$adminUser = App\User::where('is_admin',true)->first();

我如何获得满足此条件的所有用户?

laravel tinker laravel-artisan

5
推荐指数
1
解决办法
4888
查看次数

Laravel:为了安全起见,队列工作失败了 pcntl_signal()

尝试运行php artisan queue:work会返回此错误:

ErrorException  : pcntl_signal() has been disabled for security reasons
Run Code Online (Sandbox Code Playgroud)

已经pcntl_signal, pcntl_signal_dispatch从php.ini中的disable_functions中删除并重新启动,但没有效果 安全性

queue laravel laravel-artisan

5
推荐指数
1
解决办法
1527
查看次数

如何撤消或停止 php artisan Schedule:run

这是我的 Laravel 5.3 开发环境

我正在测试预定的电子邮件并运行:

php artisan schedule:run
Run Code Online (Sandbox Code Playgroud)

这工作正常并且正在按预期发送电子邮件。

但我实际上希望在 crontab 文件中包含此内容:

 * * * * * php /home/test/website/artisan schedule:run >> /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

自从我在 crontab 文件中添加该行后,我收到了两封电子邮件。我删除了该行,所以现在只收到一封电子邮件。

但现在我想反转/撤消/停止/终止 php artisan Schedule:run 以便我可以从 crontab 文件控制计划。

我看到这篇文章:停止 Laravel 计划命令一旦启动?

但接受的答案( ps -fe | grep artisan 和 Kill PID )对我来说不起作用,因为我收到消息:

kill: (PID) - No such process
Run Code Online (Sandbox Code Playgroud)

每次我跑步

ps -fe | grep artisan 
Run Code Online (Sandbox Code Playgroud)

它似乎有一个不同的 PID - 不知道我在这方面做错了什么。

我也停止了我的流浪盒,但这似乎没有任何效果。

任何建议都会很棒!


更新:以防万一将来我碰巧遇到同样的问题并再次偶然发现这个帖子 - 我无法解决这个问题,并且已经决定不再值得花更多时间来解决它 - 将忍受现在就这样吧。通过从 crontab 中删除该行,我只收到一封电子邮件,所以现在一切都很好。

php laravel laravel-artisan

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