Я столкнулся со странным поведением в кеше сеанса phpmyadmin + redis php. Вот моя конфигурация пула php-fpm:
php_value[session.save_handler] = redis
php_value[session.save_path] = "tcp://127.0.0.1:6379"
Эта конфигурация отлично подходит для простого скрипта php:
<?php
//simple counter to test sessions. should increment on each page reload.
session_start();
$count = isset($_SESSION['count']) ? $_SESSION['count'] : 1;
echo $count;
echo "<br>";
$_SESSION['count'] = ++$count;
$username = $_SESSION['username'];
if(isset($_SESSION['logged']) && $_SESSION['logged']=='yes') {
echo "$username";
}
$_SESSION['username']='Teddy';
$_SESSION['logged']='yes';
?>
Я вижу приращение и сообщение Тедди.
Но когда я пытаюсь получить доступ к phpmyadmin через 'http: // myserver / phpmyadmin`` Я всегда получаю страницу аутентификации, даже после успешного входа в систему меня всегда перенаправляют на эту страницу входа ...
Если я переключусь на сеансы пути:
php_value[session.save_handler] = files
php_value[session.save_path] = /var/www/vhost/sessions
Все работает хорошо (мой php скрипт и phpmyadmin).
Я хотел бы знать, сталкивался ли кто-нибудь с подобной проблемой и есть ли решение? Может ли это быть ограничением phpmyadmin?
Я использую Linux Debian 8.6 + phpmyadmin 4.2.12-2 + php5-fpm 5.6.24 + redis-server 3.2.4-1.
Мой vhost настроен таким образом:
Alias /webops /usr/share/phpmyadmin
...
<FilesMatch "(^$|\.php$)">
SetHandler "proxy:unix:///var/run/php-fpm/vhost.sock|fcgi://vhost/"
</FilesMatch>
<Proxy fcgi://vhost/$1 >
</Proxy>
RewriteCond %{REQUEST_FILENAME} .php$
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
RewriteRule (.*) - [H=text/html]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Спасибо Bests Julien