2015-03-04 3 views
0

Это заводит нас все орехи.IIS wincache failing

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

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

Во-первых, здесь ошибка:

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

Мы получили ошибку тиражировать в простом 1 строки PHP файл:

<?php 
session_start(); 
?> 

Вот футболист

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

У нас также есть 2 сервера с одинаковой конфигурацией. Он работает без проблем на двух серверах.

ответ

0

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

0

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

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, то по умолчанию приложение бассейн ID баночной не писать в этот каталог. Если вы используете пользовательский идентификатор пользователя для пула приложений, вам нужно убедиться, что он находится в папке ACL для этой папки.