一、phpwamp集成环境中里在php7.1.5下安装php_redis扩展
phpwamp集成环境使用起来非常方便,选择要启用的环境启动即可,可以非常方便地在apache,nginx,php各版本之间切换。启动后的界面如下图,不过在使用phpwamp的过程中,碰到和解决了以下问题,
1. 第一个是路径问题,
在phpwamp里nginx中的配置文件nginx.conf中,关于路径不要使用windows里的反斜线,而统一使用正斜线,我开始使用的时候就因为使用反斜线如下:我想更换web站点的目录,修改nginx配置文件的root项。
root E:\htdocs\ newapi\www; 最后在报错中发现到了weapi全部换了一行,而环境在启动时也出现了问题。所以不要使用反斜线,以造成一些意外的问题。
2. 第二个是在PHP的启动调试问题
在PHP的启动调试问题上,phpwamp环境在启动的时候是不会报PHP的启动错误的,也没有任何日志,如果php启动失败,看不到php启动失败的原因,只是在nginx的启动日志中只会报client: 127.0.0.1 的9000端口响应异常,而不会报具体php启动失败的原因,这时可以直接进php版本目录中双击执行php-cgi.exe文件,就可以查看php启动失败的原因。
3.加载redis扩展的问题
第三个是我碰到的加载redis扩展的问题,说出来我也不敢相信最终的解决方案。windows下加载redis扩展如果是apache环境,直接加载php_redis.dll文件即可,如果是nginx+php,则不仅要php_redis.dll,而且还需要一个文件php_igbinary.dll。并且在php.ini中增加加载这两扩展时,redis扩展必须要在后面加载。
[redis]
extension=php_igbinary.dll
extension=php_redis.dll
我的PC环境是win7旗舰版64位,使用的php环境是:nginx+php7.1.5。下载的php_redis和php_igbinary分别是:
https://pecl.php.net/package/redis/3.1.3/windows
http://windows.php.net/downloads/pecl/releases/igbinary/2.0.1/
里面的:
php_redis-3.1.2-7.1-nts-vc14-x64
php_igbinary-2.0.1-7.1-nts-vc14-x64
然而在执行php-cgi.exe时就是报错,期间尝试了多种方法,更换各种版本的php_redis以及igbinary.就是不行,期间也发现报错的路径中php_redis前面是反斜线,以为是这里的问题,修改了php.ini中的extension_dir的路径,但是还是行,快崩溃的时候,我又再次看了一下报错的信息:它的提示是不是有效的win32程序,我于是跑到上面的两个网址中去下载,两个X86的版本文件:
7.1 Non Thread Safe (NTS) x86的php_redis,和 php_igbinary-2.0.1-7.1-nts-vc14-x86.zip,再次放进ext目录中试了试,结果它神奇地能运行!我都不敢相信,为什么我这是64位的PC,结果只能运行X86的php_redis扩展才能正常!
4. 应该是32位和64位的问题
后有网友提示,应该是32位和64位的问题。很久前的问题,转移时添加一下文章评论。
Level : 1. User:us20200324142818-244 Time:2020-03-24 14:29:55
呵呵,因为你photo是32位的,和你系统64位没关系,你用64位扩展,除非你自定义个64 位的php
Level : 2. User:us20200324142818-244 Time:2020-03-24 14:30:21
错别字,重发,呵呵,因为你php是32位的,和你系统64位没关系,你用64位扩展,除非你自定义个64 位的php
Level : 3. User:us20200117174931-934 Time:2020-03-29 08:04:34
[linge] 好久前的事了,忘得差不多了,不过谢谢回复!
二、mysql索引类型和索引方法笔记
1. mysql索引类型有:normal,unique,full text
normal:表示普通索引,常用的索引。
unique:唯一不重复的索引,一般身份证号适用。
full text: 全文索引。FULLTEXT用于搜索很长一篇文章的时候,效果最好,不过mysql的full text索引只针对英文有效。
应该建哪个索引,需要根据字段特性,一般来讲基本都是normal.如果有多个字段做联合主键或者有像身份证号这种唯一的数据,可以使用unique,full text在中文数据库里用得很少。因为它不支持中文全文索引。
2. mysql索引方法有:btree和hash
一般来讲,也是用btree用得比较多,因为它需要满足各种SQL查询的需要。在创建索引时,应该在哪些字段上创建索引和创建什么类型的索引:
1.为经常需要排序、分组和联合操作的字段建立索引
2.为经常作为查询条件的字段建立索引,但都要注意索引也不能建立过多
3.如果可以尽量使用唯一性索引
4.尽量使用前缀来索引
使用前缀索引:前缀索引能减少索引的大小并提高速度。如下示例即是以字段chars的前三个字母前缀做索引,
alter table t_score add key(chars(3));