特别配置篇
大约 3 分钟
配置特别篇
说明
laravel-fast-api组件包在开发中,考虑业务数据的放置以及兼容性在开发之处就对配置文件做了一些调整.考虑到laravel框架版本不同,配置文件也会有微调.
特别在这里把修改的配置文件需要注意核对的地方逐一列举出来
config\app.php
一时区配置
'timezone' => 'Asia/Shanghai',二语言配置
//'fallback_locale' => 'en',
'fallback_locale' => env('APP_FAKER_LOCALE','en'),config\auth.php
guards 守卫
提示
这是自定义添加
'phone' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
'admin_token'=>[
'driver'=>'Admin-Token'
],
'phone_token'=>[
'driver'=>'Phone-Token'
]providers 提供者
提示
这是自定义添加
'users' => [
'driver' => 'eloquent',
'model'=>\App\Models\LaravelFastApi\V1\User\User::class
],
'admin' => [
'driver' => 'eloquent',
'model' => \App\Models\LaravelFastApi\V1\Admin\Admin::class
],config\database.php
一Mysql配置
'collation' => 'utf8mb4_unicode_ci','prefix' => env('DB_PREFIX',''), 'strict' => env('DB_STRICT',true), 'engine' => env('DB_ENGINE','MyISAM'),redis
default
'password' => env('REDIS_PASSWORD', null),'read_write_timeout' => 0,cache
'password' => env('REDIS_PASSWORD', null),'read_write_timeout' => 0,添加队列和广播
'queue'=>[
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', '6379'),
'database' => 2,
'read_write_timeout' => 0,
],
//注意广播存储的位置取决于队列,因此应该保持跟队列一致
'broadcast'=>[
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', '6379'),
'database' => 2,
'read_write_timeout' => 0,
]config\queue.php
redis
'connection' => env('REDIS_QUEUE_CONNECTION','default'),'block_for' => 5,添加
'job' => [
'driver' => 'redis',
'connection' => env('REDIS_QUEUE_CONNECTION','default'),
'queue' => env('REDIS_QUEUE_JOB', 'job'),
'retry_after' => 90,
'block_for' => 5,
'after_commit' => false,
],config\logging.php
添加自定义频道
//添加自定义的sql
'sql'=>[
'driver' => 'single',
'path' => storage_path('logs/sql.log'),
],使用示例
Log::channel('sql')->info('sql');config\mail.php
添加
'exception'=>
[
'email'=>env('MAIL_USERNAME'),
],config\image.php
<?php
/*
* @Descripttion:
* @version:
* @Author: YouHuJun
* @Date: 2021-11-10 11:12:14
* @LastEditors: YouHuJun
* @LastEditTime: 2021-11-10 11:18:29
*/
return [
/*
|--------------------------------------------------------------------------
| Image Driver
|--------------------------------------------------------------------------
|
| Intervention Image supports "GD Library" and "Imagick" to process images
| internally. You may choose one of them according to your PHP
| configuration. By default PHP's "GD Library" implementation is used.
|
| Supported: "gd", "imagick"
|
*/
'driver' => 'imagick'
];config\broadcasting.php
初次安装
php artisan install:broadcasting创建 config/broadcasting.php 配置文件和 routes/channels.php 文件
配置 bootstrap\app.php
在withRouting中添加
channels: __DIR__.'/../routes/channels.php',添加:
use Illuminate\Console\Scheduling\Schedule;
use App\Console\Commands\LaravelFastApi\V1\ExecuteTotalCommand;链式调用添加
->withSchedule(function (Schedule $schedule): void {
//数据库备份
mysqlBak($schedule);
//设置日志权限
makeLogAuth($schedule);
//修改日志的属主和属组
changeLogUserAndGroup($schedule);
//测试用
//$schedule->command(ExecuteTotalCommand::class)->everyThreeMinutes();
// $schedule->command(ExecuteTotalCommand::class)->dailyAt('5:00');
})执行的方法
提示
以下仅为示例,可以参考自己的目录进行调整
/**
* 数据库备份
*
* @param Schedule $schedule
* @return void
*/
function mysqlBak(Schedule $schedule)
{
//测试用 每三分钟
//$schedule->exec('source 绝对路径/cron/mysql_bak.sh')->everyThreeMinutes()->timezone('Asia/Shanghai');
//每天凌晨零点40执行数据库备份
// $schedule->exec('source 绝对路径/cron/mysql_bak.sh')->dailyAt('00:40')->timezone('Asia/Shanghai');
}
/**
* 设置日志权限任务
*
* 每分钟执行一次chmod命令,修改Laravel日志文件的权限
* 使用Asia/Shanghai时区,
*
* @param Schedule $schedule 任务调度器实例
* @return void
*/
function makeLogAuth(Schedule $schedule)
{
$schedule->exec('chmod -R 777 /www/wwwroot/youhujun.com/api.youhujun.com/storage/')->cron('*/1 * * * *')->timezone('Asia/Shanghai');
}
/**
* 设置日志用户和组任务
*
* 每分钟执行一次chown命令,修改Laravel日志文件的用户和组
* 使用Asia/Shanghai时区,
*
* @param Schedule $schedule 任务调度器实例
* @return void
*/
function changeLogUserAndGroup(Schedule $schedule)
{
$schedule->exec('chown root:root /www/wwwroot/youhujun.com/api.youhujun.com/storage/logs/*')->cron('*/1 * * * *')->timezone('Asia/Shanghai');
}default
'default' => env('BROADCAST_DRIVER', 'log'),redis
//'connection' => 'default',
'connection' => env('REDIS_BROADCAST_CONNECTION','default'),