Category | Host Applications, Manage |
---|---|
License | Free |
Supported by | Knowledge base, Forums |
Works With | IIS 7, IIS 7.5, IIS 8, IIS 8.5, IIS 10 |
Documentation | PHP Manager 1.5.0 for IIS 10 Documentation |
Updated on | May 31, 2018 |
Uploaded by | fajner |
Overview
PHP Manager for IIS is a tool for managing one or many PHP installations compatible with the latest version of IIS — 10.
Features
You can use the PHP Manager to:
- Register PHP with IIS;
- Validate and properly configure existing PHP installations;
- Run multiple PHP versions side by side on the same server and even within the same web site;
- Check PHP runtime configuration and environment (output of phpinfo() function);
- Configure various PHP settings;
- Enable or disable PHP extensions;
- Remotely manage PHP configuration in php.ini file.
The source code can be found at: https://github.com/RonaldCarter/PHPManager
You can report bugs at: https://groups.google.com/forum/#!forum/php-manager-for-iis/
Benefits
Easily install, configure, manage and troubleshoot one or many PHP versions on the same IIS server.
Compatible with Windows 10 and Windows Server 2016 and IIS 10 and .net Framework 4.5
Requirements
IIS 7 or newer
.NET Framework 4.5
Any version of PHP
Опубликовано: 28.11.2019
Используемые термины: IIS, PHP, MySQL.
Чаще всего, PHP и MySQL устанавливается на серверы с Linux. Однако, при необходимости, можно настроить запуск и обработку PHP скриптов на Windows. Версии последней могут быть разные, например, Server 2008/2012/2016/2019 или не серверные системы, такие как, 7/8/10. Данная инструкция подойдет как для чайника, так и опытного специалиста (в качестве шпаргалки).
Устанавливаем IIS
Публикация сайта для PHP
Работаем с PHP
Устанавливаем
Настраиваем IIS + PHP
PHP Manager для управления
Установка MySQL
Установка IIS
Для установки веб-сервера, открываем Диспетчер серверов — переходим в Управление — Добавить роли и компоненты:
Если откроется окно с приветствием, нажимаем Далее:
При выборе типа установки выбираем Установка ролей или компонентов:
При выборе целевого сервера оставляем локальный сервер (или выбираем удаленный, если установка выполняется из удаленной консоли):
Среди ролей выбираем Веб-сервер (IIS) — во всплывающем окне кликаем по Добавить компоненты:
Также среди ролей в подразделе «Разработка приложений» ставим галочку для установки CGI — этот компонент нам нужен для работы PHP:
При выборе компонентов ничего не меняем — нажимаем Далее:
Откроется окно настройки роли веб-сервера — просто нажимаем Далее:
Выбор служб ролей — нажимаем далее или, при необходимости, выбираем FTP-сервер:
В следующем окне ставим галочку Автоматический перезапуск конечного сервера, если требуется и кликаем по Установить:
Дожидаемся окончания процесса установки.
Сразу после установки IIS запускается автоматически. Но, если что, его можно запустить с помощью команды iisreset:
iisreset /start
* если выполнить данную команду без опций, то она перезапустить веб-сервер.
Также мы можем открыть диспетчер служб (команда services.msc) и перезапустить Службу веб-публикаций:
Открываем браузер и вводим адрес http://localhost — должен открыться стартовый портал:
Развертывание отдельного сайта
Мы можем пропустить данный пункт, если хотим использовать сайт по умолчанию. Однако, в данной инструкции мы разберем пример, когда для сайта на PHP будет создана отдельная настройка.
Открываем Диспетчер серверов — кликаем по Средства — Диспетчер служб IIS:
Находим раздел сайты — кликаем правой кнопкой мыши по Добавить веб-сайт…:
Заполняем данные для нового сайта:
* где:
- Имя сайта — произвольно имя будущего сайта.
- Физический путь — путь до папки на сервере, где будут расположены файлы сайта.
- Тип — тип соединения (http или https). Для первого запуска обойдемся http. При необходимости, его можно всегда поменять или использовать оба типа одновременно.
- IP-адрес — если на сервере много IP-адресов, то мы можем выбрать конкретный, на котором будет работать сайт.
- Порт — сетевой порт, на котором будет работать сайт. Как правило, это 80 для http или 443 для https.
- Имя узла — доменное имя сайта, при обращении по которому должен открываться создаваемый сайт.
После заходим в каталог с сайтом (в нашем примере, это C:inetpubwwwrootphp) и создадим в нем файл index.html со следующим содержимым:
<h1>Hello from PHP site</h1>
Открываем браузер и переходим на созданный сайт, например, как в нашей инструкции — http://php.dmosk.ru. Мы должны увидеть страницу с написанным нами текстом:
Тестовый сайт создан.
PHP
Установка PHP
Для установки php на Windows переходим на страницу загрузки PHP — выбираем нужную нам версию, например, последнюю стабильную и переходим по ссылке для загрузки версии для Windows:
Откроется страница с несколькими версиями пакета — там как мы ставим PHP как FastCGI, нам нужна версия «Non Thread Safe» (не потокобезопасная), так как она будет работать быстрее. И так, скачиваем zip-архив на сервер:
Для установка PHP на Windows достаточно просто распаковать содержимое архива в любой каталог, например, C:Program FilesPHP:
Делаем копию файла php.ini-production и переименовываем его в php.ini:
Открываем на редактирование данный файл и правим следующее:
open_basedir = C:inetpubwwwroot
…
cgi.force_redirect = 0
…
short_open_tag = On
* где open_basedir — директория, в которой будут разрешены PHP-скрипты; cgi.force_redirect — указывает будет ли скрипты обрабатываться при прямом запросе или только при запросе от веб-сервера. В IIS запросы контролируются самим веб-сервером, поэтому опция может оказать обратный эффект; short_open_tag — позволяет использовать короткий вид открывающих тегов для PHP.
Проверяем, что PHP работает. Открываем командную строку Windows — переходим в каталог с установленным PHP:
cd «C:Program FilesPHP»
Запускаем php с параметром -m:
php -m
Мы должны получить список подключенных модулей:
[PHP Modules]
bcmath
calendar
Core
ctype
…
Но если мы получим ошибку, связанную с отсутствием файла VCRUNTIME140.dll:
… необходимо установить Microsoft Visual C++ Redistributable. Переходим на страницу https://www.microsoft.com/ru-RU/download/details.aspx?id=52685 и скачиваем компонент:
После загрузки, устанавливаем его на сервер, после чего, снова пробуем вывести на экран модули php:
php -m
Настройка сайта на IIS для работы с PHP
И так, веб-сервер поднят, PHP установлено, сайт работает. Настроим связку IIS + PHP. Открываем панель управления IIS — переходим к созданному сайту и кликаем по Сопоставления обработчиков:
В меню справа кликаем по Добавить сопоставление модуля:
Заполняем поля:
* где:
- Путь запроса — путь к файлам, при вызове которых действует сопоставление. В данном примере для всех файлов, заканчивающихся на php.
- Модуль — действующий модуль для обработки запроса.
- Исполняемый файл — файл, который будет выполнять обработку запроса. В данном примере мы выбрали файл из скачанного и распакованного нами архива PHP.
- Имя — произвольное имя для сопоставления.
Нажимаем OK и подтверждаем действие. Сопоставление создано.
Теперь заходим в Документ по умолчанию:
… и добавляем новый документ:
* в данном примете мы указываем, что по умолчанию сервер будет искать файл index.php, если таковой не указан явно в запросе.
Открываем в проводнике папку, в которой находятся файлы сайта (в нашем примере, C:inetpubwwwrootphp). Создаем файл index.php с содержимым:
Открываем браузер и снова переходим на наш сайт — мы должны увидеть страницу с информацией о php:
PHP Manager в IIS
Для того, чтобы упростить настройку PHP мы можем установить диспетчер PHP для IIS. Для этого переходим по ссылке https://www.iis.net/downloads/community/category/manage и переходим по ссылке для скачивания стабильной версии php-менеджера:
Скачиваем дополнение:
Выполняем установку на сервере, запустив загруженный файл. Открываем диспетчер управления IIS — мы должны увидеть PHP Manager:
Установка MySQL
MySQL для Windows можно скачать бесплатно. Переходим на страницу https://dev.mysql.com/downloads/mysql/ — выбираем операционную систему Microsoft Windows — кликаем по Go to Download Page:
На следующей странице выбираем для скачивания mysql-installer-community:
В открывшемся окне кликаем по No thanks, just start my download:
Начнется загрузка файла для установки MySQL. Дожидаемся скачивания и запускаем установочный файл — в открывшемся окне выбираем Server only:
В следующем окне кликаем по Execute:
… и дожидаемся установки СУБД:
Откроется окно конфигурации MySQL — нажимаем Next:
Выбираем установку одиночного сервера MySQL:
Оставляем все значения по умолчанию для настроек сети:
Требуем сложные пароли:
Вводим дважды пароль для пользователя root:
* также, на данном этапе мы можем сразу добавить новых пользователей.
Устанавливаем СУБД как сервис и стартуем его:
Настройки готовы для применения — нажимаем Execute:
Дожидаемся применения настроек и кликаем по Next:
Настройка завершена:
Установка завершена — нажимаем Finish.
Сервер баз данных готов к использованию.
По умолчанию, PHP поддерживаем mysql — в этом можно убедиться на странице phpinfo, найдя раздел mysqlnd:
Для работы с веб-проектами на базе популярных CMS (англ. Content Management System — система управления содержимым), таких как WordPress, Drupal, Joomla и др. необходим компонент, который бы обрабатывал скрипты PHP и преобразовывал бы их в код HTML, понятный браузеру. В данной статье рассмотрим 2 способа установки компоненты PHP на входящий в поставку Windows веб-сервер IIS (Internet Information Services) с помощью программы «Установщик веб-платформы» от компании Mocrosoft и вручную, с помощью официального инсталлятора.
0. Оглавление
- Установка и настройка веб-сервера IIS
- Установка компоненты PHP c помощью программы «Установщик веб-платформы» от компании Mocrosoft
- Установка компоненты PHP вручную, с помощью официального инсталлятора
1. Установка и настройка веб-сервера IIS
Прежде всего, у вас должен быть установлен веб-сервер IIS. Об установке IIS можно прочитать в статьях:
- Установка веб-сервера IIS 8 в Windows Server 2012 (R2)
- Установка веб-сервера IIS 7 в Windows Server 2008 (R2)
- Установка веб-сервера IIS 8 в Windows 8/8.1
Кроме того, в процессе установки помимо компонент по умолчанию обязательно должна быть установлена компонента FastCGI. Если же веб-сервер IIS уже установлен, но данная компонента не была выбрана, то это можно сделать и позже. Рассмотрим процесс установки компоненты FastCGI в Winows 8/8.1. Чтобы активировать FastCGI, проходим тот же путь, что и для активации IIS. Кстати, в Windows 8.1 нужный нам раздел панели управления «Программы и компоненты» удобно вынесен в контекстное меню кнопки «Пуск».
В открывшемся окне раздела кликаем «Включение и отключение компонентов Windows».
Раскрываем список «Службы IIS», в нём – «Службы Интернета», далее – «Компоненты разработки приложений». И уже в этом списке ставим галочку возле «CGI». Далее жмём «ОК» и дожидаемся, пока система настроит и применит изменения.
Далее рассмотрим 2 способа установки компоненты PHP на веб-сервер IIS:
2. Установка компоненты PHP с помощью программы «Установщик веб-платформы»
Установщик веб-платформы предоставляет собой небольшую программу, предоставляющую доступ к быстрой установке и настройке всего спектра продуктов, которые могут понадобиться для разработки или развертывания веб-сайтов и веб-приложений на базе платформы Windows. Скачать установщик веб-платформы можно на официальном сайте программы.
После скачивания запускаем инсталлятор и дожидаемся окончания установки. После того, как процесс установки будет завершен, мы попадем в главное окно программы, где можно увидеть огромное количество программ, компонент, сборок и пр. существующих для разработки веб-сайтов и веб-приложений. Необходимая нам компонента PHP также присутствует в данном списке. Найти ее проще всего вбив соответствующий запрос в поле поиска, расположенное в верхнем правом углу окна программы. Затем необходимо нажать кнопку «Добавить» в строке с компонентой требуемой версии (на момент написания статьи, актуальной была версия 5.63)
Данная компонента будет добавлена в список устанавливаемых элементов. Нажимаем «Установить» для установки приложений из этого списка.
Запустится мастер установки, принимаем условия лицензионного соглашения нажав кнопку «Принимаю».
И дожидаемся окончания установки, нажав «Готово» когда мастер закончит работу.
На этом в общем то и все. Компонента PHP успешно установлена. Аналогичным образом можно также добавить компоненту «Диспетчер PHP для IIS» с помощью которой можно будет настраивать компоненты PHP прямо из «Диспетчера служб IIS».
3. Установка компоненты PHP с помощью официального инсталлятора
Теперь рассмотрим процесс установки компоненты PHP вручную, т. е. с помощью инсталлятора. Дистрибутив PHP можно скачать с официального сайта. В нашем случае скачиваем инсталлятор PHP.
Запускаем инсталлятор PHP и в окне мастера установки жмём «Next».
Соглашаемся с лицензионными условиями. Жмём «Next».
Соглашаемся с путём установки, если нет необходимости его менять. Жмём «Next».
В следующем окне выбираем режим «IIS FastCGI», если текущая операционная система — Windows Server. Если работа происходит в Windows 7, 8, 8.1, выбираем режим «Other CGI». И жмём «Next».
Затем, ничего не меняя, жмём «Next».
Следующий шаг – запуск самой инсталляции. Жмём «Install».
По завершению инсталляции жмём «Finish».
В довесок к самому PHP также установим плагин для его управления в «Диспетчере служб IIS». Плагин PHP Manager for IIS, в соответствии с разрядностью операционной системы, скачиваем с официального сайта.
Запускаем установку плагина. Если на компьютере не установлена программная платформа NET Framework, инсталлятор плагина предложит отправиться на официальный сайт для скачивания её дистрибутива. И только после установки NET Framework и перезагрузки компьютера плагин PHP Manager for IIS захочет устанавливаться без каких-либо проблем. Жмём «Next».
Соглашаемся с лицензионными условиями и жмём снова «Next».
По завершению установки плагина закрываем окно установщика.
Запускаем «Диспетчер служб IIS». Если все действия осуществлены корректно, в «Диспетчере служб IIS» увидим появившийся раздел «Администратор PHP». Заходим сюда двойным щелчком.
Для дальнейшем работы потребуется зарегистрировать компоненту PHP – увидим активной ссылку регистрации новой версии PHP. Жмём её.
В появившемся окошке указываем путь к запрашиваемому исполняемому файлу и нажимаем «ОК».
Это завершающий этап настройки PHP.
Сегодня мы покажем, как на базе Windows 8 / Windows Server 2012 развернуть собственный веб-сервер IIS с поддержкой языка PHP. Впоследствии на данной платформе можно будет запустить большинство современных CMS, написанных на этом самом популярном (но далеко не самом лучшем) на данный момент языке разработки веб-приложений.
Содержание:
- Установка IIS в Windows 8
- Установка IIS в Windows Server 2012
- Установка PHP на Windows 8 / Windows Server 2012
- Тестируем работу PHP на IIS
Установка IIS в Windows 8
В Windows 8 веб-сервер IIS 8 поставляется в качестве отдельной функции и по умолчанию он не установлен. Чтобы установить IIS в Windows 8, откройте Панель управления и в разделе Program and Features (appwiz.cpl) нажмите на кнопку Turn Windows features on or off.
В открывшемся окне поставьте чекбокс у пункта Internet Information Service и нажмите ОK.
Примечание. По умолчанию IIS устанавливается в минимальной конфигурации.
После окончания установки, проверим что наш веб-сервер работает. Для этого запустите Internet Explorer (или любой другой браузер) и в его адресной строке наберите http://localhost (или ).
Если IIS функционирует корректно, должна отобразиться такая страница:
Установка IIS в Windows Server 2012
В Windows Server 2012 веб-сервер Internet Information Services можно установить из консоли Server Manager, выбрав для установки роль Web Server IIS.
Согласимся с предложенными по-умолчанию компонентами, установив дополнительно только CGI (находится в разделе Application Deployment ролей IIS).
Далее запустим установку роли, после окончания которой, сервер потребуется перезагрузить.
Протестируем работу IIS, открыв в браузере страницу http://localhost.
Установка PHP на Windows 8 / Windows Server 2012
Для установки PHP нам понадобится установщик Microsoft Web Platform Installer 5.0 (WPI), скачать который можно по этой ссылке: http://www.microsoft.com/web/downloads/platform.aspx (wpilauncher.exe.)
Совет. Преимущество использования установщика PHP в составе Microsoft Web Platform перед ручной установкой PHP заключается в следующем:
- WPI сам определяет необходимую версию PHP и устанавливает актуальную на данный момент версию
- WPI сам настраивает интеграцию с IIS, позволяет установить расширения PHP без необходимости вручную настраивать конфигурационные файлы
- WPI в дальнейшем позволяет легко обновить PHP без потери конфигурационных файлов
Запустим скачанный файл wpilauncher.exe. и в появившемся окне установщика Web Platform Installer перейдем на вкладку Products и в списке доступных продуктов найдите строчку PHP 5.5.11.
Нажмем кнопку Add и затем Install. Перед началом установки WPI проверит вашу систему на соответствие требованиям ( в случае необходимости будет предложено установить недостающие компоненты), после чего запустится установка PHP.
Тестируем работу PHP на IIS
После того, как PHP установлен, проверим, что он работает корректно. Для этого перейдем в корневой каталог веб-сервера (по умолчанию C:inetpubwwwroot) и создадим новый текстовый файл с расширением PHP (например, test.php).
Откроем его в любом текстовом редакторе и вставим в него такой код:
<?php
phpinfo();
?>
Далее в браузере в адресной строке укажем такой url-адрес: . Если все настроено верно, в окне должна появится о версии и основных конфигурационных настройках установленной версии PHP (PHP Info).
Совет. Конфигурационные настройки PHP хранятся в файле php.ini, который находится в корне каталога установки.
На этом все! Итак, мы рассмотрели самый простой способ развернуть полноценный веб-сервер IIS с поддержкой PHP 5.x на базе Windows Server 2012 / Windows 8.
At the time of writing PHP 7.0.6 is the latest stable release and given that we are going to be using Microsoft’s IIS as the web server on Windows Server 2012 R2 (x64) we will need to download the latest version of PHP 7.0.x ensuring that we download the NTS (Non-thread safe) version and the x64 build.
To get PHP7 installed on our server will will break down the installation into a number of separate, logical step; these are as follows:-
- Download the PHP binaries
- Download and install the VC14 (Visual C++ 2015) runtime.
- Install the CGI module in IIS
- Configure PHP in IIS
Downloading the PHP binaries
You can download the latest PHP binaries from the PHP website found here: http://windows.php.net/download/.
You must pay special attention to the version that you download, given that my server(s) run the 64-bit version of Windows, I will naturally choose to download and go for the x64 NTS (none-thread safe) version of PHP.
Once downloaded, extract all the files to C:PHP, this directory will be used to store our PHP binaries and configuration files.
Download and install the Visual C++ 2015 runtime
PHP7 (at the time of writing at-least) has been compiled in Visual Studio 2015 and thus needs the VC 2015 runtime installed on the server, again, it is important that you install the version that matches your servers hardware architecture (x32 or x64) alternatively install both and you cannot therefore go wrong!
You can download the latest VC C++ 2015 runtimes from the Microsoft website here: https://www.microsoft.com/en-gb/download/details.aspx?id=48145
Install the runtime as described above, it is now recommended that you reboot your server for that changes to take full affect!
Installing the CGI Module for IIS
We now need to install the CGI module to enable IIS to “talk” to PHP.
Using explorer, open up the Administrative Tools section in the Control Panel of which can be found at this location: Control PanelAll Control Panel ItemsAdministrative Tools
Once the Server Manager tool opens, you should see a Add Roles link, click that and now ensure that “CGI” is ticked as per the below screenshot:
Then click Next and Continue to install the CGI module, it is at this point that I would recommend you restart your server (or IIS at the minimum!)
Note: Although this post is for Windows Server 2012 R2, if you have stumbled across it specifically for installing PHP7 on Windows and are using Windows Vista or 7, you can find the CGI feature under: Control PanelPrograms and Features. After opening the Programs and Features icon you should click on the link to the left labeled Turn Windows Features On or Off – In the tree of services that are then displayed, navigate to Internet Information ServicesWorld Wide Web ServicesApplication Development Features and then tick CGI.
Now that we have the required runtimes installed and IIS has the CGI module enabled we can now start the final part of the setup and that is to install PHP!
Using the Administrative Tools found under the Control Panel again, this time we are going to open up the Internet Information Services (IIS) Manager application:
Now, from the left hand menu click on the server’s name and then from the main panel double click the Handler Mappings icon as shown below:
You will now be presented with the current handler mappings supported by the server, on the right hand side of the window you should see a list of Action links, click on the link named Add Module Mapping… as shown here:
Once the Add Module Mapping window appears, populate the values as follows:
The click on the Request Restrictions button and tick the Invoke handler only if request is mapped to: and then select the File radio button…
Now click Ok and Ok again, the module mapping is now configured!
Although not madatory, it is recommended that you now set a default document so that directory level access to pages will automatically serve the “index” page, it is common when serving PHP sites to have “index.php” configured as a the default index page…
To set a new index page, select the server name from the left hand menu and then double-click on the Default Document icon as shown below:
On the right hand menu of the Default Document window you will have the option to Add a new one, click the Add link and then, in the window that pops up type index.php and then click Save as shown here:
Great stuff! – That’s it, adding a new site and add a index.php file into the root of the home directory should now work!
To test it out, create a file named index.php with the following content:
<?php phpinfo(); ?>
Load the file and you should then be able to see all of the PHP runtime configuration and loaded extensions.
At this point we have PHP7 installed in it’s vanilla form, this means that there are no other PHP extensions enabled at present and the timezone etc. has not yet been set.
We will now copy one of the PHP configuration templates to the “working” copy and then make some adjustments, using the Command Prompt run the following command:
copy C:PHPphp.ini-production C:PHPphp.ini
Firstly we will set the server’s timezone, so find and uncomment this line and then set your timezone accordingly to this list:
;date.timezone =
As I live in England (GB) and is where my server is located, I will personally choose to use ‘Europe/London’ as my timezone, therefore my line becomes:
date.timezone = Europe/London
Now we will configure the extension directory, so find this section:
; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir ; extension_dir = "./" ; On windows: ; extension_dir = "ext"
…and un-comment (remove the preceding “;” character) the extension_dir = “ext” line so that it now becomes:
; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir ; extension_dir = "./" ; On windows: extension_dir = "ext"
Finally we will uncomment some CGI “fixes” for IIS, this will improve security and performance, so uncomment the following lines and set them to match the values below:
; cgi.force_redirect is necessary to provide security running PHP as a CGI under ; most web servers. Left undefined, PHP turns this on by default. You can ; turn it off here AT YOUR OWN RISK ; **You CAN safely turn this off for IIS, in fact, you MUST.** ; http://php.net/cgi.force-redirect cgi.force_redirect = 0 ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=0 ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate ; security tokens of the calling client. This allows IIS to define the ; security context that the request runs under. mod_fastcgi under Apache ; does not currently support this feature (03/17/2002) ; Set to 1 if running under IIS. Default is zero. ; http://php.net/fastcgi.impersonate fastcgi.impersonate = 1
Once you’ve saved the php.ini file you can restart your app pool(s) or simple restart IIS for the changes to take effect…
I hope you found this useful!