Powered by Laravel

工作上遇到一个问题,有个栏目下面的文章全部是404,首先看了一下CDN源服务器,发现文件都正常,是访问是404,以为是CDN的问题,于是告知运维联系CDN,CDN方反馈源站返回302到404,修改hosts试了一下,果然是这样,后来查看了Nginx配置,发现了一个坑,配置是这样的:

location /jijin {
    return 404;
}

看了看地址,明白了,URL是这样的:

http://domain.com/jijinx/jijin/2016-08/9342772.html

/jijinx匹配到了/jijin,所以返回了404,要写成/jijin/才行。

代码是这样:

# encoding:utf-8
import urllib
import re
import json

url = 'http://news.163.com/special/00014RJU/nationalnews-json-data.js'
result = urllib.urlopen(url).read().strip()
pattern = re.compile(r';var newsList=(.*)')
matchs = pattern.match(result)
print(matchs.group())

这样只能匹配第一条数据,后来查阅资料发现.*只能匹配非换行符,换成[\s\S]*即可,即

pattern = re.compile(r';var newsList=([\s\S]*)')


ssh服务器之后编辑文件提示写入swap错误,查看磁盘存储发现空间被占用100%,其中/var/log/maillog占了很大一部分,删除之后发现问题还是存在,查阅资料之后发现,如果服务正在运行,删除日志的话空间还是没有释放,于是重启rsyslog服务之后空间恢复正常。

service rsyslog restart


v2ex签到脚本,结合crontab实现自动签到,免去手动签到麻烦,代码属于Demo级别,贴出来看看就好。

错误日志是这样的:

ConnectionException in AbstractConnection.php line 155:
Connection refused [tcp://redis:tcp://172.17.0.2:6379]
Laravel中代码是这样的:
Cache::put('test', 'killer', 20);
dd(Cache::get('test'));
进入php容器使用redis-cli连接没有问题,而且在Laravel修改一下代码,直接使用\Predis\Client连接是没有问题的

Windows下开发真是折腾,无奈工作中要使用一些win软件,不得已,使用vagrant经常重启之后就会出现错误,今天启动的时候又出错了,所以决定在win下使用Docker,然后又遇到了坑,因为Windows不支持Docker,所以Windows下的Docker实际上还是基于虚拟机,所以,涉及到一个虚拟机与物理机的目录共享和端口映射问题。

要显示评论数量首先要引入下面的这个js:

<script id="dsq-count-scr" src="//yourusername.disqus.com/count.js" async></script>
然后在需要展示数量的地方的href增加#disqus_thread这个属性,比如 Link 然而我加上之后出错了,在文章详情页没问题,但是列表页只有第一篇显示正常,其他的都没有效果,Google搜索一下,找到了解决方法

运行环境: docker-compose运行了四个容器,分别是nginx、php、mysql、redis容器 php环境:laravel 出现的问题: 在容器内执行php artisan migrate的时候提示pdo timeout,但是浏览器访问正常。