IIS Wincache не работает

Это сводит нас с ума.

У нас есть веб-сервер IIS, на котором работает php с использованием wincache.

В iis у нас есть корень документа и вторая часть веб-сайта, отображенная с использованием виртуального каталога.

Во-первых, вот ошибка:

PHP Fatal error:  session_start(): Failed to initialize storage module: wincache (path: C:\Windows\Temp)

Мы получили ошибку для дублирования в простом однострочном php-файле:

<?php
session_start();
?>

Вот кикер

Этот файл НЕ выдает ошибок, если находится в любой папке root. НО после размещения в виртуальном каталоге он будет работать около 5 минут, а затем потерпит неудачу. Он будет продолжать работать до тех пор, пока мы не перезапустим IIS.

У нас также есть 2 одинаково настроенных сервера. Он работает без проблем на 2 серверах.

0

Решение

Не совсем тот ответ, который я искал. Но мы просто потратили пару часов, переключаясь на Apache. Ошибка ушла, сервер быстрее, все хорошо.

0

Другие решения

Похоже, идентификатор пула приложений IIS, под которым работает PHP, не имеет разрешения на запись в C: \ Windows \ Temp. Вы должны проверить списки ACL для папки, чтобы узнать, доступна ли она для записи по идентификатору пула приложений.

c:\Windows>icacls Temp
Temp NT AUTHORITY\SYSTEM:(OI)(CI)(S,RD)
BUILTIN\IIS_IUSRS:(OI)(CI)(S,RD)
BUILTIN\Users:(CI)(S,WD,AD,X)
BUILTIN\Administrators:(F)
BUILTIN\Administrators:(OI)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(F)
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
CREATOR OWNER:(OI)(CI)(IO)(F)

Если вы не видите BUILTIN \ IIS_IUSRS в ACL, то идентификатор пула приложений по умолчанию не может выполнить запись в этот каталог. Если вы используете пользовательский идентификатор пользователя для пула приложений, вам нужно убедиться, что он находится в ACL для папки.

0

По вопросам рекламы [email protected]