自学 phpredis 的心路历程

Centos 7 下安装 redis 

使用的调试模式是:win开发 双系统调试(win,centos7) 在centos7 下面挂载win7共享文件夹。

 

1.可以打开官方网址 http://pecl.php.net/package/redis
查看最新版本,我推荐V3.1.2 (因为这是最稳定的,高可用的)一个版本
下载地址:http://pecl.php.net/get/redis-3.1.2.tgz

使用命令:
wget http://pecl.php.net/get/redis-3.1.2.tgz
tar -zvxf redis-3.1.2.tgz

cd redis-3.1.2

phpize

./configure --with-php-config=/alidata/server/php-5.5.7/bin/php-config

make && make install

安装后,得到安装位置所在的路径

/alidata/server/php/lib/php/extensions/no-debug-non-zts-20121212/
/alidata/server/php/lib/php/extensions/no-debug-non-zts-20121212/

vi /alidata/server/php/etc/php.ini

测试redis

发现不能连接 报如下错误:

Warning: Redis::connect(): connect() failed: Connection refused in /mnt/redis/index.php on
line 93

原因:只是安装了这个扩展,redis_server 服务没有启动

但是我找到不到 redis_server 文件在哪里

使用find / -name redis_server未找到此文件。

最近打算从redis.io官方下载去安装,启动redis 服务

$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz
$ tar xzf redis-3.2.8.tar.gz
$ cd redis-3.2.8
$ make

编译后会产生一个src 的目录,里面就是redis_server

$ src/redis-server 启动redis

下面我们来配置一下redis 找到redis.conf

一般都在你的解压的目录下面。也可使用

$find / -name redis.conf 找到此文件

现在我们来配置
$vi redis.conf

编写开机自启动脚本

基本原理为:
系统开机启动时会去加载/etc/init.d/下面的脚本,通常而言每个脚本文件会自定义实现程序的启动;
若想将新的程序开机自启动,只需在该目录下添加一个自定义启动程序的脚本,然后设置相应规则即可

如在这里我们在/etc/init.d/下新建一个 redis 的脚本,开机启动时会去加载执行该脚本。

redis脚本内容如下
---------------------------------
# chkconfig: 2345 90 10

# description: Redis is a persistent key-value database

###########################
PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis.pid
CONF="/etc/redis.conf"

case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$REDIS_CLI -p $REDISPORT SHUTDOWN
while [ -x ${PIDFILE} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac
##############################
-----------------------------------------

但是加上后,发现不起作用,开机后,服务没有运行,还只能是手动启动

这个放一边。后面有机会才去研究,怎么让它正常。今天的重点是学习phpredis

在win端 运行一下,发现 file_put_contents() 不能写入。提示权限问题。

又在网上一通找解决办法。整了二三个小时。最后理出了思路,是挂载的问题。

原因是:

在liunx下挂载共享文件夹 默认是有rw权限的,默认的用户是root,并且不能使用chmod,chown

修改权限,修改用户。但是http服务的用户是www,所以在终端下面是写入是没有问题,但是在web服务

下就不能写入。

所以必须在挂载时,指定用户组为www.

mount.cifs -o username=Administrator,password=123456,uid=www,gid=www //192.168.112.1/htdocs
/mnt/

 

posted @ 2017-04-09 18:22  ycookiee  阅读(160)  评论(0编辑  收藏  举报