猫言猫语

严以律己·宽以待人·自强不息·知行合一

解决 Eloquent MassAssignment 异常

| 解决 Eloquent MassAssignment 异常已关闭评论

在 Laraevl 中偶尔需要在命令行直接灌点测试数据进去,结果却被提示:

Illuminate\Database\Eloquent\MassAssignmentException with message 'key'

应该是 key 字段无法直接 create 导致的,可临时禁用掉 MassAssignment 功能以解决这个问题

Eloquent::unguard();

理解 iptables REDIRECT

| 理解 iptables REDIRECT已关闭评论

iptables 里有一个 REDIRECT 目标,用于把路过服务器的某些流量重定向到服务器上某个端口进行处理,非常容易让人误以为是重定向到 loopback 的端口进行处理的。

其实这个流量是被重定向到数据包入网卡的那个的那个主地址进行处理,也就是说你的处理程序如果监听在 127.0.0.1 的话,路过服务器的流量可能就无法正常处理了。

因此在某些时候,还是需要监听在 0.0.0.0 才能按照你希望的结果进行处理。

使用命令行为树莓派 3 配置无线网络

| 使用命令行为树莓派 3 配置无线网络已关闭评论

首先打开无线客户端的配置文件:

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

然后在末尾添加 wifi SSID 与密码的配置,把下面大写的 SSID 与 PASSWORD 替换为你自己的网络信息,然后保存

network={
    ssid="SSID"
    psk="PASSWORD"
}

最后重新启动树莓派,树莓派就可以通过 wifi 联网了

为 Ubuntu 增加新 TrueType字体

| 为 Ubuntu 增加新 TrueType字体已关闭评论

在 Ubuntu 下增加新 TrueType 字体可以有两种有效范围,一种是在全局有效,还有一种是只对当前用户有效。

如果需要在全局添加字体,让所有用户都可以使用这个字体,则按以下操作步骤:

(1) 在 /usr/share/fonts 下新建一个子目录存放你下载的 .ttf 文件
(2) 然后再执行一下:fc-cache -fv

如果仅仅想为当前用户添加一个新字体体验一下效果,则可以按照这样的操作步骤:

(1) 把你下载的 .ttf 文件存放在 ~/.fonts 目录下
(2) 然后再执行一下:fc-cache -fv

CentOS 7 更改 GRUB 超时时间

| CentOS 7 更改 GRUB 超时时间已关闭评论

打开配置文件:/etc/default/grub

vi /etc/default

更改 GRUB_TIMEOUT 值为 0

GRUB_TIMEOUT=0

再执行命令:

grub2-mkconfig -o /boot/grub2/grub.cfg

CentOS 6 使用 Supervisor 进行进程管理

| CentOS 6 使用 Supervisor 进行进程管理已关闭评论

supervisor 是用 Python 开发的一套通用进程管理程序,能将一个普通的命令行进程变为后台 daemon,并监控进程状态,异常退出时能自动重启。

yum install epel-release
yum install supervisor

然后打开 /etc/supervisord.conf 在末尾添加一个需要持续运行的进程

[program:test1234]
command=/tmp/test1234

完成后启动 supervisord 服务,即可发现 test1234 进程也被启动起来了

root     14351     1  0 21:39 ?        00:00:00 /usr/bin/python /usr/bin/supervisord
root     14353 14351  0 21:39 ?        00:00:00 /tmp/test1234

当我们把 14353 进程 kill 掉,随后,会发现 test1234 进程又立即被启动起来了

root     14351     1  0 21:39 ?        00:00:00 /usr/bin/python /usr/bin/supervisord
root     15276 14351  0 21:43 ?        00:00:00 /tmp/test1234

同样使用 supervisorctl 命令也可以看到进程状态

[root@centos etc]# supervisorctl status
test1234       RUNNING    pid 19047, uptime 0:01:56

CentOS 7 安装 MQTT 协议消息中间件 mosquitto

| CentOS 7 安装 MQTT 协议消息中间件 mosquitto已关闭评论

MQTT 是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。

mosquitto 是一个实现了 MQTT 3.1 协议的代理服务器,由 MQTT 协议创始人之一的 Andy Stanford-Clark 开发,它为我们提供了非常棒的轻量级数据交换的解决方案。

以下是 CentOS 7 安装 mosquitto 的关键步骤:

yum install epel-release
yum install mosquitto
systemctl start mosquitto

mosquitto 服务启动后,将使用 TCP 1883 端口进行消息传输,我们再同时打开两个终端,分别输入以下命令,测试一下消息传递的效果:

mosquitto_sub -t topic1
mosquitto_pub -t topic1 -m "HelloWorld"

Mac OS X 安装 CP210x USB 串口驱动

| Mac OS X 安装 CP210x USB 串口驱动已关闭评论

访问 Silicon Labs 官方网站:https://www.silabs.com,找出:CP210x USB to UART Bridge VCP Drivers,下载:Download for Macintosh OSX (v4)

下载页面是:https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx#mac

下载地址是:https://www.silabs.com/Support%20Documents/Software/Mac_OSX_VCP_Driver.zip

下载后解压缩是个 dmg 文件,按照提示信息安装安装就可以了,如果使用的驱动不对,就会导致串口设备能发现,但无法正常进行数据传输。

解决 Ubuntu 下 Atom 中文显示乱码

| 解决 Ubuntu 下 Atom 中文显示乱码已关闭评论

先通过命令行安装中文字体:

sudo apt-get install fonts-wqy-microhei

再通过 Atom 的菜单打开 Packages -> Setting views -> Open,找到 Editor Settings -> Font Family,输入WenQuanYi Micro Hei Mono

再重新启动一次 Atom,代码中的中文就可以正常显示了。