自学 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/