note 111451 added to session.configuration

From: Date: Thu, 21 Feb 2013 01:29:36 +0000
Subject: note 111451 added to session.configuration
Groups: php.notes 
Request: Send a blank email to php-notes+get-193708@lists.php.net to get a copy of this message
Being unable to find an actual copy of mod_files.sh, and seeing lots of complaints/bug fix requests for it, here's one that works. It gets all its parameters from PHP.INI, so you don't have the opportunity to mess up: #!/bin/bash # # Creates directories for PHP session storage. # Replaces the one that "comes with" PHP, which (a) doesn't always come with it # and (b) doesn't work so great. # # This version takes no parameters, and uses the values in PHP.INI (if it # can find it). # # Works in OS-X and CentOS (and probably all other) Linux. # # Feb '13 by Jeff Levene. [[ $# -gt 0 ]] && echo "$0 requires NO command-line parameters. It gets does whatever is called for in the PHP.INI file (if it can find it). " && exit 1 # Find the PHP.INI file, if possible: phpIni=/usr/local/lib/php.ini # Default PHP.INI location [[ ! -f "$phpIni" ]] && phpIni=/etc/php.ini # Secondary location [[ ! -f "$phpIni" ]] && phpIni= # Found it? # Outputs the given (as $1) parameter from the PHP.INI file: # The "empty" brackets have a SPACE and a TAB in them. # PhpConfigParam() { [[ ! "$phpIni" ]] && return # Get the line from the INI file: varLine=grep "^[ ]*$1[ ]*=" "$phpIni" # Extract the value: value=expr "$varLine" : ".*$1[ ]*=[ ]*['\"]*\([^'\"]*\)" echo "$value" } if [[ "$phpIni" ]] then savePath=PhpConfigParam session.save_path # If there's a number and semicolon at the front, remove them: dirDepth=expr "$savePath" : '\([0-9]*\)' [[ "$dirDepth" ]] && savePath=expr "$savePath" : '[0-9]*;\(.*\)' || dirDepth=0 bits=PhpConfigParam session.hash_bits_per_character case "x$bits" in x) echo "hash_bits_per_character not defined. Not running." ; exit 2 ;; x4) alphabet='0 1 2 3 4 5 6 7 8 9 a b c d e f' ;; x5) alphabet='0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v' ;; x6) alphabet='0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v' alphabet="$alphabet w x y z A B C D E F G H I J K L M N O P Q R S T U V W" alphabet="$alphabet X Y Z - ," ;; *) echo "unrecognized hash_bits_per_character. Not running." ; exit 2 ;; esac else echo "Cannot find the PHP.INI file. Not running. Sorry." exit 2 fi # The depth of directories to create is $1. 0 means just create the named # directory. Directory to start with is $2. # # Used recursively, so variables must be "local". doDir() { local dir="$2" if [[ -d "$dir" ]] then echo "Directory '$dir' already exists. No problem." elif [[ -f "$dir" ]] then echo "FILE '$dir' exists. Aborting." ; exit 2 else if mkdir "$dir" then echo "Directory '$dir' created." else echo "Cannot create directory '$dir'. Aborting." ; exit 2 fi fi chmod a+rwx "$dir" if [[ $1 -gt 0 ]] then local depth=$(( $1 - 1 )) for letter in $alphabet do doDir $depth "$dir/$letter" done fi } echo "Running with savePath='$savePath', dirDepth=$dirDepth, and bitsPerCharacter=$bits." sleep 3 doDir $dirDepth "$savePath" exit 0 ---- Server IP: 69.147.83.199 Probable Submitter: 108.222.50.227 ---- Manual Page -- http://php.net/manual/en/session.configuration.php Edit -- https://master.php.net/note/edit/111451 Del: integrated -- https://master.php.net/note/delete/111451/integrated Del: useless -- https://master.php.net/note/delete/111451/useless Del: bad code -- https://master.php.net/note/delete/111451/bad+code Del: spam -- https://master.php.net/note/delete/111451/spam Del: non-english -- https://master.php.net/note/delete/111451/non-english Del: in docs -- https://master.php.net/note/delete/111451/in+docs Del: other reasons-- https://master.php.net/note/delete/111451 Reject -- https://master.php.net/note/reject/111451 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#193708) next »