Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2824875
  • 博文数量: 587
  • 博客积分: 6356
  • 博客等级: 准将
  • 技术积分: 6410
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-23 10:54
个人简介

器量大者,福泽必厚

文章分类

全部博文(587)

文章存档

2019年(3)

2018年(1)

2017年(29)

2016年(39)

2015年(66)

2014年(117)

2013年(136)

2012年(58)

2011年(34)

2010年(50)

2009年(38)

2008年(16)

分类: LINUX

2015-04-28 14:49:02

##使用场景,不需要给研发开机器的权限,而研发又能操作redis库!
wget --no-check-certificate 

 tar zxvf phpredis.tar.gz 

 cd owlient-phpredis-90ecd17/

 /usr/local/webserver/php/bin/phpize 

 ./configure   --with-php-config=/usr/local/webserver/php/bin/php-config 

 make

 make test

  make  install

  cd /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/

 查看是否多出一个redis.so文件!

修改php.ini文件,将该redis.so 给加进去

通过php -m命令来查看是否已经有redis模块,如下:


开始我试着下载,解压后,直接作为一个php的项目来运行,结果发现运行报错:

PHP message: PHP Fatal error:  require(): Failed opening required '/data/redisadmin/includes/../vendor/autoload.php' (include_path='.:') in /data/redisadmin/includes/common.inc.php on line 2"

显然缺少文件,于是想着去看文档,文档中的方法如下:

git clone 
cd phpRedisAdmin
git clone 


发现使用上述的方法是有vendor目录的!


然后将该文件夹复制到/var/www/html目录下,然后在includes目录下复制config.sample.inc.phpconfig.inc.php  ,然后修改

$config = array(

  'servers' => array(

    array(

      'name'   => '10.10.11.32 server', // Optional name.

      'host'   => '10.10.11.32',  ##需要修改

      'port'   => 6379,         ##需要修改

      'filter' => '*',

在此根据后台日志的报错解决了两个问题:

1: PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 71 bytes) in /var/www/html/index.php on line 17

这个修改下php.ini中的内存分配就可以了 

2: [Fri Apr 17 15:42:34 2015] [error] [client 222.92.145.181] PHP Warning:  Unknown: failed to open stream: Permission denied in Unknown on line 0

[Fri Apr 17 15:42:34 2015] [error] [client 222.92.145.181] PHP Fatal error:  Unknown: Failed opening required '/var/www/html/index.php' (include_path='.:/usr/share/pear:/usr/share/php') in Unknown on line 0

这个是selinux的问题,关闭selinux就可以了

3: PHP Fatal error:  Call to undefined function mb_internal_encoding() in /var/www/html/includes/common.inc.php on line 59

解决方法:yum -y install php-mbstring  然后重相关服务即可

上面遇到的问题都解决了,接下来更加郁闷的是是后台不报错,web页面一直在那里转,最后在日志里面有输出:

PHP Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/html/index.php on line 17

后来我想到一个测试方法:

[root@localhost liuxiaojie]# cat a.php 

$redis = new Redis();

$redis->connect('10.10.11.30',6389);

$redis->set('test','hello world! How are you');

echo $redis->get('test');

?>

 

结果显示是正常的!

实在想不到解决方法了,很是郁闷,后来无意发现了使用localhost,页面一下就显示出来了,尽管我机器上没有redis,后来哥们给我另外一个redis实例,我在config.inc.php简单修改一下,立刻就显示出来了!

于是猜到是该redis实例的问题,但有陷入了深思,机器的防火墙正常,redis实例通过测试程序能访问,为什么通过却访问失败,后来终于想通了,原来是显示的时候会把data0库里面所有key都给加载出来,该redis实例的keys值太多(大概有几千万)无法一下子加载出来!所以页面就一直在那里转!

 


##如果一个db中有太多的key(例如:上千万),使用这个工具的时候有问题,页面加载的时间比较久,超时(超过php.ini中设置)



阅读(4049) | 评论(1) | 转发(0) |
0

上一篇:tomcat备忘

下一篇:Zabbix unkown/unsupported email

给主人留下些什么吧!~~

敛青2015-12-01 09:07:05

感谢分享~~