[請益] php.ini的Session設定啟用

看板PHP作者 (海風)時間9年前 (2016/02/13 04:56), 9年前編輯推噓0(004)
留言4則, 1人參與, 最新討論串1/1
//以下是phpinfo()輸出結果 session Session Support enabled Registered save handlers files user Registered serializer handlers php_serialize php php_binary Directive Local Value Master Value session.auto_start On On session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_httponly Off Off session.cookie_lifetime 0 0 session.cookie_path /share/Web/php/session/ /share/Web/php/session/ session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_divisor 100 100 session.gc_maxlifetime 1440 1440 session.gc_probability 1 1 session.hash_bits_per_character 4 4 session.hash_function 0 0 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path /share/HDA_DATA/.php_session /share/HDA_DATA/.php_session session.serialize_handler php php session.upload_progress.cleanup On On session.upload_progress.enabled On On session.upload_progress.freq 1% 1% session.upload_progress.min_freq 1 1 session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS session.upload_progress.prefix upload_progress_ upload_progress_ session.use_cookies On On session.use_only_cookies On On session.use_strict_mode Off Off session.use_trans_sid 1 1 //以下是php.ini [Session] session.save_handler = files session.use_cookies = 1 session.name = PHPSESSID session.auto_start = 1 session.cookie_lifetime = 0 session.cookie_path = /share/Web/php/session/ session.cookie_domain = session.serialize_handler = php session.gc_probability = 1 session.gc_divisor = 100 session.gc_maxlifetime = 1440 session.bug_compat_42 = 1 session.bug_compat_warn = 1 session.referer_check = session.entropy_length = 0 session.entropy_file = session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 1 url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset=" session.save_path = /share/HDA_DATA/.php_session //以下是 session01.php <?php session_start(); ?> <html> <head> <meta http-equiv="Content Type" content="text/html; charset=UTF-8"> <title>session01 </title> <style> </style> </head> <body> <?php $_SESSION['IDX1']=10; $_SESSION['IDX2']=20; echo "<hr>"; echo '<a href="session02.php">Go to Page-Session02</a><hr>'; ?> </body> </html> //以下是 session02.php <?php session_start(); ?> <html> <head> <meta http-equiv="Content Type" content="text/html; charset=UTF-8"> <title>session02 </title> <style> </style> </head> <body> <?php echo "IDX1 is:".$_SESSION["IDX2"]."</br>"; echo "IDX2 is:".$_SESSION["IDX2"]."</br>"; echo "<hr>"; echo '<a href="session01.php">Go to Page-Session01</a><hr>'; ?> </body> </html> //先在瀏覽器開session01.php,點擊Go to Page-Session02顯示以下: <html> <head> <meta http-equiv="Content Type" content="text/html; charset=UTF-8"> <title>session02 </title> <style> </style> </head> <body> IDX1 is:</br> IDX2 is:</br> <hr><a href="s1.php">Go to Page-Session01</a><hr> </body> </html> //問題:要如何修改php.ini才能使Session正常可用? //才有辦法在最後使之出現: IDX1 is:10 和 IDX2 is:20 //環境補充說明: // QNAP QTS 4.2.1 // PHP 5.5.29 // Server API:Apache 2.0 Handler // Apache API Version:20051115 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.126.209 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1455310579.A.854.html

02/13 22:35, , 1F
猜測是 /share/HDA_DATA/.php_session 這個目錄不存在或
02/13 22:35, 1F

02/13 22:35, , 2F
權限問題。
02/13 22:35, 2F

02/13 22:36, , 3F
可以試著用 http://goo.gl/s7bqO3 的方法把錯誤印出來看
02/13 22:36, 3F

02/13 22:37, , 4F
這樣就知道問題出在哪裡
02/13 22:37, 4F
我試著按你的方法叫出錯誤訊息 [/] # chmod 666 /share/HDA_DATA/.php_session [/] # ls -la /share/HDA_DATA/.php_session drw-rw-rw- 2 admin administ 4096 Feb 13 23:37 ./ drwxrwxrwx 33 admin administ 4096 Feb 11 15:53 ../ 此時透過session01.php和session02.php新加入顯示錯誤程式: ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); 會回傳: Warning: Unknown: open(/share/HDA_DATA/.php_session/sess_da2519c8bbab51f839ca0b906a3f6386, O_RDWR) failed: Permission denied (13) in Unknown on line 0 Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/share/HDA_DATA/.php_session) in Unknown on line 0 我再改權限為全部可讀可寫後 [/] # chmod 777 /share/HDA_DATA/.php_session [/] # ls -la /share/HDA_DATA/.php_session drwxrwxrwx 2 admin administ 4096 Feb 13 23:48 ./ drwxrwxrwx 33 admin administ 4096 Feb 11 15:53 ../ -rw------- 1 httpdusr administ 0 Feb 13 23:47 sess_0263a76edc2257bd7df2b3a6ae4fbcb9 -rw------- 1 httpdusr administ 73 Feb 13 23:47 sess_0f5dcdcae867886f13d0ad48c9dc5844 -rw------- 1 httpdusr administ 73 Feb 13 23:47 sess_18ce177bc8c5429d2ad6abbdf2fac52d -rw------- 1 httpdusr administ 73 Feb 13 23:47 sess_1a26e665987b3606322e29b52120274e -rw------- 1 httpdusr administ 0 Feb 13 23:47 sess_2104c53f5ecd17d27e7ef54b9343e67d -rw------- 1 httpdusr administ 73 Feb 13 23:47 sess_24c8ce30d9e52fbef0f0c5cf3bbb9b04 -rw------- 1 httpdusr administ 0 Feb 13 23:47 sess_92cc230c4053183b6746014b1fb5a7f0 -rw------- 1 httpdusr administ 0 Feb 13 23:48 sess_a2d01faa8eff88ec206b40eaf15010b8 -rw------- 1 httpdusr administ 73 Feb 13 23:48 sess_bc4a70f18c79fd47f8cc030ba0bc2515 -rw------- 1 httpdusr administ 0 Feb 13 23:47 sess_fe760a888ed3f2bd0c7284a2f1f6deaf 發現session01.php和session02.php的錯誤訊息不見了,且有找到上述的Session檔案 但是瀏覽器的結果 IDX1 is: 和 IDX2 is:後面還是空值 代表session01.php即便已經建立session檔案但還是沒有把值傳到session02.php 請教如何解決? 感恩!! ※ 編輯: pavlov (119.14.70.115), 02/14/2016 00:01:01
文章代碼(AID): #1MlaRpXK (PHP)
文章代碼(AID): #1MlaRpXK (PHP)