介绍介绍说起Python大家想到的都是一门开发小程序的语言,其实我们还可以使用Python编写web程序,想一想用Python做一个网站,是不是很兴奋啊?使用Python开发web程序其实是把Python当做CGI程序使用,CGI是Common Gateway Interface的简写,意思是通用的网关接口。也就是说,不单单Pytho...
介绍介绍上一课我们通过Dockerfile把PHP、MySQL、Redis、MongoDB、Elasticsearch和Nginx重新安装了一遍,大家会发现单独启动这些相互依赖的软件还真是技术活,需要根据依赖关系按顺序启动容器,一旦容器退出了还要想办法及时启动起来。这个问题在早期的Docker部署时期只能通过Shell脚本+Cront...
介绍介绍Nginx是一个反向代理软件,大部分的网站都采用Nginx作为网站/平台的服务器软件。Nginx除了可以直接作为web服务器使用外,更多的情况是通过反向代理将请求转发给上游服务器。配置上游服务器可以使用upstream进行设置,通过upstream可以实现服务的负载均衡规则,可以提高服务器的高可用性。今天福哥要带着大家把Ngi...
介绍介绍upstream timed out (110: Connection timed out) while reading response header from upstreamno live upstreams while connecting to upstreamseems busy (you may need to ...
介绍介绍ab -n 100 -c 10 https://tongfu.net/
介绍介绍大家都知道CentOS 7操作系统默认就带了一个Python的解析器,可以直接运行python程序。不过虽然有了Python解析器,却没有Python包管理工具pip,如果我们想安装Python包的话就无从下手了~~原因可以想象一下,如果允许服务器随便安装Python包,这是一个挺可怕是事情。所以,如果我们想要使用Python...
介绍介绍前面福哥已经把之前在微信公众号里删除掉的文章全部都重新发布出来了,这算是续上了!这让很多老朋友看了两个月的旧内容,福哥实在是不好意思啊,权当是温故而知新吧!技术这东西不怕重复劳动,重复的次数多了,就找到窍门了,然后就水平就提高了!今天福哥打算给大家放出一个常用的前端控件——消息提示框tips。我们在操作网站的时候,尤其是填写功...
介绍介绍我们打开百度首页,在搜索输入框内输入一个关键词,会发现在输入框下面会出现一个下拉菜单,里面是一些包含我们输入的关键词的搜索关键词,下拉菜单里的关键词可以通过键盘的上下键选择或者直接通过鼠标点击选择,大大提高了我们的使用体验。这种功能就是自动完成的功能,其实浏览器本身就支持这种自动完成功能。不过,浏览器的自动完成功能是以你的操作...
介绍介绍福哥在配置MySQL的复制同步的功能的时候,发现这个同步数据的日志是存储在文件里面的,如果数据更新频次非常高的话,对磁盘性能是一个考验~~原因默认情况下master状态信息和slave状态信息都是以文件形式存储起来的,可以通过如下的方法查看。show variables like '%in...
介绍介绍福哥今天要详情的跟大家讲讲图像处理库pillow的使用技巧,pillow是一个非常强大的图像处理库,基本可以满足日常使用当中的所有图片加工的需求。学会pillow库的使用技巧,就可以对我们的照片进行自动化的加工处理了。格式转换可以使用convert方法转换图片模式参数说明1 (1-bit pixels, black and w...
介绍介绍我们的TFLinux是CentOS 7操作系统,在CentOS 7里面增加了一个管理防火墙的工具就是firewall-cmd,这个工具通过firewalld服务起作用,我们可以通过firewall-cmd去控制firewalld服务的功能。今天福哥就把这个firewalld的使用方法教给大家~~添加如果我们要添加一个端口可以使...
介绍介绍福哥在给同福网增加全文搜索功能的时候遇到了一个需求,福哥想要调出“热门标签”列表,这个可以通过SQL语句的Group by来实现。但是福哥想通过Elasticsearch来完成,毕竟ES的执行效率要快很多,那么如何通过Elasticsearch来实现类似SQL的Group by语句的效果呢?通过研究发现了在Elasticsea...
介绍介绍福哥把PHP从Apache module换成了Fpm,跑了几天突然发现网站打不开了。页面显示超时,检查MySQL、Redis一众服务都正常。进入Fpm容器查看日志,发现了如下的错误信息:server reached pm.max_children setting (5), consider raising it原因原来默认情况...
介绍介绍福哥在通过crontab设置计划任务的时候,经过遇到预期的任务没有执行的情况,想必是任务命令出错了,可是到底是什么错误呢?从哪看这个错误信息呢?日志原来系统有一个crontab的执行日志,路径是/var/log/cron,我们可以在/var/log/下面查看cron开头的日志文件。
介绍介绍福哥发现在Python3里面调用父类的构造函数和Python2不一样了,直接使用super().__init__()行不通了!后来福哥经过一番研究发现了可行的方案,分享给大家!方法一可以直接使用父类的名称调用父类的构造函数__init__(),这样比较直观,语法也很简单。注意:使用父类的名称调用__init__()需要传递se...
介绍介绍Git是一个非常主流的代码版本管理工具,这个工具的特点是将代码管理从以文件为单位改成了以项目为单位,通过强大的分支(branch)管理功能可以将整个项目进行前进(forward)和后退(backward),从而达到灵活的版本切换的目的。Git的这个设计真的是很超前,很符合现今的项目开发协作的真实情况,现如今的项目都是多个子项目...
介绍介绍iptables是Linux操作系统控制系统防火墙的工具,是一个软件防火墙。使用iptables可以实现针对服务器网络的完全定制化配置,无论是要限制内部到外部的访问,还是控制从外部进入内部的访问,又或者是给本地服务端口开放访问权限,这一切的一切都是基于iptables设置的。可以说玩转了iptables就可以随心所欲地控制Li...
介绍介绍福哥今天带着大家完成修改个人资料表单的后一部分,实现表单的数据载入功能。要实现表单数据的载入首先得开发一个表单数据的接口,这个表单数据接口需要对应一个单独的实体对象。根据资源路径命名规范,路径里只能出现资源名称,不能出现事件行为。提交表单和数据载入都属于用户的个人资料数据,不能建立两个个人资料接口,怎么办?我们可以使用资源路径...
介绍介绍福哥今天会带着大家完成设置用户头像的功能的开发。设置用户头像是一个特殊的表单,它含有文件上传功能的HTML输入控件,处理这种表单需要一些技巧。文件上传功能需要使用类型为file的HTML输入控件,我们的TFPHP框架的表单是使用AJAX技术进行提交的,而前面我们使用jQuery的serialize方法收集表单数据的方式并不适用...
介绍介绍福哥今天要带着大家完成TFUMS系统的修改登录密码功能。修改登录密码功能相对比较简单,一般网站会直接让登录用户随便改登录密码,这样存在一个问题,就是当用户登录后离开电脑,“陌生人”操作电脑修改了登录密码,用户回来后发现无法登录就尴尬了!福哥为了避免这个问题,在修改登录密码的时候要求操作者(也可能不是用户本人)提高当前的登录密码...
介绍介绍福哥今天要给TFPHP框架添加一个新的对象,就是用来加工图片的工具对象TFImage。一般情况下,在做web开发的时候会有很多场合需要对用户上传的图片进行加工处理,常有的加工操作有缩小、旋转、裁剪、加水印、写文字等等。在PHP里面如果要对图片进行加工处理的话就需要用到GD扩展库了,这个GD扩展库在我们的TFLinux里面已经安...
介绍介绍在现如今的互联网时代里电子邮件的使用率大幅度降低了,除了企业内部发通知之外就剩下网站平台发送激活邮件使用了。但是无论如何发送邮件这个需求还是有的,而大多数发送邮件都是使用SMTP协议方式发送的,因为匿名邮件会被大多数客户端(如:Outlook、Foxmail、GMail等等)自动丢尽垃圾箱里面了。今天福哥就要给我们的TFPHP...
介绍介绍福哥今天要带着大家完成绑定邮箱功能的前半部分——发送绑定邮箱激活码邮件。这里面有几件难题:1)要实现邮件激活码,需要设计一个可逆的加密/解密功能;2)激活链接必须是一个完整的URL地址;3)激活链接必须有时效性。第一个问题,福哥经过再三考虑决定使用AES算法实现一个可逆的加密/解密功能,为了保证每次的激活码不一样,原数据增加随...
介绍介绍福哥今天带着大家完成绑定邮箱功能的后一部分——验证绑定邮箱激活码功能。这个激活码的验证需要几个步骤:1)根据激活码使用AES算法解密得到原始数据;2)判断激活码内的用户状态是否正常;3)判断激活码内的邮箱地址是否被占用;4)写入绑定邮箱数据。解密激活码比较简单,不过要考虑一个时间差的问题,因为激活码的时间戳精确到1个小时,而生...
介绍介绍福哥今天带着大家完成会员中心的最后一个表单——设置安全问题的开发。这个安全问题一般情况下是不允许修改的,所以我们暂时也不提供修改的功能。密码安全问题一共有三组,每一组一个问题配着一个答案。问题都是一样的,所以实际上我们是在一组问题里面挑出三个问题。既然问题是固定的,就可以用编号来表示,而答案是根据用户自己的想法写的,只能是原封...