Php
如何使用 memcached 和 unix 套接字儲存 php 會話
我用 systemd、nginx 和 php 用 php-fpm 執行 Arch linux。我正在嘗試(但失敗)配置 memcached 以使用 unix 套接字儲存會話。我已經安裝並啟動了 memcached,但是,我無法禁用網路。我將以下行添加到 /etc/conf.d/memcached
MEMCACHED_ARGS="-s unix:///tmp/memcached.sock -a 666"
我也試過:
MEMCACHED_ARGS="-s /tmp/memcached.sock -a 666" MEMCACHED_ARGS="-s unix:/tmp/memcached.sock -a 666"
當我重新啟動 memcached 時,我總是得到:
memcached.service - Memcached Daemon Loaded: loaded (/usr/lib/systemd/system/memcached.service; enabled) Active: active (running) since Sat 2013-01-19 17:41:15 PST; 5min ago Main PID: 773 (memcached) CGroup: name=systemd:/system/memcached.service └─773 /usr/bin/memcached -l 127.0.0.1
當我使用會話執行 php 腳本時,php 錯誤日誌顯示(不足為奇):
[19-Jan-2013 16:46:45 America/Los_Angeles] PHP Warning: Unknown: Failed to write session data (memcached). Please verify that the current setting of session.save_path is correct (unix:/tmp/memcached.sock) in Unknown on line 0
我還安裝了 php-memcached 包,但我不知道它的作用或如何讓它執行。我在 /etc/php/conf.d/memcached.ini 中取消了以下行的註釋:
extension=memcached.so
但這並沒有改變任何東西。
任何見解或建議將不勝感激。
記憶體記憶體配置.d
Memcached 的 unix 套接字只需要一個文件路徑。
MEMCACHED_ARGS="-s /tmp/memcached.sock -a 666"
stats
您可以通過 unix socket執行命令來確認 Memcached 是否正常執行。bash $> echo stats | nc -U /tmp/memcached.sock # returns list of server statistics
配置 PHP 的會話以使用 Memcached
編輯
php.ini
或/etc/php/conf.d/memcached.ini
添加會話支持。extension=memcached.so session.save_handler="memcached" session.save_path="/tmp/memcached.sock"
重啟服務並驗證php日誌