2015-07-21 2 views
0

Я запускаю веб-приложение PHP 5.4 на Azure. Чтобы управлять обработкой сеанса, я настроил экземпляр кеша Redis на Azure.Не удается найти save handler 'redis'

Я установил сеанс пути сохранения & обработчика:

session.save_handler = redis 
session.save_path = "tcp://kbcache.redis.cache.windows.net:6379?auth=***" 

Я также настроен расширения Redis:

PHP_EXTENSIONS bin\php_igbinary.dll 
APPSETTING_PHP_EXTENSIONS bin\php_igbinary.dll 
PHP_EXTENSIONS02 bin\php_redis.dll 
APPSETTING_PHP_EXTENSIONS02 bin\php_redis.dll 

Однако когда я просматриваю на мой сайт, я получаю сообщение:

Warning: session_start(): Cannot find save handler 'redis' - session startup failed in D:\home\site\wwwroot\index.php(22) : eval()'d code on line 2

Что мне не хватает?

+0

Я вырыл в журналы PHP и нашел эту ошибку: PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку «D: \ home \ site \ wwwroot \ bin \ php_redis.dll» - указанный модуль не может быть найденный. Я загрузил эту DLL в эту папку, и я указал ее в файле php.ini. – Ash

ответ

0

[Update сообщение Pre]

При развертывании PHP проекта, мы необходимо активировать расширения на Azure. Пожалуйста, смотрите мой сайт структуру папок:

enter image description here

Я скопировал DLL-файлы в папку с именем ext. И эти версии dlls должны быть совместимы с VC9 и non-thread-safe (nts).

enter image description here

И я создал extension.ini в имени папки ini. Содержание следующим образом:

extension=d:\home\site\ext\php_igbinary.dll 
extension=d:\home\site\ext\php_redis.dll 
zend_extension=d:\home\site\ext\php_xdebug-2.3.3-5.4-vc9-x86_64.dll 
session.save_handler = redis 
session.save_path = "tcp://**.redis.cache.windows.net:6379?auth=** 

В конце концов, я добавить "PHP_INI_SCAN_DIR" Configurtation панель на Лазурном портала:

enter image description here

Это работает для меня.

+0

спасибо за это, после этого последнего сообщения он получил работу! ура – Ash

+0

Поздравляем! :) –

0

На самом деле, я пробовал расширение PHPRedis в своей среде, он отлично работает.

Форма вашего описания, я думаю, вы сделали сложную конфигурацию дополнений Redis.

Я последовал за эти шаги:

1.Switch в PHP version 5.4

2.Download PHPRedis форма расширения этого page. Поскольку я использовал PHP, какая версия version 5.4 TS, я скачал phpredis_5.4_vc9_ts

3.После распаковали скачанный файл, скопируйте эти файлы DLL в папку PHP ext. Кажется, что вам нужно обратить внимание на этот момент.

Добавьте этот код в ваш файл PHP.ini

extension=php_igbinary.dll 
extension=php_redis.dll 

session.save_handler = redis 
session.save_path = "tcp://**.redis.cache.windows.net:6379?auth=** 

4.Create страницу и тест Redis Код:

$redis=new Redis(); 
$redis->pconnect('tcp://**.redis.cache.windows.net', 6379); 
$redis->auth('**+**='); 
$redis->set('key', 'hello '); 
$redis->append('key', 'world '); 
echo $redis->get('key'); 
+0

Мне еще не повезло, я установил свой PHP на 5.4, загрузил DLL из вашей ссылки. Я добавил следующий код в моем ини файла: расширение = d: \ главная \ сайт \ вн \ php_igbinary.dll расширения = d: \ главная \ сайт \ вн \ php_redis.dll session.save_handler = Redis сессия. save_path = "tcp: //**.redis.cache.windows.net: 6379? auth = **" Но я все еще получаю эти ошибки: PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку ' d: \ home \ site \ ext \ php_igbinary.dll '- указанный модуль не найден. - и та же ошибка для файла php_redis.dll – Ash

+0

Поскольку я также использую Azure для размещения моего веб-приложения, мне нужно настроить свой PHP по адресу: https://azure.microsoft.com/en-gb/documentation/articles/web-sites-php-configure/- но я не верю, что это будет иметь значение. – Ash

+0

Использовали ли вы версию NTS? –

Смежные вопросы