Установка и настройка веб-сервера iis php mysql на Windows Server 2012 r2
Обновлено: 21.11.2024
Обновление. Видеообновление этой статьи для Windows Server 2016/2019 доступно на YouTube. Я оставлю эту версию в качестве общего руководства по проблемам, с которыми вы можете столкнуться при установке такого типа. Учитывайте это при загрузке компонентов.
Одним из моих последних проектов была установка WordPress, популярной системы управления контентом, на веб-сервере клиента, работающем под управлением Windows Server 2008. WordPress требует установки MySQL для серверной части базы данных и языка сценариев PHP, чтобы обслуживать контент WordPress. На локальном компьютере с Windows я бы, вероятно, просто использовал предварительно настроенный пакет стека WAMP (Windows, Apache, MySQL, PHP), такой как XAMPP, который быстро устанавливается и включает все необходимые компоненты. Однако это не совсем вариант в профессиональной среде. Я также работал с Internet Information Services (IIS) 7.5 для веб-сервера вместо Apache, поэтому процесс немного сложнее.
Нажмите здесь, чтобы узнать больше об использовании XAMPP для создания локальной установки WordPress.
Помимо установки компонентов, PHP необходимо настроить для работы с MySQL, чтобы WordPress, который поддерживает все содержимое сайта в MySQL, мог обращаться к базе данных по мере необходимости. Раньше я делал это только в Linux с Apache в качестве веб-сервера, поэтому мне пришлось провести небольшое исследование. Это было не безболезненно — WordPress немного привередлив к IIS/Windows, и мне пришлось искать способ обойти пару упрямых ошибок.
Для всеобщего блага я решил поделиться здесь тем, что узнал. Я протестировал этот процесс на Windows Server 2008 и 2012 и отметил различия там, где это необходимо.
Предварительные требования
К моменту завершения процесса вам, вероятно, потребуются оба распространяемый пакет Visual C++ для Visual Studio 2012 (32-разрядная версия) и распространяемый пакет Visual C++ для Visual Студия 2013 (64-разрядная версия). Версия MySQL автоматически установит версию 2013, но вам все равно понадобится версия 2012 для PHP, если у вас ее еще нет.
Установка MySQL
Я выбрал MySQL Installer 5.6 для Windows, который устанавливает все. Установщик является 32-разрядным, но устанавливает либо 32-разрядную, либо 64-разрядную версию MySQL в зависимости от вашей системы. Также можно выбрать небольшой файл, который будет выполнять установку из Интернета, или большой файл, если вы не уверены, что у вас будет доступное подключение.
Я выбрал тип пользовательской настройки на первом экране параметров, чтобы выбрать, какие компоненты мне нужны на машине. Для этого проекта было достаточно самого сервера, MySQL Workbench и MySQL Notifier. MySQL Notifier предупреждает пользователя о любых изменениях в состоянии сервера. Мне не нужен был Workbench специально для установки WordPress, но он не занимает много места и может пригодиться в какой-то момент.
Установщик MySQL позволяет выполнить выборочную установку, чтобы вы могли управлять размером места, которое занимает MySQL в вашей системе.
Если вы устанавливаете MySQL Workbench, вам может потребоваться установить среду выполнения Microsoft Visual C++ 2013, чтобы завершить установку. Установщик уведомит вас об этом или любых других невыполненных требованиях и даст вам возможность исправить их, не останавливая процесс установки.
Среда выполнения Microsoft Visual C++ 2013 является обязательным условием для MySQL Workbench.
Остальные экраны мастера установки говорят сами за себя. В разделе «Тип и сеть» я выбрал серверную машину, поскольку на самом деле это будет веб-сервер, и я выбрал стандартную системную учетную запись для экрана службы Windows.
После завершения установки будет предложено открыть MySQL Workbench, где вы сможете убедиться, что можете войти на новый сервер базы данных. Другой вариант — открыть приглашение командной строки MySQL 5.6 из меню «Пуск» и ввести пароль, который вы установили для корневой учетной записи MySQL.
MySQL можно управлять либо из MySQL Workbench, либо из клиента командной строки MySQL.
Пока вы здесь, вы можете также создать базу данных MySQL для использования WordPress.Вы можете сделать это через MySQL Workbench, если вы его установили, или через командную строку MySQL с помощью следующих команд:
С помощью этих команд вы создаете базу данных WordPress и устанавливаете ее по умолчанию в своем сеансе MySQL. Затем вы создаете администратора для WordPress (так что вы не используете пользователя root сервера) и предоставляете этому пользователю все привилегии в базе данных WordPress. Вы можете использовать имя пользователя и пароли по вашему выбору. Просто храните их в надежном месте.
Если вы используете командную строку, введите «выход», чтобы выйти из MySQL, а затем еще раз «выход», чтобы выйти из командной строки.
Установка PHP
Примечание. В обновлении этой статьи от 2021 года показано, как выполнить настройку IIS и PHP с помощью установщика веб-платформы Microsoft. В приведенной ниже информации подробно описывается ручная настройка, которая может быть полезна для проверки настроек.
После загрузки файлов PHP разархивируйте пакет в выбранный вами каталог на жестком диске. Я выбрал c:\php для простоты. Пакет включает в себя файл php.ini-production, который вам нужно будет переименовать в php.ini и скопировать в каталог c:\windows после внесения нескольких изменений. Этот файл содержит ключи и настройки, многие из которых закомментированы, и их можно раскомментировать, чтобы применить определенные настройки по мере необходимости.
В своем любимом текстовом редакторе раскомментируйте следующие ключи в php.ini, удалив точку с запятой в начале строки, и измените настройки следующим образом:
- cgi.force_redirect = 0 (около строки 753)
- fastcgi.impersonate = 1 (около строки 780)
- Задайте для extension_dir папку «ext» по пути, где вы сохранили файлы PHP (например, «C:\PHPext\»). (около 736) В
- date.timezone должен быть указан часовой пояс вашего сервера (около строки 926)
Чтобы PHP мог работать с MySQL, вам также потребуется раскомментировать следующие строки в разделе "Расширения Windows".
Расширение php_curl.dll позволяет WordPress получать и отображать обновления новостей о продуктах. Без него вы будете видеть сообщение об ошибке на рабочем столе каждый раз, когда будете входить в систему.
Настройка IIS
После того как вы настроили PHP, вам необходимо настроить IIS для работы с PHP.
Сначала убедитесь, что машине назначена роль веб-сервера и что CGI установлен как служба в IIS. В Windows Server это можно сделать, открыв Диспетчер Windows Server (не Диспетчер IIS) и выбрав Веб-сервер (IIS) в разделе Роли. Если этот параметр не существует, щелкните правой кнопкой мыши Роли в дереве диспетчера серверов и добавьте его.
Серверу необходимо назначить роль веб-сервера, чтобы IIS был доступен.
Обязательно выберите параметр CGI в разделе «Разработка приложений» мастера добавления ролей. Если веб-сервер уже установлен, но CGI не отображается как установленный в группе «Разработка приложений», вы можете добавить его, нажав «Добавить службы ролей» и выбрав его.
Служба CGI необходима для работы IIS с PHP. Эту услугу можно найти в разделе «Разработка приложений».
Процесс тот же, что и в Windows Server 2012, хотя Мастер добавления ролей был переработан.
Windows Server 2012 имеет другой внешний вид, но процесс тот же.
Служба CGI требуется в Windows Server 2012 и 2008.
После того, как роль веб-сервера и служба CGI будут установлены, проверьте в диспетчере информационных служб Интернета параметр «Настройки FastCGI». Это должно присутствовать, если вы используете IIS 7.5. Если вы используете IIS 7, вам может потребоваться установить пакет администрирования IIS 7, который можно загрузить с веб-сайта Microsoft.
Вам потребуется добавить приложение php-cgi.exe в IIS в настройках Fasts CGI. Щелкните правой кнопкой мыши на панели настроек FastCGI и выберите «Добавить приложение».
Исполняемый файл php-cgi.exe должен быть добавлен как приложение FastCGI в IIS.
Настройка пути должна указывать на EXE-файл. В разделе «Свойства FastCGI» измените параметр Instance MaxRequests на 5000. В разделе «Переменные среды» добавьте в коллекцию новую переменную с именем PHP_MAX_REQUESTS и установите для нее значение 5000. Нажмите «ОК» на обоих экранах, чтобы принять обе настройки.
Ширина
Как часть определения приложения FastCGI, переменная среды используется для указания значения PHP_MAX_REQUESTS.
Теперь, когда PHP был добавлен в качестве приложения FastCGI, вы можете добавить сопоставление обработчика, чтобы IIS знал, какое приложение использовать, когда он получает запрос на файл PHP. Выберите значок Handler Mappings под главным экраном IIS. Затем нажмите «Добавить сопоставление модуля» в меню «Действия» или щелкните правой кнопкой мыши в списке сопоставлений и выберите его в контекстном меню.
Добавление нового сопоставления модулей в сопоставления обработчиков IIS сообщает IIS, какое приложение следует использовать при получении запроса на страницу PHP.
Установите параметры, как показано выше:
Путь запроса: *.php
Модуль: FastCGIModule
Исполняемый файл: (путь к вашему файлу php-cgi.exe)
Имя: PHP
После того, как вы нажмете OK, IIS попросит вас проверить создание приложения FastCGI. Нажмите Да.
Затем выберите значок «Документ по умолчанию» в IIS и добавьте «index.php» в список возможных документов по умолчанию для сайта.
Добавление index.php в качестве документа по умолчанию позволяет IIS переходить на нужную страницу, если она не указана.
На этом этапе вам потребуется перезапустить IIS, чтобы убедиться, что все изменения применены. Вы можете перезапустить его из меню «Действия» в IIS или открыть командное окно в режиме администратора и ввести iisreset в командной строке. После остановки и перезапуска IIS введите exit, чтобы закрыть окно.
IIS создает каталог c:\inetpub. Папка c:\inetpub\wwwroot — это место, где ваши веб-файлы могут храниться и обслуживаться при поступлении запросов на веб-сервер. Чтобы убедиться, что PHP работает и работает с MySQL, создайте в этом каталоге новый текстовый файл со следующим текстом.
На странице настроек PHP должен быть раздел для настроек MySQL. Это указывает на то, что PHP настроен правильно для работы с MySQL.
Если раздел MySQL отсутствует, вы, вероятно, получите следующую ошибку при попытке установить WordPress:
«Похоже, что в вашей установке PHP отсутствует расширение MySQL, которое требуется для WordPress».
Вы также можете получить следующую ошибку при попытке открыть настройки PHP:
Если IIS сообщает о внутренней ошибке сервера при попытке открыть страницу PHP, возможно, вам потребуется установить распространяемый компонент Visual C++
Установка WordPress
После создания базы данных разархивируйте файл загрузки WordPress в папку c:\inetpub\wwwroot. Вы можете хранить все файлы в подкаталоге WordPress этой папки или поместить их непосредственно в wwwroot. Вероятно, лучше всего использовать подкаталог, если вы хотите установить другие приложения.
Скопируйте файл wp-config-sample.php из каталога WordPress и назовите его wp-config.php. Затем отредактируйте файл, чтобы изменить следующие настройки, заменив выбранные имя пользователя и пароль:
Если вы не поддерживаете установку MySQL на отдельном компьютере, имя хоста «localhost» может остаться тем же, что и для локальной установки MySQL.
После внесения этих изменений загрузите файл wp-config.php в свой браузер.
Это фактически запустит скрипт внутри файла и запустит установку.
Все должно пройти гладко, но если вы все же столкнетесь с ошибкой, сообщения WordPress будут не самыми полезными. Вот парочка, которую вы можете увидеть.
Если все работает, программа установки попросит вас ввести имя пользователя и пароль для учетной записи администратора, а также ваш адрес электронной почты и указать, хотите ли вы, чтобы поисковые системы индексировали сайт. Как только вы выполните эти настройки, установка завершится, и вы сможете войти на свой новый сайт WordPress.
Заключение
Я выполнил этот процесс на нескольких разных машинах, чтобы попытаться выявить как можно больше проблем, но я уверен, что есть и другие идеи о том, как исправить различные проблемы с IIS/PHP/WordPress. Я даже не стал использовать файл web.config в каталоге WordPress, так как не обнаружил, что он имеет какое-либо значение во время установки. Если у вас есть опыт создания такого стека, буду рад услышать от вас в комментариях.
Подпишитесь на рассылку, чтобы получать уведомления о новых сообщениях.
Вы можете быть в курсе новых статей и ресурсов Comeau Software Solutions, подписавшись на нашу рассылку. Вы можете отказаться в любое время.
На этом этапе создания веб-сайта PHP вы устанавливаете IIS и FastCGI, загружаете и устанавливаете PHP и расширение WinCache, а также загружаете свое приложение PHP.
Когда вы закончите, убедитесь, что IIS и PHP установлены, а ваше приложение PHP добавлено на ваш веб-сайт. Затем перейдите к шагу 2. Настройка параметров PHP.
1.1. Установите IIS
Для установки IIS и приложений, работающих в IIS, можно использовать установщик веб-платформы (Web PI). Web PI устанавливает последние версии доступных предложений веб-платформы всего несколькими щелчками мыши. Используя Web PI, вы можете загружать и устанавливать любые новые инструменты или обновления, включая PHP. Дополнительные сведения о Web PI см. в статье Дополнительные сведения и установка Web PI.
Если вы не используете Web PI для установки IIS, вы можете установить IIS вручную. Чтобы установить IIS вручную, выполните следующие действия:
Чтобы установить IIS на Windows Server 2012
На начальной странице щелкните плитку диспетчера серверов и нажмите кнопку ОК.
В диспетчере серверов выберите «Панель управления» и нажмите «Добавить роли и функции».
В мастере добавления ролей и компонентов на странице "Перед началом" нажмите "Далее".
На странице "Выбор типа установки" выберите "Установка на основе ролей" или "Установка на основе компонентов" и нажмите "Далее".
На странице "Выбор целевого сервера" выберите "Выбрать сервер из пула серверов", выберите свой сервер и нажмите "Далее".
На странице "Выбор ролей сервера" выберите "Веб-сервер (IIS)" и нажмите "Далее".
На странице "Выбор компонентов" обратите внимание на предварительно выбранные компоненты, установленные по умолчанию, а затем выберите CGI. Этот вариант также устанавливает FastCGI, который рекомендуется для приложений PHP.
Нажмите "Далее".
На странице "Роль веб-сервера (IIS)" нажмите "Далее".
На странице "Выбор служб ролей" обратите внимание на предварительно выбранные службы ролей, установленные по умолчанию, и нажмите "Далее".
Для веб-сервера со статическим содержимым достаточно установить службы ролей IIS 8 по умолчанию.
На странице "Подтверждение выбора установки" подтвердите свой выбор и нажмите "Установить".
На странице "Ход установки" убедитесь, что установка роли веб-сервера (IIS) и необходимых служб роли выполнена успешно, а затем нажмите "Закрыть".
Чтобы убедиться, что IIS успешно установлен, введите в веб-браузере следующее:
Вы должны увидеть страницу приветствия IIS по умолчанию.
Чтобы установить IIS в Windows 8
На начальной странице введите Панель управления, а затем щелкните значок панели управления в результатах поиска.
На панели управления нажмите "Программы", а затем нажмите "Включение или отключение компонентов Windows".
В диалоговом окне «Компоненты Windows» нажмите «Информационные службы Интернета», обратите внимание на предварительно выбранные функции, установленные по умолчанию, а затем выберите CGI. Этот вариант также устанавливает FastCGI, который рекомендуется для приложений PHP.
Нажмите "ОК".
Чтобы убедиться, что IIS успешно установлен, введите в веб-браузере следующее:
Вы увидите страницу приветствия IIS по умолчанию.
1.2. Установите PHP с помощью Web PI
Предпочтительный способ установки PHP на компьютер с Windows или Windows Server – использование установщика веб-платформы (Web PI).
Чтобы установить PHP с помощью Web PI
- Откройте в браузере следующий веб-сайт: Microsoft Web Platform Installer 3.0.
- Нажмите «Загрузить сейчас», а затем нажмите «Выполнить».
- В верхней части окна установщика веб-платформы нажмите Продукты.
- Нажмите "Рамки" и выберите текущую версию PHP.
- Нажмите «Установить». На странице установки веб-платформы отображается версия PHP и ее зависимости, которые будут установлены.
- Нажмите «Принимаю». Web PI устанавливает пакеты PHP.
- Нажмите "Готово".
1.3. Загрузите и установите PHP вручную
Если вы решите загрузить PHP и установить его вручную, процедуры, описанные в этом разделе, помогут вам выполнить следующие задачи:
- Загрузите PHP и расширение WinCache.
- Установите PHP и WinCache.
- Добавьте папку установки PHP в переменную среды Path.
- Настройте сопоставление обработчика для PHP.
- Добавить записи документов по умолчанию для PHP.
- Проверьте установку PHP.
Чтобы упростить эту процедуру, установите расширение WinCache, но не настраивайте его. Вы настроите и протестируете WinCache на шаге 2: Настройка параметров PHP.
Чтобы загрузить и установить PHP и WinCache
- Откройте в браузере страницу загрузки Windows для PHP и загрузите zip-пакет PHP, не являющийся потокобезопасным.
- Загрузите расширение WinCache из списка расширений Windows для PHP.
- Извлеките все файлы из ZIP-пакета PHP в папку по вашему выбору, например C:\PHP\ .
- Извлеките пакет WinCache .zip в папку расширений PHP (\ext), например, C:\PHP\ext . ZIP-пакет WinCache содержит один файл (Php_wincache.dll).
- Откройте панель управления, нажмите "Система и безопасность", нажмите "Система", а затем нажмите "Дополнительные параметры системы".
- В окне "Свойства системы" выберите вкладку "Дополнительно" и нажмите "Переменные среды".
- В разделе "Системные переменные" выберите "Путь" и нажмите "Изменить".
- Добавьте путь к папке установки PHP в конец значения переменной, например ;C:\PHP . Нажмите "ОК".
- Откройте диспетчер IIS, выберите имя хоста своего компьютера на панели "Подключения", а затем дважды щелкните "Сопоставления обработчиков".
- На панели действий нажмите «Добавить сопоставление модулей».
- В поле Путь запроса введите *.php.
- В меню "Модуль" выберите FastCgiModule.
- В поле «Исполняемый файл» введите полный путь к Php-cgi.exe, например C:\PHP\Php-cgi.exe .
- В поле Имя введите имя сопоставления модуля, например FastCGI.
- Нажмите "ОК".
- Выберите имя хоста своего компьютера на панели «Подключения» и дважды щелкните «Документ по умолчанию».
- На панели «Действие» нажмите «Добавить». Введите Index.php в поле "Имя" и нажмите "ОК".
- Нажмите «Добавить» еще раз. Введите Default.php в поле "Имя" и нажмите "ОК".
Чтобы протестировать установку PHP
Откройте текстовый редактор, например Блокнот, от имени администратора.
В новом файле введите следующий текст:
Сохраните файл как C:\inetpub\wwwroot\Phpinfo.php .
Откройте браузер и введите следующий URL-адрес:
Отображается красиво оформленная веб-страница с текущими настройками PHP.
1.4. Добавьте свое PHP-приложение
Установив IIS и PHP, вы можете добавить приложение PHP на свой веб-сервер. В этом разделе описывается, как настроить приложение PHP на веб-сервере IIS с установленным PHP. В нем не объясняется, как разрабатывать приложение PHP.
Чтобы добавить веб-приложение PHP
Откройте диспетчер IIS.
- Для Windows Server 2012: на начальной странице щелкните плитку Диспетчер серверов, а затем нажмите кнопку ОК. На панели мониторинга диспетчера серверов откройте меню "Сервис" и выберите "Диспетчер информационных служб Интернета (IIS)".
- В Windows 8 на начальной странице введите Панель управления, а затем щелкните значок панели управления в результатах поиска. На экране панели управления щелкните Система и безопасность, щелкните Администрирование, а затем щелкните Диспетчер информационных служб Интернета (IIS).
На панели "Подключения" щелкните правой кнопкой мыши узел "Сайты" в дереве и выберите "Добавить веб-сайт".
В диалоговом окне "Добавить веб-сайт" введите понятное имя для своего веб-сайта в поле "Имя сайта".
Если вы хотите выбрать пул приложений, отличный от указанного в поле «Пул приложений», нажмите «Выбрать». В диалоговом окне "Выбор пула приложений" выберите пул приложений из списка "Пул приложений" и нажмите кнопку "ОК".
В поле Физический путь введите физический путь к папке веб-сайта или нажмите кнопку обзора (. ), чтобы перейти к файловой системе и найти папку.
Если физический путь, который вы ввели на шаге 5, ведет к удаленному общему ресурсу, нажмите Подключиться как, чтобы указать учетные данные, у которых есть разрешение на доступ к пути. Если вы не используете определенные учетные данные, выберите параметр Пользователь приложения (сквозная проверка подлинности) в диалоговом окне Подключиться как.
Выберите протокол для веб-сайта из списка Тип.
Значением по умолчанию в поле IP-адреса является Все неназначенные. Если вам необходимо указать статический IP-адрес для веб-сайта, введите IP-адрес в поле IP-адрес.
Введите номер порта в текстовом поле Порт.
При необходимости введите имя заголовка узла для веб-сайта в поле Заголовок узла.
Если вам не нужно вносить какие-либо изменения в сайт и вы хотите, чтобы веб-сайт был доступен немедленно, установите флажок Запустить веб-сайт немедленно.
Существует множество способов выполнить настройку IIS и PHP на компьютере с Windows. Раньше это было намного сложнее, а теперь с Microsoft Platform Installer все стало намного проще. Я хотел поделиться своим опытом в этом. Но прежде чем мы начнем процесс из нескольких шагов, давайте посмотрим, какие существуют различные возможности для установки стека WAMP (или аналогичного) (Windows, Apache, MySQL и PHP/Python/Perl) в системе, и зачем вам нужно устанавливать (еще) некоторые компоненты вручную. Обратите внимание, что существует множество виртуальных устройств на основе LAMP.
Настройка IIS и PHP — какие у вас есть возможности?
<р>1. Виртуальное устройство на базе VMware — это устройства на базе не Windows, а Linux, но в конечном итоге результат в основном тот же — вы получаете среду разработки для веб-приложений. Устройства на основе стека LAMP (Linux, Apache, MySQL и PHP/Python/Perl), доступные через VMware Appliances. Это предварительно настроенные бесплатные файлы VMware (обычно файлы OVF), которые вы можете развернуть и использовать в своей среде vSphere/ESXi и (или) также из VMware Workstation. Обычно все предварительно настроено, и у вас нет возможности выбирать отдельные компоненты, поскольку все они встроены. С другой стороны, у вас есть возможность выбирать из множества различных устройств и архитектур. <р>2. Ручной процесс в окне Windows — не совсем ручной способ, а скорее пакет All-In-One WAMP. Я также пробовал один из этих установщиков WAMP для локального тестирования WP. Опять же, все запечено, но есть разные версии и разные упаковки. Очень легко установить на XP, Win7 или Windows Server.<р>3. Использование веб-установщика платформы Microsoft — это способ Microsoft развертывания различных компонентов при создании стека LAMP. Мы сделаем пошаговое руководство в этом посте.
Зачем вам идти по пути WAMP, если вы можете легко сделать это по пути LAMP?
Я уже вижу некоторые вопросы от пользователей, зачем вам нужно делать это в M$, если вы можете легко сделать это в Linux. Верно, но бывают ситуации, когда вам просто нужно сделать это способом M$ или вы просто не можете этого сделать... у вас нет для этого ресурсов.
В первую очередь следует помнить, что у вас, вероятно, есть единственный (физический) хост с Windows. И он уже используется для чего-то другого, например, для обмена файлами и т. д., и вы хотите быстро развернуть PHP5 для тестирования какого-либо веб-приложения, приложения для интрасети или чего-то в этом роде. Обычно внутренняя система в малом бизнесе находится на локальном компьютере с Windows, который выполняет множество других функций… -:).
Этапы:
01. Установите IIS
02. Скачайте и установите установщик веб-платформы
Перейдите к веб-установщику веб-платформы Microsoft и загрузите установочный пакет. Это крошечный пакет, который при запуске позволяет выбрать нужные компоненты. Затем эти компоненты загружаются и устанавливаются в фоновом режиме.
Поэтому при запуске у вас появляется экран, подобный этому, где все, что вам нужно сделать, это выбрать пакет PHP5. Нажмите кнопку "Добавить".
На следующем экране вам нужно просто нажать Установить и принять лицензионное соглашение. ..
03. Проверьте, все ли работает
Если вы выполнили эти 3 простых шага, все должно работать. Рабочий каталог для IIS — C:\inetpub\wwwroot
Вы можете быстро создать текстовый файл с помощью Блокнота, сохранить его как, например, phpinfo.php в этот каталог, а внутри просто вставить этот код:
Вы должны увидеть красивую информационную страницу PHP по умолчанию, подобную этой… -:) Наслаждайтесь..
Существует множество ресурсов и способов установки сервера/рабочей станции на базе WAMP/LAMP.Системам, позволяющим тестировать веб-приложения, необходимы эти 3 компонента для работы с динамическими веб-приложениями — Apache (или любой другой веб-сервер), MySQL (или любая другая БД) и язык сценариев PHP/Python/Perl. Так что это, конечно, не единственный способ сделать это..
Недавно я поставил перед собой задачу увидеть, как далеко мы можем зайти с PowerShell DSC и продуктами сторонних производителей. Моя цель в этом испытании состояла в том, чтобы установить и настроить PHP и MySQL на пустом автономном сервере Windows Server 2012 R2.
Зачем кому-то это делать?
Потому что я хотел лучше понять, насколько конфигурации PowerShell DSC полезны в сложных задачах с продуктами, отличными от Windows или Microsoft. Другим результатом должен стать полнофункциональный PHP-сервер для размещения PIWIK для фермы SharePoint.
И зачем кому-то пытаться делать это на автономном сервере без подключения к Интернету? Это очень распространенный сценарий, с которым я сталкиваюсь при работе с клиентами.
С чего начнем?
На момент написания этого блога текущей версией является PHP 7.2. Раньше я работал с PHP в нескольких проектах и использовал XAMPP для размещения своих приложений в целях разработки. XAMPP объединяет Apache, PHP и MySQL. Начать работу с XAMPP в системе Windows очень просто.
Установка всего этого вручную работает нормально, и есть много вариантов, поддерживающих установку: например. установщик веб-платформы IIS — но не в автономном режиме. Тот же факт мешает мне использовать шоколад в PowerShell DSC. У меня нет автономного режима.
Я начал со следующего примера, предоставленного через ресурс xWebAdministration DSC: PowerShellDsc/xWebAdministration – Примеры: регистрация PHP
Установите необходимые компоненты Windows и отключите ненужные пулы IIS
Я использую следующие строки PowerShell для настройки Windows Server и IIS с DSC:
Этот файл содержит двунаправленный текст Unicode, который может быть интерпретирован или скомпилирован не так, как показано ниже. Для просмотра откройте файл в редакторе, который показывает скрытые символы Unicode.
Подробнее о двунаправленных символах Юникода
$features = @("Веб-сервер", |
"Web-Mgmt-Tools", |
" web-Default- Doc ", |
"Web-Dir-Browsing", |
"Web-Http-Errors", |
"Статический веб-контент", |
"Веб-Http-регистрация", | "web-Stat-Compression", |
"web-Filtering", |
" web- CGI ", |
"web-ISAPI-Ext" , |
"web-ISAPI-Filter" |
) |
$dependsOn = @() |
$features | ForEach-Object – Процесс |
WindowsFeature $_ |
Name = $_ |
Ensure = " Present " |
> |
$dependsOn += " [WindowsFeature] $ ( $_ ) " | tr>
> |
@ ( |
" .NET v2.0 ", |
" .NET v2.0 Classic", |
" .NET v4.5", |
" .NET v4.5 Classic ", |
" Classic .NET AppPool", |
" DefaultAppPool " |
) | ForEach-Object – Process |
xWebAppPool "Remove- $ ( $_ .ToString ().Replace( " " , " " ).Replace( " . " , " " ) ) " td> |
Name = $_ |
Обеспечить = "Отсутствует" | < /tr>
DependsOn = $dependsOn |
> |
> |
xWebSite RemoveDefaultWebSite |
Name = "Веб-сайт по умолчанию" |
PhysicalPath = " C:\inetpub\wwwroot " |
Ensure = " Absent " |
DependsOn = $ зависит от |
> |
Пакет vcRedist |
Path = " $ ( $SourceFolder ) \VC_redist.x64.exe " |
ProductId = " " |
Name = " Microsoft Visual C++ 2017 Redistributable (x64) – 14.11.25325 " |
Аргументы = "/install /passive" |
> |
Архивировать PHP |
Путь = " $ ( $SourceFolder ) \php-7.1.12-nts-Win3 2-VC14-x64.zip " |
Destination = $phpDirectory |
> | Файл PhpWinCache |
SourcePath = " $ ( $SourceFolder ) \WinCache\php_wincache.dll " |
DestinationPath = " $ ( $phpDirectory ) \ext " |
Type = " File " |
MatchSource = $true | tr>
DependsOn = @ ( " [Архив]PHP " ) |
> |
Файл PhpIni |
SourcePath = " $ ( $SourceFolder ) \php.ini " |
DestinationPath = " $ ( $phpDirectory ) \php.ini " |
MatchSource = $true |
Force = $true |
Контрольная сумма = " SHA-512 " |
Убедитесь = " Present " |
DependsOn = @ ( " [Архив] PHP " ) |
> | < /tr>
xIisModule PhpHandler |
Name = " phpFastCgi " |
Path = " $ ( $phpDirectory ) \php -cgi.exe " |
RequestPath = " *.php " |
Глагол = " * " | < /tr>
Ensure = " Present " |
ModuleType = " FastCgiModule " |
DependsOn = @ ( " [Пакет] vcRedist " , " [Архив] PHP " ) + $dependsOn |
> |
Script FixIisModule < /tr> |
GetScript = |
return @ |
Result = " " |
> |
> |
SetScript = |
Import-Module WebAdministration |
Set-WebHandler phpFastCgi — Модули FastCgiModule |
> |
TestScript = |
Import-Module WebAdministration |
$fastCgi = Get-WebHandler phpFastCgi |
return $fastCgi .Modules -eq " FastCgiModule " |
> |
DependsOn = "[xIisModule]PhpHandler" td> |
> |
Environment PathPhp |
Name = "Path" | tr>
Value = " ; $ ($phpDirectory) " |
Убедитесь = "Присутствует" |
Путь = $true |
DependsOn = "[Архив]PHP" |
> |
После завершения настройки IIS мы можем начать с установки PHP и MySQL.
Настройка PHP и расширения WinCache
В PHP 7.1 доступно несколько вариантов установки. Я выбрал версию PHP без сохранения потоков, загрузил эту версию на свой клиент и сделал ее доступной на сервере.
Дополнительно вам потребуется скачать:
Установка PHP довольно проста. Он состоит из следующих шагов:
- Установите Microsoft Visual C++ 2017
- Извлеките ZIP-файл PHP в папку установки
- Скопируйте DLL WinCache в папку ext папки установки PHP
- Переименуйте php.ini-production в php.ini
- Включите расширение WinCache в файле php.ini
- Добавить обработчик Php
- Настроить путь для PHP
Шаги с 1 по 4 являются обычными. Ресурсы DSC:
- Ресурс пакета
- Архивировать ресурс
- Файловый ресурс
- Файловый ресурс
- См. ниже
- Ресурс xIisModule – в настоящее время имеется одна проблема
- Ресурс окружающей среды
Для шага 5 нам нужно написать некоторый код, используя ресурс скрипта:
Этот файл содержит двунаправленный текст Unicode, который может быть интерпретирован или скомпилирован не так, как показано ниже. Для просмотра откройте файл в редакторе, который показывает скрытые символы Unicode.
Подробнее о двунаправленных символах Юникода
Script PhpWinCache |
GetScript = |
return@ |
Result = " " |
> |
TestScript = |
$iniFile = " $ ( $phpDirectory ) \php.ini " |
$currentStatus = Select-String — Путь $iniFile — Шаблон "^extension=php_wincache.dll" |
Write-Debug " $ ( $currentStatus ) " |
return ( $null -ne $currentStatus ) |
> |
SetScript = |
$iniFile = " $ ( $phpDirectory ) \php.ini " | tr>
Add-Content – Путь $iniFile – Значение «`r`n extension=php_wincache.dll» – Force |
> | < /tr>
DependsOn = @ ("[File]PhpWinCache", "[File]PhpIni") |
> |
Пакет MySqlInstaller |
Path = " $ ( $SourceFolder ) \mysql-installer-community-5.7.20.0.msi " |
ProductId = " " |
Name = "Установщик MySQL — сообщество" |
Arguments = "" |
> |
Пакет vcRedist2013 |
Путь = " $ ( $SourceFolder ) \ vcredist_x64.exe " |
ProductId = " " |
Name = "Распространяемый компонент Microsoft Visual C++ 2013 (x64) — 12.0. 40660 " |
Аргументы = " /install /passive " |
> |
xMySqlServer MySqlInstance |
MySqlVersion = " 5.7.20 " |
RootPassword = $MySqlRootPassword |
Port = 3306 |
Ensure = " Present " |
DependsOn = @ (" [Package]MySqlInstaller " , " [Пакет]vcRedist2013 " ) |
> |
Сценарий FixReadErrorinMySqlResource |
GetScript = |
return @ |
Result = " " |
> | tr>
> |
SetScript = |
$filePath = " C:\Program Files\WindowsPowerShell\Modules\xMySql \2.1.0.0\MSFT_xMySqlUtilities.psm1 " |
$newLine = @" |
if( `$ line -match [ RegEx]::Escape("mysql: [Предупреждение] Использование пароля в команде")) |
break |
> |
"@ |
$content = Get-Content $filePath< /td> |
$content [ 241 ] = " `r`n " -f $newLine , $content [ 241 ] |
$ содержание | Set-Content $filePath |
Import-Module $filePath |
> |
TestScript = |
$content = Get-Content " C:\Program Files\WindowsPowerShell\Modules\xMySql\2.1.0.0\MSFT_xMySqlUtilities.psm1 " |
if ( $content .length -eq 319 -and |
$content [ 241 ] -eq " if( `$ line -match [RegEx]: :Escape( `" mysql: [Предупреждение] Использование пароля в команде `" )) " ) |
return $true< /td> |
> |
return $false |
> |
> |
xMySqlServer MySqlInstance |
MySqlVersion = " 5.7.20 " | tr>
RootPassword = $MySqlRootPassword |
Порт = 3306 |
Ensure = " Present " td> |
DependsOn = @ ("[Package]MySqlInstaller" , "[Script]FixReadErrorinMySqlResource) |
> | tr>
xMySqlDatabase MySqlPiwikDb |
MySqlVersion = " 5.7 . 20 " |
DatabaseName = " Piwik " |
RootCredential = $MySqlRootPassword |
Ensure = " Present " |
DependsOn = @( " [ xMySqlServer ]MySqlInstance " , " [ Script ]FixReadErrorinMySqlResource) |
> |
Обзор
Процесс установки PHP и MySQL на Windows Server 2012 R2 прост. Добавление расширения WinCache было непростой задачей.
Самая большая проблема: примеры, представленные в репозиториях xWebAdministration, xMySql на GitHub, были устаревшими. Руководства и используемые версии отличаются от текущих.
Читайте также:
- Как узнать, когда истекает срок действия лицензии Windows 10
- Очистить настройки ОС Linux
- Достигнута целевая базовая система Centos 7 зависает
- Sacred gold не запускается в Windows 10
- Произошла ошибка при настройке Windows Server 2016 Essentials