头像

Laravel 任务调度

一 、创建Command文件

php artisan make:console DataSync

创建app/Console/Commands 下创建RefreshToken.php

取一个名字

protected $signature = 'datasync';

添加描述

protected $description = 'sync data';

 在 handle() 方法中实现功能

public function handle()
{
    Log::info('同步数据');
}

二、在Kernel.php 文件中注册

//Commands\Inspire::class,
         Commands\DataSync::class,
    ];
protected function schedule(Schedule $schedule)
    {
         $schedule->command('datasync') ->everyMinute(); 
    }

 

三、新建cron.txt文件

文件内容:

* * * * * /usr/local/php/bin/php /data/wwwroot/test/artisan schedule:run 1>> /dev/null 2>&1

不需要重启cron服务,因为系统每分钟都会读一遍/var/spool/cron目录下的文件。

如果发现按照如下配置还是不能执行的话,可以用以下方法排除问题:

看一下命令有没有使用绝对路径,比如这里使用/usr/local/php/bin/php而不是php,使用/data/wwwroot/test/artisan而不是artisan。

要注意前面的PHP部分对应你使用的PHP版本目录。

默认是root用户执行,会存在写入日志冲突情况,可参考 crontab指定用户执行

四、用命令开启任务

在终端中项目目录下(Linux 环境)
告诉crontab 文件名:

crontab cron.txt

开始定时任务

crontab -l

或许之后你要结束任务

crontab -r
头像

Laravel 5.2 session失效不起作用 的解决办法

在app\http\kernel.php 中的 $middleware 后面加上 就是了 因为系统默认没有启动session

  1. \Illuminate\Cookie\Middleware\EncryptCookies::class,
  2.  \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
  3.  \Illuminate\Session\Middleware\StartSession::class,
  4.  \Illuminate\View\Middleware\ShareErrorsFromSession::class,

另外在””测试模式”下为了保障session会永久存储所以 测试模式下session都是用array模式存在,所以也会导致在这个页面看得到session 在另一个页面session就为空

头像

linux配置防火墙打开3306端口

安装完MYSQL服务器后在本机所有操作都正常, 但在其它机器上远程访问这个MYSQL服务器时怎么都连接不上,怀疑是端口问题, 结果:

telnet [你的服务器IP] 3306

发现连接不上, 原来如此是端口被防火墙限制了.

现在只需要是在防火墙中打开3306端口即可.

执行 vi /etc/sysconfig/iptables 如图:

linux-3306 port

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT

加入这句话就可以了, 注意这句话一定要加在最后一句话的上面. 否则不会生效.

同样如果是其它端口把”3306″换成相应端口即可.

然后重启一下防火墙

service iptables restart

搞定!

 

参与错误信息:

Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0

头像

Xshell 退格键变成^H的问题

在使用终端连接服务器的时候,遇到按退格键backSpace,屏幕出现^H的现象。

以前都是简单的按ctrl+backspace解决,今天研究了一下,原来是终端设置错误造成的。只要重设一下终端的键盘类型,就可以解决了。

下面是常用的两种window下的SSH工具设置。

比如,在SecureCRT里,会话选项–>映射键–>选中Backspace发送delete,就可以了。

比如,在Xshell里面,文件–>属性–>终端–>键盘,在选项卡里面更改就可以了。

头像

laravel 使用自定义 函数/类

自定义函数:

1. 创建文件 app/helpers.php

<?php

// 示例函数
function foo() {
return “foo”;
}

2. 修改项目 composer.json

在项目 composer.json 中 autoload 部分里的 files 字段加入该文件即可:

{

“autoload”: {
“files”: [
“app/helpers.php”
]
}

}

然后运行:

composer dump-autoload

 

自定义类:
在composer.json的autoload内的classmap项新增类包,

“autoload”: {
“classmap”: [
“database”,
“app/libraries/stmp.php”

],
“psr-4″: {
“App\\”: “app/”
}
},

完成之后还需要

composer dump-autoload