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

  • 相关阅读:
    vue-cli3.0
    windows服务器的误解
    redis实现消息队列-java代码实现
    Docker 修改容器内的时区
    Spring boot项目分环境Maven打包,动态配置文件,动态配置项目
    rsa公钥和私钥到底哪个才是用来加密,哪个用来解密?
    session和cookie的区别和联系详解,Cookie Session相关看这篇就够了。
    面试中的nginx高可用高并发!
    js正则表达式验证、匹配数字、匹配字符串、匹配中文、匹配任意字符备忘录
    thymeleaf模板、thymeleaf语法相关中文文档教程
  • 原文地址:https://www.cnblogs.com/ycookie/p/6685784.html
Copyright © 2020-2023  润新知