Опубликовано:
Используемые термины: 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:\inetpub\wwwroot\php) и создадим в нем файл 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 Files\PHP:
Делаем копию файла php.ini-production и переименовываем его в php.ini:
Открываем на редактирование данный файл и правим следующее:
open_basedir = C:\inetpub\wwwroot
…
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 Files\PHP»
Запускаем 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:\inetpub\wwwroot\php). Создаем файл 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:
@echo off REM download .ZIP file of PHP build from http://windows.php.net/downloads/ REM path to directory into which PHP .ZIP file was decompressed (no trailing \) set phppath=c:\php REM Clear current PHP handlers %windir%\system32\inetsrv\appcmd clear config /section:system.webServer/fastCGI REM The following command will generate an error message if PHP is not installed. This can be ignored. %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /-[name='PHP_via_FastCGI'] REM Set up the PHP handler %windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI /+[fullPath='%phppath%\php-cgi.exe'] %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='%phppath%\php-cgi.exe',resourceType='Unspecified'] %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /accessPolicy:Read,Script REM Configure FastCGI Variables %windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath='%phppath%\php-cgi.exe'].instanceMaxRequests:10000 %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']" %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHPRC',value='%phppath%\php.ini']"
В данной статье мы научимся устанавливать PHP на Windows Server. Существует несколько способов установки PHP, включая PHP Manager for IIS от Microsoft, но мы остановимся на универсальном способе установки, который позволит установить PHP даже без привязки, например к IIS. Интегрировать PHP и IIS не сложно.
Для каждой версии PHP существует два варианта PHP: Non Thread Safe и Thread Safe
Thread Safe — потоко безопасная. Выбираем этот вариант, если PHP используется как mod_php (модуль Apache). В большинстве случаев, в связке с веб-сервером IIS, для операционной системы Windows Server вариант Thread Safe не подходит.
Non Thread Safe — потоконебезопасная версия PHP. Используется в случаях, когда PHP запускается через CGI и каждый поток, это отдельный, изолированный от других процесс CGI и нет необходимости в потокобезопасноcти. При этом скорость обработки запросов выше. Non Thread Safe также необходимо выбирать, если планируется использовать FastCGI. Как раз этот режим работы рекомендуется использовать в работе IIS + PHP.
Для установки PHP необходимой версии, перейдем на страницу скачивания PHP для Windows и скачаем zip архив VS16 x64 Non Thread Safe необходимой нам версии PHP. В данном примере будем использовать PHP 8.1
Далее, создадим на диске сервера папку, в которую необходимо разархивировать скачанный архив. Например, C:\php
Кроме того, для работы PHP на операционной системе Windows необходим пакет Microsoft Visual Studio.
Так как мы выбрали версию VS16 x64, на этой же странице сайта есть ссылка на скачивание необходимой версии Microsoft Visual Studio, а именно Visual Studio 2015-2019
Скачаем и установим: Во время установки не изменяем предлагаемые настройки и дожидаемся завершения.
Дополнительно рекомендуется прописать путь к PHP в глобальной переменной PATH. Для этого откроем окно Свойств системы: Пуск — Выполнить и выполним команду
control system
Далее откройте окно дополнительных свойств системы (Advanced sysytem setting) — вкладка Дополнительно (Advanced) — нажмите кнопку Переменные среды (Environmant Variables)
Добавьте путь к папке, в которой размещен PHP в значение переменной PATH. В нашем случае, это папка C:\php; (после указанного пути обязательно поставьте точку с запятой)
Сохраните изменения, поочередно нажимая ОК в открытых окнах.
Чтобы узнать установленную версию PHP, в окне командной строки выполним команду
php -v
При этом нет надобновти перехода в каталог С:/php так как ранее путь к исполняемому файлу PHP был добавлен в переменные окружения.
В данной статье мы научились устанавливать PHP необходимой версии на Windows Server.
PHP — широко используемый скриптовый язык программирования общего назначения, который часто применяется для разработки динамических веб-сайтов и веб-приложений. Он является одним из наиболее популярных языков программирования в веб-разработке благодаря своей гибкости, простоте использования и богатому функционалу.
В данном руководстве рассмотрим, как подключить PHP к веб-серверу на IIS. Это может быть необходимо проделать для того, чтобы работающий на IIS веб-сервер смог обрабатывать код, написанный на PHP. В результате у нас появиться возможность создавать веб-страницы с PHP-кодом.
Предварительная настройка сервера
Итак, в нашем распоряжении виртуальный выделенный сервер с Windows Server 2016, на котором установлен веб-сервер IIS. Если вы настраивали свой IIS-сервер в соответствии со статьёй нашего справочника, то сначала вам нужно будет добавить в настройках веб-сервера поддержку протокола CGI.
Для этого запустите Server Manager.
После чего перейдите Manage
🠖 Add Roles and Features
.
Затем пройдите окна при помощи кнопки Next
не внося изменений до окна Select server roles
, где перейдите в Web Server (IIS)
🠖 Web Server
🠖 Application Development
. После чего в открывшемся списке активируйте строку CGI
. Для продолжения нажмите Next
.
Следующие шаги так же пропустите при помощи кнопки Next
. И для внесения требуемого изменения в настройку веб-сервера в окне Confirm installation selection
нажмите Install
.
После завершения установки роли CGI проинсталлируйте в системе распространяемый компонент Microsoft Visual C++ для Visual Studio 2015 — 2022 для 64-х разрядной системы.
После загрузки установщика установите галочку, означающую ваше согласие с условиями лицензионного соглашения, и нажмите Install
.
Windows-дистрибутив актуальной версии PHP можно загрузить с официальной страницы PHP. В нашем примере мы загружаем zip-архив версии 8.3.4 для 64-х разрядных систем.
Содержимое архива распакуйте, например, в каталог PHP
на диске C:
.
После этого информацию о каталоге, содержащем файлы PHP, необходимо добавить в настройку переменных среды окружения. Для чего откройте Server Manager, перейдите в Local Server
и нажмите в название вашего сервера в строке Computer name
. В открывшемся окне переключитесь на вкладку Advanced
и кликните в Environment Variables.
В нижней части открывшегося окна кликните в строку Path
и нажмите Edit
.
Для добавления новой переменной окружения нажмите New
.
В новой строке наберите C:\PHP
, затем нажмите ОК
.
Чтобы информация о добавленной переменной сохранилась в системе, закройте открытые окна нажатием на ОК
.
На следующем шаге откройте проводник, перейдите в каталог C:\PHP
, отыщите там файл php.ini-production
и переименуйте его в php.ini
.
Чтобы убедиться в применении изменений в настройки, запустите командную строку и выполните там команду php -info
. Вывод команды не должен содержать ошибок, и при этом на экране должна появиться подробная информация о версии PHP, компиляции, модулях, настройках конфигурации и многое другое.
Изменение настроек веб-сайта
Для того, чтобы соединить IIS и установленный на сервере PHP, необходимо произвести дополнительные настройки на веб-сервере. Чтобы сделать это, откройте Server Manager, перейдите в раздел IIS
, нажмите правую кнопку мыши на строке с сервером и в открывшемся меню выберите Internet Information Services (IIS) Manager
.
В открывшемся окне менеджера IIS кликните в строку с веб-сервером и перейдите в Handler Mappings
.
Далее, в правой части окна кликните в Add Module Mapping
.
В открывшемся окне добавления нового модуля заполните следующие поля:
Request path
: здесь укажите*.php
.Module
: в этом поле из выпадающего списка выберитеFastCgiModule
.Executable
: здесь укажите исполняемый файл модуля —C:\PHP\php-cgi.exe
.Name
: в данной строке укажите название добавляемого модуля, в нашем примере это —PHP
.
По окончании заполнения полей нажмите Request Restrictions
.
Здесь из доступных радиокнопок выберите File or folder
и нажмите OK
.
Окно добавления модуля также закройте кнопкой ОК
.
Далее в менеджере IIS откройте Default Document
.
Затем в правой части окна кликните Add
.
И укажите дефолтное имя PHP-страницы для нашего веб-сайта — index.php
, и нажмите ОК
.
Чтобы применить все внесённые в настройки сервера IIS изменения, необходимо перезапустить его. Для чего на имени веб-сервера нажмите правую кнопку мыши и кликните Stop
. После того, как служба остановится, также нажмите правую кнопку мыши и кликните Start
.
В итоге сервер IIS теперь сможет оперировать PHP-файлами. В качестве примера мы выведем информацию о PHP через веб-страницу. Для этого перейдите в каталог веб-сайта, например, C:\inetpub\your-domain.host
, и создайте там файл index.php
. Затем скопируйте в него следующее содержимое:
<?php phpinfo(); ?>
Затем сохраните созданный файл, откройте браузер и перейдите на свой веб-сайт набрав в строке браузера доменное имя сайта или его IP-адрес.
В нашем примере данная страница выглядит так:
April 28, 2023
2 min read
views 19492
Arthur C. Codex
chats: 4
Engineering
PHP
In this tutorial, we will guide you through the process of configuring PHP for Windows Server using Internet Information Services (IIS). This will enable you to run PHP applications on your Windows Server efficiently. To get started, we will cover the following topics:
- Installing IIS on Windows Server
- Installing PHP on Windows Server
- Configuring PHP settings
- Configuring IIS to work with PHP
- Testing PHP on IIS
1. Installing IIS on Windows Server
Before we begin, you need to have IIS installed on your Windows Server. If you don’t have it installed, follow these steps:
- Open the Server Manager by clicking on the Server Manager icon on the taskbar, or by searching for it in the start menu.
- Click on the «Add roles and features» link in the Server Manager Dashboard.
- In the «Add Roles and Features Wizard,» click on «Next» until you reach the «Server Roles» section.
- Select «Web Server (IIS)» and click on «Next.»
- Click on «Next» through the remaining steps, accepting the default settings, and click on «Install» to begin the installation.
- Once the installation is complete, close the wizard.
Your Windows Server now has IIS installed and ready to use.
2. Installing PHP on Windows Server
Follow the steps below to install PHP on your Windows Server:
- Download the latest PHP version for Windows from the official PHP website. Make sure to download the Non-Thread Safe (NTS) version as it works better with IIS.
- Extract the downloaded ZIP file to a folder of your choice, e.g., «C:\PHP».
- Add the PHP folder to the system PATH environment variable:
- Right-click on «Computer» or «This PC» and click on «Properties.»
- Click on «Advanced system settings» on the left side.
- Click on «Environment Variables» at the bottom of the «System Properties» window.
- In the «System variables» section, find the «Path» variable, select it, and click on «Edit.»
- Click on «New» and add the path to the PHP folder, e.g., «C:\PHP».
- Click «OK» to save the changes and close the environment variables window.
Now, PHP is installed on your Windows Server and ready to be configured.
3. Configuring PHP settings
Next, let’s configure some essential PHP settings:
- Open the PHP folder (e.g., «C:\PHP») and find the «php.ini-production» file.
- Rename the file to «php.ini.»
- Open the «php.ini» file in a text editor, such as Notepad.
- Find and update the following settings:
cgi.force_redirect = 0
fastcgi.impersonate = 1
extension_dir = "C:\PHP\ext"
Uncomment the extensions you need for your PHP applications by removing the semicolon (;) at the beginning of the line. For example, to enable the MySQLi extension, change the line:
;extension=mysqli
To:
extension=mysqli
Save and close the «php.ini» file.
4. Configuring IIS to work with PHP
Follow these steps to configure IIS to work with PHP:
- Open the IIS Manager by searching for «Internet Information Services (IIS) Manager» in the start menu.
- In the «Connections» pane on the left, click on the server name.
- In the «IIS» section of the middle pane, double-click on the «Handler Mappings» icon.
- In the «Actions» pane on the right, click on «Add Module Mapping.»
- Enter the following information in the «Add Module Mapping» dialog:
Request path: *.php
Module: FastCgiModule
Executable (optional): C:\PHP\php-cgi.exe
Name: PHP_via_FastCGI
Click «OK» to save the new module mapping.
5. Testing PHP on IIS
To test if PHP is working correctly on IIS, create a new text file in the «C:\inetpub\wwwroot» folder and name it «phpinfo.php». Open the file in a text editor and add the following code:
phpinfo();
Save and close the file. Open a web browser and navigate to «http://localhost/phpinfo.php». You should see the PHP information page, confirming that PHP is running correctly on IIS.
Congratulations! You have successfully configured PHP for Windows Server using IIS. You can now hire PHP developers to build and deploy PHP applications on your Windows Server environment. Happy coding!
If you’re interested in enhancing this article or becoming a contributing author, we’d love to hear from you.
Please contact Sasha at [email protected] to discuss the opportunity further or to inquire about adding a direct link to your resource. We welcome your collaboration and contributions!
Glossary
FastCGI
FastCGI is an open protocol that helps to improve the performance of web servers in processing scripts. It is language-independent and allows a server to communicate with CGI programs, which can be on the same machine or across a network. FastCGI overcomes the inefficiencies of CGI by reusing CGI processes to service subsequent requests.
PATH environment variable
The PATH environment variable is a system variable that operating systems use to locate executable files from the command line or Terminal window. When you type a command at the command prompt, the system uses the PATH variable to search for the executable file associated with the command.
PHP
PHP is a popular open-source scripting language especially suited for web development. It can be embedded into HTML and is particularly suited to server-side web development. PHP scripts are executed on the server and the result is sent to the client as plain HTML. For more information, visit PHP’s official website.
php.ini
The `php.ini` file is a key component of any PHP installation. It is a configuration file that contains settings affecting the behavior and features of PHP, like memory limits, error reporting levels, and file upload settings. These settings can be modified directly in the `php.ini` file or programmatically using functions like ini_set() and ini_get().