zoukankan      html  css  js  c++  java
  • php session目录无法写进数据的问题

    打算开启php的session功能,并将session信息存到文件里。

     

    修改php.ini,开启session功能:

    #将session信息存到文件中
    session.save_handler = files

    #开启二级目录存放session文件。如果不指定,会直接在/home/www/php-session/目录下存session文件,当session文件较多时,不方便查看文件,建议启用多级目录。

    session.save_path = "2;/home/www/php-session/"
    #启用cookies
    session.use_cookies = 1

    重启php-fpm服务。

    发现,/home/www/php-session目录下还是没有session文件产生。

     

    纠结了许久,才发现,php不会自动生成session的目录结构,因此session信息无法写进。需要借助源码包 ext/session 目录下的 mod_files.sh 脚本生成目录结构。

    # sh ext/session/mod_files.sh /home/www/php-session 2
    Usage: ext/session/mod_files.sh BASE_DIRECTORY DEPTH HASH_BITS
    BASE_DIRECTORY will be created if it doesn't exist
    DEPTH must be an integer number >0
    HASH_BITS(session.hash_bits_per_charactor) should be one of 4, 5, or 6

    根据报错信息,可知还缺少一个参数要指定。

    查看php.ini文件:

    ; Define how many bits are stored in each character when converting
    ; the binary hash data to something readable.
    ; Possible values:
    ;   4  (4 bits: 0-9, a-f)
    ;   5  (5 bits: 0-9, a-v)
    ;   6  (6 bits: 0-9, a-z, A-Z, "-", ",")
    ; Default Value: 4
    ; Development Value: 5
    ; Production Value: 5
    ; http://php.net/session.hash-bits-per-character
    ; session.hash_bits_per_character = 5

    在生产环境下,php官方推荐将 session.hash_bits_per_character 设置为5 。

    去掉注释,修改为:session.hash_bits_per_character = 5

    重启php-fpm服务。

     

    重新生成session目录结构:

    # sh ext/session/mod_files.sh /home/www/php-session 2 5

    session目录下,正常生成session文件了。

     

  • 相关阅读:
    测试
    【八十一题题目合集 微软面试100题 第八十一题】
    排队问题 【微软面试100题 第八十题】
    fiddler 正则 重定向IP
    浮动div 内部元素 垂直居中
    css 诡异的多出来的几像素
    前端开发 注意问题(1)input type=“number”
    实时监听input输入
    sudo执行命令时环境变量被重置的解决方法
    laravel4 中 Redirect::intended和Redirect::guest的关系及用法
  • 原文地址:https://www.cnblogs.com/hjqjk/p/5658385.html
Copyright © 2011-2022 走看看