请稍侯

解决Call to undefined function imagettftext()方法

前几天系统崩溃了,重装系统之后第一件事情就是编译LNMP开发环境,当编译好php之后执行一个验证码生成的程序,结果报错”function imagettftext() not found”. 搞的我一脸懵逼,因为我在编译php的时候明明添加了--enable-gd 这个选项的。 没有办法,那就一步一步排查把,首先打开phpinfo页面,发现gd扩展是确实有安装的。google一下,找到一个...

Ubuntu 上如何检测某个软件包是否安装

记得初学linux的时候,到网上去查找”linux如何查询某个软件包是否安装”, 结果出来90%的都是 rpm -qa, 然后把这条命令在自己的终端敲出来的时候每次都是很遗憾的命名没有找到。 后来才知道,原来我使用的是ubuntu发行版,rpm是centOS的软件包管理机制。Ubuntu 应该使用 dpkg来查询,在本篇中,让我们看下如何在基于DEB的系统下检查是否安装了一个包。 要查...

细说mongodb 分组查询

最近在给 herosphp 框架添加mongodb支持,考虑到后期可能要切换模型,所以就把Model层把mysql和mongodb的查询语法做了兼容,屏蔽差异性。简单的增删查改都没有问题,可以很方便的做兼容,但是在处理分组查询的时候,发现mongodb的分组查询跟mysql的差别还是蛮大的。 mongodb的原生查询shell语法是这样的 db.collection.group({k...

简单了解php7的新特性

截止到目前为止,PHP官方已经发布了php7的7.0.9版本,现在来说php7的重大特性肯定已经是定型了,不会再有什么变动了。后续一些版本的迭代主要也就是修修bug,优化之类的。下面就来说话我们一直期待的php7会有那些主要的变化了。。。 1.标量数据类型 string, int, float, bool,会按照定义的类型自动进行数据类型的转换, 也就是说php7已经逐步支持强类型了...

php的true和TRUE引发的一些思考

最近在写php代码的时候突然很纠结一个问题,就是php里面的那些预定义常量也预定义变量到底有什么区别。比如说true和TRUE, false和FALSE,null和NULL… 那么这些变量对到底有什么区别呢,作为一名热衷技术热衷死磕的码农,果断要测试一下。 var_dump(true === TRUE); 结果为bool(true),那意味着他们是没有区别的。那么问题来了,php为什...

mongodb初步学习

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 安装 mongodb 安装很简单,不管windows还是linux直接去官方下载压缩包解压就行了。本人使用的linux wget https://fastdl.mongodb....

docker 学习笔记(二)

Dockerfile是用来自动化创建容器的语法命令,你可以先把你要创建的容器的脚本写成dockerfile,比如创建容器,然后执行一些初始化的命令,安装初始化的的软件等等,其实就是相当一个 录播功能,你先把你要做的操作用dockerfile记录下来,不用每次创建容器都要敲一大堆的命令,省事。 Dockerfile包含创建镜像所需要的全部指令。基于在Dockerfile中的指令,我们可以...

docker 学习笔记(一)

作为码农,最麻烦的莫过于系统奔溃之后需要重新配置环境了,这个比较麻烦且耗时,一个偶然的机会了解docker,它解决了长期困扰我的问题。 关于docker Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的...

linux 抓包神器 tcpdump

tcpdump 是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。 选项介绍 引用 -A 以ASCII格式打印出所有分组,并将链路层的头最小化。 -c 在收到指定的数量的分组后,tcpdump就会停止。 -C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_...

ubuntu编译安装php5.5.26

一般来说,各个发行版本的系统有自己集成的 php 软件包,所以通常你都没有手动编译 PHP 的需求,但是如果你是想自己编译一些自定义的扩展或者开发扩展, 也许本文会对你有所帮助。 安装依赖 apt-get install -y build-essential gcc g++ make for packages in bzip2 libzip-dev libperl-dev libc...