最近写猪比的GOCQ托管服务,遇到了几个小坑,这里记录一下
一、PHP的exec函数执行需要挂在后台的操作
需要用exec运行gocq,一开始我是这么写的:
exec("cd ./gocq/0/3582675884/ && nohup ./go-cqhttp 3582675884 az &");
说白了就是使用nohup &
来后台运行。
但是这么做有个缺点,就是无法获取到终端的返回值。
不过这倒不是问题,毕竟用nohup执行的一般也不需要返回值,那么直接
header("Connection:close");
不要让前端等太久以至于524
不过问题很快来了,跑了一段时间相安无事,但是突然ps aux | grep go-cqhttp
发现进程无了
然后又试了很多种情况比如去掉nohup
等,都没用
不卖关子了,直接给出正解:
exec("cd ./gocq/0/3582675884/ && ./go-cqhttp 3582675884 az > /dev/null &")
这样的话就是把所有输出全部扔掉(应该是),不知道具体为啥,反正这样写之后再也没掉过
也可以尝试这种方法
二、cookie作用域问题
写了一个很常见的页面,点按钮就会设cookie然后跳转到另一个详情页面
然后两个按钮分别点了一下,按理说详情页面根据cookie不同内容也会不同,但是点进去后发现两次内容全部相同。
然后看了一下Cookie,发现有两个相同的cookie。
原来是这两个cookie作用域不同,结果导致PHP获取到的一直是另一个cookie
那好吧,我们就统一一下作用域呗
setcookie(键, 值, 过期时间, 作用域);
然后js的话我用的是jq的cookie插件,详见菜鸟教程
三、关于MDUI一些建议(一)
MDUI有个自适应的网格布局,比如说.mdui-row-sm-6
就是小屏幕设备及以上分两栏显示。
但是如果仅仅是分两栏显示的话,不建议用网格布局(会很难看),可以用
<div class="mdui-clearfix">
<div class="mdui-float-left" style="width:48%;">
Something
</div>
<div class="mdui-float-right" style="width:48%;">
Something
</div>
</div>
这样,如果是移动设备的话可以写个判断,结合jq的$(selector).width();
等进行适配
四、关于MDUI一些建议(二)
网格布局文档里说.mdui-row
必须要在.mdui-container
中,但是mdui-container
的边距某些情况下就相对较大
可以将.mdui-container
改为.mdui-m-x-1
这样,设置x轴的margin
为8px,这个边距就好很多了
注:以上MDUI版本为1.0.1
az
喝过茶了已经不干了哦
目前还有没有更新
有没有软件
有一个问题是我用我的笔记本Chrome浏览器,加载完成后过一段时间就页面卡住了。并且加载速度会放慢,如果不做出优化请慎用。