centos系统python版本升级从2.6到2.7
你喜欢的姑娘在学习
查看python的版本
1 | #python -V |
下载Python-2.7.3
1 | #wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2 |
解压
1 | #tar -jxvf Python-2.7.3.tar.bz2 |
更改工作目录
1 | #cd Python-2.7.3 |
安装
1 | #./configure |
查看版本信息
1 | #/usr/local/bin/python2.7 -V |
建立软连接,使系统默认的 python指向 python2.7
1 | #mv /usr/bin/python /usr/bin/python2.6.6 |
重新检验Python 版本
1 | #python -V |
解决系统 Python 软链接指向 Python2.7 版本后,因为yum是不兼容 Python 2.7的,所以yum不能正常工作,我们需要指定 yum 的Python版本
1 | #vi /usr/bin/yum |
将文件头部的
1 | #!/usr/bin/python |
改成
1 | #!/usr/bin/python2.6 |
workerman聊天室
穷人什么苦都能吃就是吃不了学习的苦.### 客户端
1 | <!DOCTYPE html> |
服务器端
1 | <?php |
python截图
你不能把这个世界,让给你所鄙视的人。
简单的三行代码就可以实现:
1 | from PIL import ImageGrab |
使用 selenium
1 | from selenium import webdriver |
加载js,使网页显示完全
1 | from selenium import webdriver |
使用 PhantomJS(效果不太好)
1 | from selenium import webdriver |
升级版
1 | import StringIO |
phpize安装php扩展
这十年来做过的事,能令你无悔骄傲吗? 那时候你所相信的事,应该没动摇吧?如果要安装的扩展在php源码ext目录中没有,那么这个扩展需要到http://pecl.php.net 搜索下载
以安装libevent扩展为例(假设系统安装了libevent-dev库)
1、下载libevent扩展文件压缩包(在当前系统哪个目录下载随意)
1 | ~# wget http://pecl.php.net/get/libevent-0.1.0.tgz |
2、解压扩展文件压缩包
1 | ~# tar -zxvf libevent-0.1.0.tgz |
3、进入到源码目录
1 | ~# cd libevent-0.1.0/ |
4、运行phpize命令
1 | ~# phpize |
5、运行configure命令
1 | ~# ./configure |
6、运行make命令
1 | ~# /bin/bash /data/test/libevent-0.1.0/libtool --mode=compile cc -I. -I/data/test/libevent-0.1.0 -DPHP_ATOM_INC -I/data/test/libevent-0.1.0/include |
7、运行make install命令
1 | ~# make install |
8、配置ini文件
1 | 通过运行 php --ini查找php.ini文件位置,然后在文件中添加extension=libevent.so |
关于php的PECL和PEAR
总有一天,我会拥有我梦寐以求的6块腹肌,可是我还是先把这个汉堡吃完……
什么是PEAR
PEAR的全称是PHP Extension and Application Repository,是PHP的扩展库,采用PHP语言编写。所以我们可以直接下载,并在我们的代码中包含(include)扩展库。
什么是PECL
PECL的全称是PHP Extension Community Library,它也是PHP的扩展库。PECL的扩展都是采用C语言编写的,可以被载入PHP中,给PHP增加额外的功能,比如PHP的Mongo扩展。
即 php 的 so 格式的扩展
centos
- 安装: yum install php-pear
ubuntu
- 安装: sudo apt-get install php-pear
phpize
centos
- 安装: yum install php-devel
- 查看: which phpize
其他
在网页中打印phpinfo()看到安装了某个扩展,不代表命令行的PHP CLI也安装了对应的扩展。
- 如何确定PHP CLI安装了哪些扩展
运行 php -m
会列出命令行 PHP CLI 已经安装的扩展
- 如何确定PHP CLI 的php.ini文件的位置
可以运行php --ini
查找PHP CLI的ini文件位置
git丢弃本地修改的所有文件
我喜欢你,像风走了八万里,不问归期。
1 | git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态 |
MYSQL静态表-动态表-压缩表
我是主角,我不能死。mysql在创建表的时候定义表的性质(也叫表的类型),共有三种:静态表,动态表,压缩表。默认是静态表,如果存在varchar、blob、text字段,表类型就是动态了。
静态表
字段有固定长度,例如:char(20)。如果使用gbk字符集存储中文username,将占用40byte,如果username的实际内容没有达到 40byte,将会填充空格,以达到40byte。速度很快,因为mysql知道username总是从第41个字节开始,容易缓存,出现问题后也容易恢 复(mysql知道记录的确切位置),需要更多的硬盘空间(如果有三个上面的字段,一条记录就会占120字节,即使实际只用了其中一部分)
动态表
字 段不定长(变长),这种表格式比较节省空间,但是复杂度更高,每条记录都有一个header,作用就是表明该记录有多长,所有的字符串列都是动态的(除非 小于4个字节,这种情况下,节省的空间可以忽略不计,增加的复杂度会反而会导致性能丢失),通常占用比静态表少的多地空间,但是必须经常维护(避免碎 片),例如:更新了用户名somebody为somebodyt,t不能立刻就出现在y的后面,因为空间被其他记录占用,对于出现碎片的列,每个新连接会 损失6个字节。而且出现问题后不容易重建(前面我说的静态表正好相反),如果碎片严重,有可能出现库爆炸(^_^).
不包括连接的动态记录的空间消耗可以用下面的公式计算:
3+(列数+7)/8+(字符列数)+数字列的打包尺寸+字符串长度+(空列的数量+7)/8
每条记录的header可以表明那个字符串列是空的,那个数字列包含0(非空),在那种情况下不向磁盘存储,非空字符串包含一个长度字节加上字符串内容。
压缩表
只读,使用很少的空间,用myisampack工具创建,表要少得多,每条记录分开压缩,所以不能同时访问,可以压缩静态表和动态表。
创建方法:myisampack [options] filename
安装phpRedisAdmin
Laravel使用redis存储session
水来我在漩涡中等你 火来我在灰烬中等你默认情况下,Redis 服务会提供 16 个数据库,Laravel 使用数据库 0 作为缓存和 Session 的存储。 在使用的过程中觉得这个默认的设置挺不合理,因为当你在执行命令`php artisan cache:clear` 的时候,会把 Session 也连带清除了,导致所有用户需要重新登录。
配置 Session Redis 数据库
修改 config/database.php,在 redis 选项内增加 session 选项,并把 database 修改为 1:
1 | 'redis' => [ |
指定 Session 使用数据库
修改 config/session.php
1 | 'connection' => 'session', |
开始使用
修改 .env 文件的 SESSION_DRIVER 选项为 redis,开始应用上。
1 | SESSION_DRIVER=redis |