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文件了。

     

  • 相关阅读:
    分布式日志收集系统: Facebook Scribe之日志收集方案
    20111030 19:37 杨辉三角形 (java)
    pku acm 1833 排列
    俞敏洪郑大演讲经典语句
    自己在inode客户端的大量问题(不断更新中)(20120223 21:24 )
    智力测验:硬币问题
    windows up可以更新但是无法上网的一天挣扎
    hdu1754 I Hate It
    acm算法资源网站
    pku3041 Asteroids
  • 原文地址:https://www.cnblogs.com/hjqjk/p/5658385.html
Copyright © 2011-2022 走看看