Php

如何在 RHEL/CentOS 上的 redis 中創建 PHP 儲存會話?

  • September 14, 2016

通過 webtatic repo 進行一些執行 RHEL 7.2 和 PHP5.6 的開發和暫存 VM。

讓 Apache w/PHP 和 Node.js 執行良好。讓 redis 守護程序執行良好。

還沒有找到讓 PHP 在 redis 中儲存會話的最佳實踐。我看到對 phpredis 的引用,但看起來它需要從原始碼建構?……預兆?…不是通過 yum 的 RPM?

  • php-nrk-Predis?
  • php-pecl-返回?
  • 或者只是編輯php.ini raw?
  • 以上的一些組合?

終極目標:讓 Apache/PHP 和 Node.js 在同一個開發實例的 redis 中共享會話

由於 RHEL/CentOS 7.2 沒有直接的 PHP 5.6 支持,所以現在使用 webtatic repo(無論好壞)……這似乎可以解決問題。

# yum install redis

# yum install  php56w-pecl-redis

# diff /etc/httpd/conf.d/php.conf

23,25c23,28
< php_value session.save_handler "files"
< php_value session.save_path    "/var/lib/php/session"
< php_value soap.wsdl_cache_dir  "/var/lib/php/wsdlcache"
---
> # p_value session.save_handler "files"
> php_value session.save_handler "redis"
> # p_value session.save_path    "/lib/php/session"
> php_value session.save_path    "tcp://127.0.0.1:6379"
> # p_value soap.wsdl_cache_dir  "/var/lib/php/wsdlcache"
> php_value soap.wsdl_cache_dir  "tcp://127.0.0.1:6379"

# systemctl restart redis

# systemctl restart httpd

確保正確的 PHP 覆蓋指令處於活動狀態非常重要,因為 /etc/php.ini 沒有啟動它,/etc/httpd/conf.d/php.ini 啟動了它。通過呼叫 phpinfo() 瀏覽 test.php 文件;很有幫助。

你真的只有一個選擇。

nrk/Predis 是一個 PHP 類,它允許您編寫可以讀取和寫入 Redis 對象的程序。這不是您在這裡尋找的(儘管您可能會發現它在其他地方很有用)。

phpredis/phpredis 和 php-pecl-redis 完全一樣。這就是你要找的;它允許 PHP 在 redis 中儲存會話。請記住,您必須編輯 php.ini 或包含的文件以指定將會話儲存在 redis 中並提供連接資訊。

(並且由於您對最佳實踐感興趣,請注意使用 webtatic不是其中之一。在大多數情況下,您應該從 remi 的儲存庫獲取 PHP)。

引用自:https://serverfault.com/questions/803097