ихаил
Сергеевич
8-900-358-28-80


Блог вопиющего в пустыне

Перевод сайта с php 5 на php 7 на веб-сервере IIS

Просмотров :  276  |  Комментариев :  0

В сети все рекомендации (по поводу повышения версии PHP) в основном ориентированы на не-виндовс веб-сервера. Но для IIS всё делается намного проще - в самом диспетчере служб IIS. 

Сначала скачал версию PHP, в которой ещё присутствует установщик. На данный момент, - это php-5.3.9-Win32-VC9-x86.msi. Она находится по адресу https://windows.php.net/downloads/releases/archives/. Установил на сервере. Затем скачал zip-архив с PHP 7.3(7.3.3) и распаковал его в папку с установленным PHP 5 (можно и в другую, не принципиально). После чего открыл диспетчер служб IIS. Запустил Администратор PHP.

   Администратор PHP

Выбираем "Зарегистрировать новую версию РНР". Указываем путь к исполняемому файлу php-cgi.exe, который находится в папке с РНР 7.3.3

Всё. РНР 7.3.3 установлен. Для проверки его работоспособности можно нажать "Проверить phpinfo()". Если всё нормально, то откроется окно PHP Version 7.3.3 с информацией о текущем состоянии РНР.

php 7.3.3 установлен, phpinfo()

Для более детальной проверки можно запустить оснастку "Просмотр событий", где открыть "Настраиваемые представления/Роли сервера/События управления". При этом может выпадать ошибка с кодом 487, как на рисунке ниже.

Ошибка. Код события 487 

В свойствах события сказано следующее: "Пожалуйста, установите opcache.file_cache и opcache.file_cache_fallback директивы для более удобного использования Opcache".

 Для установки этих директив запускаем  Диспетчер служб IIS / Администратор PHP / Контролировать все параметры.

Администратор PHP. Контролировать все параметры

 В меню "Действия" нажимаем "Добавить". В форме "Добавить параметр PHP" в строку "Название" вставляем opcache.file_cache , а в строке "Значение" выставляем 1. Тоже самое проделываем с директивой opcache.file_cache_fallback

Добавление директивы opcache.file_cache

Эти директивы можно было бы прописать напрямую в php.ini. Кому как удобнее. По поводу директив opcache нашёл в интернете интересное замечание: "[opcache]; Внимание! Данное расширение не работает под Windows. Возможно падение сервера в процессе работы или отказ запуска!" (Ссылка на первоисточник).

Тем не менее, попробовал установить. После установки веб-сервер не упал, сайт пока работает. Но в логах "Просмотр событий" по прежнему выскакивает ошибка с кодом 487, но на работе сайта это, вроде, не сказывается. Если появится какая-либо нестабильность, удалю раздел [opcache] на фиг.

P.S. В раздел [opcache] добавил ещё директивы. Получилось нечто нижеследующее:

[opcache]
zend_extension = "D:\Program Files (x86)\PHP\php-7.3.3-Win32-VC15-x64\ext\php_opcache.dll"
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=100000
opcache.mmap_base = 0x20000000
opcache.validate_timestamps=1
opcache.memory_usage.used_memory=21M
opcache.memory_usage.free_memory=106M
opcache.revalidate_freq = 0
opcache.file_cache = 1
opcache.file_cache_fallback=1

Тем не менее веб-сервер работает нормально. Нестабильности, падений сервера не наблюдается. И ошибка 487 пропала. Чудеса, да и только!


  • Комментарии
Загрузка комментариев...


Возврат к списку