2010-09-18 18 views
5

Trên máy chủ phát triển của chúng tôi, xử lý phiên hoạt động tốt. Trên máy chủ sản xuất của chúng tôi, nó không.Cấu hình PHP để bật phiên

phpinfo trên máy chủ phát triển cho thấy:

    session 
Session Support     enabled 
Registered save handlers   files user mm sqlite 
Registered serializer handlers php php_binary wddx 

phpinfo trên máy chủ sản xuất cho thấy:

    session 
Session Support     enabled 
Registered save handlers   files user 
Registered serializer handlers php php_binary wddx 

"mm sqlite" là gì và nó có thể gây ra vấn đề? Làm cách nào để kích hoạt tính năng này? Các cài đặt này là gì?


Phần còn lại của các thiết lập rất phổ biến giữa hai:

Directive Local Value Master Value 
session.auto_start Off Off 
session.bug_compat_42 On On 
session.bug_compat_warn 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//
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 /tmp /tmp 
session.serialize_handler php php 
session.use_cookies On On 
session.use_only_cookies On On 
session.use_trans_sid 0 0 

Can sự vắng mặt của "mm sqlite" dừng phiên PHP làm việc khi chuyển từ phát triển để sản xuất?

+0

php5 là phiên bản PHP hiện tại cho các độ tuổi đã có. không cần phải xác định nó –

+0

Không, không có "mm sqlite" ** có thể không ** ngừng các phiên PHP hoạt động. Và cài đặt cấu hình là lý do ít nhất cho một thứ không hoạt động. Đó là mã của bạn, anh chàng. Đó là mã của bạn, mà bạn nên bắt đầu để gỡ lỗi –

+0

Không chính xác Col. Tôi đã đóng khung một câu hỏi mới cũng mô tả lý do tại sao tôi phải đối mặt với một vấn đề ở đây - http://stackoverflow.com/questions/3740884/creating- new-tmp-folder-for-php-to-use – tzmatt7447

Trả lời

4

Lấy từ http://devzone.zend.com/article/141

Có một số tùy chọn tích hợp để lưu trữ dữ liệu phiên. Các phiên xử lý được thiết lập trong php.ini dưới chỉ thị tên

session.save_handler 

sqlite Tùy chọn, bạn có thể lưu trữ dữ liệu phiên trong một cơ sở dữ liệu SQLite. Để làm như vậy, sử dụng cấu hình như:

session.save_handler = sqlite 
session.save_path = /tmp/phpsess.db 

mm Đối với lưu trữ phiên hiệu suất cao, bạn có thể lưu trữ dữ liệu trong bộ nhớ phiên với các mô-đun mm chia sẻ bộ nhớ. Bạn sẽ cần biên dịch php với sự hỗ trợ mô-đun mm. Đây là một hướng dẫn để cấu hình xử lý phiên với mm (http://www.zend.com/tips/tips.php?id=164&single=1). Lưu ý rằng kể từ khi ngày phiên được lưu trữ trong RAM, bạn nên xem xét nó dữ liệu dễ bay hơi, và nó bị mất với cúp điện hoặc khởi động lại.

Lưu ý: liên kết trong hướng dẫn ở trên đã lỗi thời. Bạn có thể lấy mô-đun mm từ trang web OSSP.org.

+0

Cảm ơn bạn Codem - đó là hữu ích.Tôi đã không thể xác định vị trí những bản thân mình ... – tzmatt7447

+0

từ các ý kiến ​​của trang đó: 'Nên: session.save_handler = sqlite' là hợp lý –

+0

sửa session.save_handler để sqlite xin vui lòng – diego2k

0

Phần còn lại của cài đặt 'phiên' trông giống như thế nào trên trang phpinfo của bạn?

Cụ thể, giá trị của "session.save_handler" và "session.save_path" là gì?

Dưới đây là một số thông tin hơn: http://php.net/manual/en/session.configuration.php

"mm" và "sqlite" là thay thế tiết kiệm xử lý sẵn sàng cho bạn sử dụng. Theo mặc định, php sử dụng "tệp" sẽ lưu trữ dữ liệu phiên trên máy chủ cục bộ của bạn.