第一步 安装redis 此处推荐一篇详细的博文 Ubuntu14.04安装redis和简单配置
第二步 修改项目配置
在学习笔记(2)中已经新建的test项目
进入到项目文件根目录 cd /var/www/test
vim .env 添加下面配置
CACHE_DRIVER=redis //缓存默认驱动
SESSION_DRIVER=redis //session默认驱动
QUEUE_DRIVER=redis //队列默认驱动
REDIS_HOST=192.168.10.147
REDIS_PORT=6379
REDIS_DATABASE=0
REDIS_PASSWORD=root
REDIS_QUEUE_HOST=127.0.0.1
REDIS_QUEUE_PORT=6379
REDIS_QUEUE_DATABASE=1
REDIS_QUEUE_PASSWORD=root
第三步 修改nginx配置文件
新增并编辑配置文件 vim /etc/nginx/conf.d/lipy.conf
server {
listen 80;
server_name lipy.cc; #项目名 记得添加到本地的hosts文件中
access_log /data/logs/nginx/lipy.cc.access.log main; #项目 访问日志
error_log /data/logs/nginx/lipy.cc.error.log; #项目错误日志
index index.php; #默认解析文件
root /var/www/test/public; #项目目录
location /
{
try_files $uri $uri/ /index.php?$args;
}
location ~ ^(.+.php)(.*)$ {
fastcgi_split_path_info ^(.+.php)(.*)$;
include fastcgi.conf; # 此文件 须执行 cp /etc/nginx/fastcgi_params /etc/nginx/fastcgi.conf
fastcgi_pass unix:/run/php/php7.0-fpm.sock; #特别注意 此处的fastcgi_pass 配置取自 /etc/php/7.0/fpm/pool.d/www.conf 里面的listen 另外记得修改www.conf 里面的user和group 改为你你当前的用户我是lipy (不要改为root,没啥用)
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
配置完成后,新建日志文件的目录,并给相关用户(我的用户是lipy)权限,此处/run/php/php7.0-fpm.sock 的权限也需改为相关用户的(我的用户是lipy,系统默认是www-data),重启nginx service nginx restart
第四步 修改项目配置
刚修改了项目的 .env 文件,现在需要把config/database.php文件最下面的redis的配置改为
'redis' => [
'cluster' => false,
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_DATABASE', '0'),
'password' => env('REDIS_PASSWORD', 'root'),
],
'redis_queue' => [
'host' => env('REDIS_QUEUE_HOST', '127.0.0.1'),
'port' => env('REDIS_QUEUE_PORT', 6379),
'database' => env('REDIS_QUEUE_DATABASE', 1),
'password' => env('REDIS_QUEUE_PASSWORD', ''),
'parameters'=>[
'password' => env('REDIS_QUEUE_PASSWORD', '')
]
],
],
且修改 config/queue.php 文件中的connections配置,该配置中新增
'action_log' => [
'driver' => 'redis', //用redis驱动
'connection' => 'redis_queue', //用database.php文件中的redis_queue
'queue' => 'action_log', //队列名称
'expire' => 600, //过期时间
],
添加一个异步写日志的任务 对应的名称来自 学习笔记3 中的配置program
第五步 laravel添加队列任务
注:期间遇到redis有密码无法访问情况。如下图
执行
php artisan queue:listen 开启监听就行了
注:执行队列需要先创建队列失败数据表
1、进入项目根目录
执行php artisan queue:failed-table 创建一个数据表执行文件
执行php artisan migrate --path=database/migrations 指定执行目录
执行 php artisan up 创建表
2、如果是执行队列报 No handler registered for command laravel 这个错误
解决办法,Job类文件引入 use Illuminate\Contracts\Bus\SelfHandling;
且类class ActionLogJob extends Job implements SelfHandling {