zoukankan      html  css  js  c++  java
  • linux安装redis服务,配置PHP扩展

    Redis安装

    1,安装redis

    wget http://download.redis.io/releases/redis-3.0.5.tar.gz
    tar -zxvf redis-3.0.5.tar.gz
    cd redis-3.0.5
    make
    cd src
    make install PREFIX=/usr/local/redis
    cd ..
    mkdir /usr/local/redis/etc
    cp redis.conf /usr/local/redis/etc/redis.conf

    或者直接批处理:
    cd && wget http://download.redis.io/releases/redis-3.0.5.tar.gz && tar -zxvf redis-3.0.5.tar.gz && cd redis-3.0.5 && make && cd src && make install PREFIX=/usr/local/redis && cd .. && mkdir /usr/local/redis/etc && cp redis.conf /usr/local/redis/etc/redis.conf

    2、默认情况,Redis不是在后台运行,需要把redis放在后台运行:

    vi /usr/local/redis/etc/redis.conf
    将daemonize的值改为yes

    2.1 如果redis需要设密码,改:

    requirepass 【密码】

    3,启动Redis:

    /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

    下面安装扩展,配置php支持

    1.下载编译安装redis

    $ wget https://github.com/phpredis/phpredis/archive/2.2.4.tar.gz
    $ cd phpredis-2.2.7                      # 进入 phpredis 目录
    $ /usr/local/php/bin/phpize              # php安装后的路径,使用phpize生成编译文件
    $ ./configure --with-php-config=/usr/local/php/bin/php-config
    $ make && make install

    2.修改php.ini添加redis扩展

    vi /usr/local/php/lib/php.ini       
    增加如下内容:
    extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20090626"
    
    extension=redis.so

    lnmp环境下,php.ini文件在/usr/local/php/etc/php.ini,这里会有些不同。

    有的会在编译时(make && make install)出现下面的错误

    fatal error: ext/standard/php_smart_str.h: No such file or directory

    那是因为你是PHP7版本,我们需要从github,下载指定的分支

    git clone https://github.com/phpredis/phpredis.git
    cd php redis/
    git checkout php7
    phpize
    ./configure
    make && make install
    启动扩展
    
    光安装了还不够,我们还需要编辑PHP的配置文件来使扩展被加载才行, vi  /uer/local/php/etc/php.ini,在配置文件中添加如下语句:
    
    extension=redis.so

    还有情况你会在执行,./config时,让你制定php-config的路径

    configure: error: Cannot find php-config. Please use --with-php-config=PATH
    //这里指定路径 [root@iZuf6gq83tirjb44hc5q6vZ phpredis]
    # ./configure --with-php-config=/usr/local/php/bin/php-config

    再一次执行 make && make install ,结果如下:

    Build complete.
    Don't forget to run 'make test'.
    
    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/

    查下php扩展下的redis.so文件,是否生成

    [root@iZuf6gq83tirjb44hc5q6vZ no-debug-non-zts-20160303]# ll
    total 6644
    -rwxr-xr-x 1 root root 3418276 Jun 28 13:45 opcache.a
    -rwxr-xr-x 1 root root 1635527 Jun 28 13:45 opcache.so
    -rwxr-xr-x 1 root root 1730895 Jun 28 22:32 redis.so

    再次vi php.ini,加上,不用加路径了,直接写下面的这段代码,重启服务,查看phpinfo

    extension=redis.so
    session.save_handler = redis                       #原值:files
    session.save_path = “tcp://127.0.0.1:6379″         #原值:/tmp,且未启用
    session.auto_start = 0                             #原值:0

    session的存储不再使以文件的形式存储到硬盘上,因为传统方式当用到seesion时,还要先读到内存中,这也是一些大网站,session值过多,导致程序运行效率低的原因,因为他要在一堆session文件中,将你要的session数据读到内存中
    这样配置session数据存储到redis中,大大增加了运行效率.

     

    完成!

    自己踩过的坑,只有自己才知道

  • 相关阅读:
    会话技术
    Http
    tomcat
    xml
    javascript
    css
    Html
    递归
    二叉树的相关复习
    vim学习
  • 原文地址:https://www.cnblogs.com/hanshuai0921/p/7092081.html
Copyright © 2011-2022 走看看