Php iis: PHP: Самостоятельная установка PHP в Windows
Настройка IIS для драйверов для PHP — SQL Server
-
- Чтение занимает 2 мин
В этой статье
Скачать драйвер PHPDownload PHP Driver
Эта статья содержит ссылки на ресурсы на веб-сайте служб IIS, посвященные настройке служб IIS для размещения приложений PHP.This topic provides links to resources on the Internet Information Services (IIS) Web site that are relevant to configuring IIS to host PHP applications. Перечисленные здесь ресурсы относятся к использованию протокола FastCGI со службами IIS.The resources listed here are specific to using FastCGI with IIS. FastCGI является стандартным протоколом, который позволяет исполняемым файлам CGI исполняющей среды взаимодействовать с веб-сервером. FastCGI is a standard protocol that allows an application framework’s Common Gateway Interface (CGI) executables to interface with the Web server. Протокол FastCGI отличается от стандартного протокола CGI тем, что FastCGI повторно использует процессы CGI для нескольких запросов.FastCGI differs from the standard CGI protocol in that FastCGI reuses CGI processes for multiple requests.
УчебникиTutorials
Ниже представлены ссылки на руководства по настройке протокола FastCGI для PHP и размещению приложений PHP в службах IIS 6.0 и IIS 7.0:The following links are for tutorials about setting up FastCGI for PHP and hosting PHP applications on IIS 6.0 and IIS 7.0:
ВидеопрезентацииVideo Presentations
Ниже представлены ссылки на видеопрезентации о настройке FastCGI для PHP и использовании функций служб IIS 7.0 для размещения приложений PHP:The following links are for video presentations about setting up FastCGI for PHP and using IIS 7.0 features to host PHP applications:
Ресурсы поддержкиSupport Resources
Указанные ниже форумы предоставляют поддержку сообщества по использованию FastCGI в службах IIS:The following forums provide community support for FastCGI on IIS:
См.
также:See Also
Getting Started with the Microsoft Drivers for PHP for SQL Server (Начало работы с драйверами Майкрософт для PHP для SQL Server)Getting Started with the Microsoft Drivers for PHP for SQL Server
Руководство по программированию драйверов Microsoft для PHP для SQL ServerProgramming Guide for the Microsoft Drivers for PHP for SQL Server
Справочник по API для драйвера SQLSRVSQLSRV Driver API Reference
Константы (драйверы Майкрософт для PHP для SQL Server)Constants (Microsoft Drivers for PHP for SQL Server)
Как сделать, чтобы PHP под IIS мог создавать и изменять файлы
После установки PHP на web-сервер IIS, часто возникает следующая проблема. Из PHP кода можно открывать и читать файлы, но при этом отсутствует возможность их создавать и записывать в них изменения.
Тема этой статьи, с одной стороны, уже не раз поднималась, в том числе, в Интернете. Но, в тоже время, очень многие материалы по данному вопросу являются не полными. В частности, потому что не затрагивают причину возникновения данной проблемы либо затрагивают её достаточно поверхностно. Поэтому, имеет смысл вновь обратиться к нему. Тем более что в последние годы хостинг под Windows стал довольно распространён, а IIS является «штатным» web-сервером этой операционной системы.
О том какую роль играет работа с файлами в функционировании web-приложений говорить, наверное, излишне. Достаточно вспомнить, хотя бы то, что практически любая система управления контентом (англ. — Content Management System, сокр. — CMS) имеет файл настроек конфигурации, который создаётся при её установке и в который записываются данные необходимые для её работы. Если нет возможности создать этот файл, CMS может не установиться. Правда, некоторые CMS, например Joomla, в подобных случаях, выводят содержимое этого файла на странице завершения установки. Таким образом, есть возможность создать файл настроек вручную, просто скопировав его содержимое со страницы.
Однако это не решает проблему, так как в процессе работы web-приложения всё равно может потребоваться создание или изменение тех или иных файлов. Следовательно, проблему записи файлов при работе сайта под IISнеобходимо решить.
Причина возникновения проблемы
Для решения любой проблемы необходимо понять причину, которая привела к её возникновению.
В NTFS для доступа к файлам и папкам существует система, так называемых, разрешений. Подробное описание этой системы приведено на сайте TechNet. Однако её суть довольно проста. Для того чтобы пользователь или группа пользователь могли совершать с файлом или папкой те или иные действия, они должны обладать определённым набором прав.
В процессе установки IIS создаются:
- Группа пользователей: IIS_IUSRS;
- Пользователь: IUSR.
Полное описание разрешений NTFS по умолчанию для IIS представлено на сайте поддержки Microsoft. В рамках рассматриваемого вопроса необходимо отметить только следующие моменты.
Группа пользователей IIS_USRS имеет доступ только к папке сайта по умолчанию (wwwroot). Причём, по умолчанию, доступ не полный. В частности, нет разрешений на запись и изменение. При этом пользователь IUSR в списке пользователей и групп, имеющих доступ к этой папке, по умолчанию, отсутствует вообще.
Данные установки разрешений служат, в частности, для обеспечения безопасности. Но, в тоже время, как показывает практика, сильно затрудняют работу web-приложений.
Дело в том, что IIS устроена таким образом, что по умолчанию, то есть, если в web-приложении не реализован специальный вид аутентификации, оно работает в режиме анонимного доступа. В этом режиме все пользователи web-приложения представлены в системе как пользователь IUSR. Поэтому, вполне естественно, что web-приложение имеет только те возможности, которые ему могут быть предоставлены в соответствии с этой учётной записью.
Вследствие того, что, как говорилось выше, разрешения на запись и изменения у пользователя IUSR по умолчанию отсутствуют, также, по умолчанию, отсутствуют аналогичные возможности у web-приложений.
Варианты решения
Теперь, когда стала известна причина возникновения проблемы, можно рассмотреть возможные способы её решения.
В данном случае их два:
- Предоставить пользователю IUSRнеобходимые разрешения для папок, в которых расположены файлы сайтов.
- Использовать аутентификацию отличную от анонимной.
Первый способ в принципе достаточно подробно описан на официальном сайте PHP в статье посвящённой установке в Windows.
В силу своей простоты, в частности необходимые разрешения можно предоставить не только с помощью командной строки (как предлагается в статье), но и при помощи графического интерфейса Windows (вкладка «Безопасность» в окне свойств папки или файла (см. скриншот)), этот способ легко реализуем.
Помимо этого, он предоставляет возможность создавать файлы и записывать в них изменения, в том числе, простым web-приложениям, в которых не предусмотрена система авторизации (простейшие сайты).
В тоже время, использование этого способа отрицательно сказывается на безопасности. Как уже было отмечено, при анонимном доступе все пользователи web-приложения, представлены в системе одной и той же учётной записью. И таким образом все они, включая простых «гостей сайта», имеют, по сути, одинаковые права.
Второй способ значительно сложнее в реализации и подходит только для достаточно сложных web-приложений. Он требует не просто наличия у web-приложения системы авторизации. Эта система должна быть построена в соответствии с тем методом аутентификации, который используется на сервере.
Методы аутентификации, используемые в IIS, подробно описаны на сайте поддержки Microsoft.
Такой подход обеспечивает более высокий уровень безопасности, а также, несмотря на всю сложность реализации расширить возможности web-приложения. Например, путём интеграции с ActiveDirectory.
Заключение
Проблема полноценной работы с файлами в PHP под IIS решаема. При этом для её решения могут быть использованы различные подходы, а не только способ с официального сайта PHP.
Решение, какой из них выбрать здесь, как и во многих других случаях, необходимо принимать разработчику, в соответствии со спецификой разрабатываемого приложения и требованиями к нему. В том числе, требованиями относительно безопасности.
Установка и настройка веб-сервера IIS + PHP + MySQL на Windows Server 2012 R2 » Самоучка
6
Установку Windows Server 2012 R2 мы рассмотрели в этой статье.
Для начала нашему серверу необходимо добавить роль Web-сервера. Для добавления открываем «Диспетчер сервера», и в меню «управление» жмем «добавить роли и компоненты»:
Откроется мастер добавления ролей и компонентов. Жмем «далее» :
Тип установки, выбираем «Установка ролей и компонентов». «Далее»:
Выбор сервера, ну у нас выбор пока не большой, выбираем наш сервер. Жмем «далее»:
Роли сервера, выбираем «веб-сервер», мастер предложит добавить необходимые компоненты. Жмем «Добавить компоненты»:
Компоненты. Нам пока ничего не нужно, жмем «Далее»:
«Далее»:
Попадаем на страницу выбора служб ролей. Помимо уже отмеченных служб, отмечаем «ASP.NET», «Расширяемость .NET», «ASP», «CGI», «Расширения ISAPI», «Фильтры ISAPI», «Включения на стороне сервера(SSI)», нажимаем «Далее»:
Появится предупреждение, что у некоторых обьектов отсутствуют исходники. Если у вас активно интернет соединение жмем «Установить», все необходимое мастер скачает и установит самостоятельно.
По окончании установки открываем «Диспетчер сервера», и в меню «Средства» выбираем «Диспечер служб IIS»:
В диспетчере мы видим наш сервер, и вкладку «сайты», по умолчанию содержащую «Default Web Site». Этот сайт состоит из приветственной страницы IIS. Выделяем его и в правом меню «действия» жмем «обзор». (или открыв Internet Explorer и в строке адреса введя http://localhost).
Далее надо установить PHP
Распаковываем скачанный нами php-5.5.6-nts-Win32-VC11-x64.zip в предварительно созданную нами директорию, предположим в С:\php-5.5.6\.
Теперь нужен плагин PHP Manager for IIS для управляения PHP из из диспетчера IIS.
Устанавливаем его следуя инструкциям инсталятора.
Если все сделано правильно в Диспетчере служб IIS должна появиться остастка «Администратор PHP»:
Открываем и жмем: «зарегистрировать новую версию PHP»:
Указываем расположение созданной директории с распакованным PHP:
В остнастке «Администратор PHP» жмем: «проверить phpinfo()»
Выбираем сайт для проверки (у нас пока только http://localhost/):
Опсс. .., а результат ошибка:
Нужно установить пакет Visual C++ для Visual Studio 2012 Обновление 4
Скачиваем его здесь ( http://www.microsoft.com/ru-ru/download/details.aspx?id=30679 )
Открываем и устанавливаем:
В остнастке «Администратор PHP» жмем: «проверить phpinfo()»
Далее в «Администраторе PHP» нажимаем «Контролировать все параметры», и вносим изменения:
Создаем пустые папки «C:/php/upload» и «C:/php/temp».
Все, на этом установка PHP завершена.
Установка MySQL
Скачиваем установщик на официальной странице http://www.mysql.com/downloads/mysql/. Последняя версия на момент написания статьи 5. 6.15.
После загрузки запускаем установку:
Выбираем «Install MySQL Products»:
Соглашаемся с лицензионными требованиями и жмем «Ntxt»:
Жмем «Execute»:
Жмем «Next»:
Оставляем по умолчанию и жмем «Next»:
Жмем «Execute»:
Установщик проверит конфигурацию, и при необходимости загрузит недостающие компоненты:
Соглашаемся с лицензией и запускаем установку:
Жмем «Next»:
Жмем «Execute»:
Жмем «Next»:
Жмем «Next»:
Оставляем по умолчанию и жмем «Next»:
Вводим достаточно сложный пароль пользователя root, жмем «Next»:
Оставляем по умолчанию и жмем «Next»:
Жмем «Next»:
Жмем «Finish»:
Откроется MySQL Connections, жмем «Local instance MySQL56»:
Жмем «Connect»:
Вводим пароль:
Откроется окно управления нашим MySQL-сервером:
Далее установим более привычный для работы с базами данных скрипт phpMyAdmin.
Скопируйте содержимое архива phpMyAdmin-4.0.10-all-languages.zip в созданную заранее директорию C:\inetpub\wwwroot\admin\.
Находим «config.sample.inc.php», и переименовываем его в «config.inc.php»
Открываем его и раскоментируем следующие строки(уберем «//»):
// $cfg[‘Servers’][$i][‘controluser’] = ‘pma’;
// $cfg[‘Servers’][$i][‘controlpass’] = ‘pmapass’;
// $cfg[‘Servers’][$i][‘pmadb’] = ‘phpmyadmin’;
// $cfg[‘Servers’][$i][‘bookmarktable’] = ‘pma_bookmark’;
// $cfg[‘Servers’][$i][‘relation’] = ‘pma_relation’;
// $cfg[‘Servers’][$i][‘table_info’] = ‘pma_table_info’;
// $cfg[‘Servers’][$i][‘table_coords’] = ‘pma_table_coords’;
// $cfg[‘Servers’][$i][‘pdf_pages’] = ‘pma_pdf_pages’;
// $cfg[‘Servers’][$i][‘column_info’] = ‘pma_column_info’;
// $cfg[‘Servers’][$i][‘history’] = ‘pma_history’;
// $cfg[‘Servers’][$i][‘tracking’] = ‘pma_tracking’;
Сохраняем измененный файл.
Введите в адресной строке браузера «http://localhost/admin/». Вы увидите основное окно скрипта phpMyAdmin для управления базами данных MySQL.
Далее необходимо создать базу данных «phpmyadmin» и импортировать в нее специально предназначенные таблицы, для чего выберите на главной странице ссылку «Import» («Импорт»), на открывшейся странице, в разделе «File to import» («Импортируемый файл») нажмите кнопку «Browse…» («Обзор…»). Выберите файл «create_tables.sql», находящийся в каталоге «examples», и нажмите кнопку «Go» («OK»).
Следующим шагом необходимо создать специального пользователя с именем «pma» и наделить его соответствующими правами, для чего нажмите «Privileges» («Привилегии»), на открывшейся странице нажмите ссылку «Add a new User» («Добавить нового пользователя»), в разделе «Login Information» («Информация учетной записи») заполните поля следующим образом:
User name (Имя пользователя): pma
Host (Хост): localhost
Password (Пароль): pmapass
Нажмите кнопку «Go» (OK).
На открывшейся странице, в разделе «Database-specific privileges» («Привилегии уровня базы данных») из ниспадающего меню «Add privileges on the following database:» («Добавить привилегии на следующую базу») выберите «phpmyadmin».
Откроется следующая страница, где в разделе «Database-specific privileges» («Привилегии уровня базы данных»), в блоке «Data» («Данные»), поставьте галочки рядом с опциями: SELECT, INSERT, UPDATE, DELETE и нажмите «Go» («OK»).
Вот и всё установка и настройка скрипта phpMyAdmin – завершена.
Далее переходим к установке модуля rewrite(модуль переопределения URL-адресов):
Запускаем установщик(rewrite_x64_ru-RU.msi):
Далее открываем «Диспетчер сервера» и в в Диспетчере служб IIS нажимаем » Добавить веб-сайт»
Заполняем «имя сайта», «Физический путь» и «имя узла»
Имя — предположим «admin»
Физический путь — C:\inetpub\wwwroot\admin\
Имя узла — предположим «admin»
Так как у нас пока не установлен DNS-сервер, открываем файл «hosts»(C:\Windows\System32\drivers\etc)
В конце файла добавляем строку:
192. 168.0.53 admin
Сохраняем изменения и закрываем.
Здесь 192.168.0.53 — IP-адрес моего сервера, У вас он может быть другим.
Далее в Диспечере IIS вколонке «Действия»(справа) нажимаем «Обзор admin on*:80(http)» и видим основное окно скрипта phpMyAdmin:
На этом пока остановимся.
Предварительная регистрация через интернет в IS-Line используя IIS
Номер статьи: 0000211
Перед началом использования предварительной регистрации через интернет у Вас должно быть установлено и настроено:
- Програмное обеспечение IS-Line актуальной версии
- Програмное обеспечение вебсервера IIS
- Скриптовый язык PHP версии 5,6 или выше
- Настройка програмного обеспечения IS-Line для предварительной регистрации через интернет
Действия по установке и настройке пункта №1 описаны в статьях.
Установка IIS:
N.B. Стоит отметить, что не все редакции Windows имеют возможность установить програмное обеспечение вебсервера IIS. Для нас сейчас достаточно запомнить, что не все редакции HOME имеют возможность установить IIS. С полным списком можно ознакомится на официальном сайте Microsoft или во всемирной библиотеке Wikipedia.
N.B. В данной статье мы не рассматриваем вариант когда необходимо настроить защищенный вебсервер и закрыть все возможности для доступа к нему из вне. Вы можете более детально ознакомиться с настройкой IIS на официальном сайте или вот тут.
Установка PHP:
N.B. Для установки PHP мы будем использовать Web Platform Installer — это даст возможность не вникать во все тонкости настройки IIS и регистрации компонентов. Для более точной настройке рекомендую использовать отдельные компоненты — таким образом Вы сможете установить именно, то что Вам нужно.
- Скачиваем и устанавливаем Web Platform Installer
- Запсукаем Web Platform из Панель Управления > Администрирование > Диспетчер служб IIS выбрав «Установщик веб-платформы»
- В открывшемся окне в поиске пишем «PHP» — таким образом будет найдены все названия в котором имеются буквы «php». Находим PHP 5.6 или выше для IIS и нажимаем клавишу «Добавить«
- После того как все что нужно выбрано нажимаем на клавишу «Установить«. Программа сама предложит к установке все компоненты которые необходимы для установки выбранного нами PHP, ознакамливаемся и нажимаем на клавишу «Принимаю«. Произойдет установка всего необходимого.
Настройка програмного обеспечения IS-Line для предварительной регитсрации через интернет
- В папке с установленной программой IS-Line имеется папка WebReg по пути C:\Program Files\East Concept\EcWeb\Web в данной папке хранится актуальная версия програмного обеспечения для предварительной регистрации через интернет. Нам необходимо скопировать папку WebReg в папку веб сервера IIS по пути C:\inetpub\wwwroot
N.B. Для упрощения настройки можно переименовать папку WebReg в папку ecweb. Ссылка для проверки PHP изменится на http://localhost/ecweb/php/phpinfo.php
- Перейдя по ссылке http://localhost/webreg/php/phpinfo.php Вы увидете верно ли установилось PHP
- Если Вы воспользовались подсказкой написанной выше по переименованию папки, то перейдя по ссылке http://localhost/ecweb/registration.html Вы увидете свою рабочую интернет регистрацию(что то похожее как на скриншоте, услуги у Вас, конечно, будут отличными)
- Если Вы не воспользовались советом то Вам необходимо отредактировать файл C:\inetpub\wwwroot\Webreg\registration.html используя какой-либо текстовый редактор заменив в нем стандартные пути ecweb на пути к папке WebReg
на
- Для полноценной работы предварительной регитсрации через интернет необходимо понимать что сервер у Вас будет находится на отдаленном компьютере, а у Вас как у клиента ничего не будет из серверной части. Поэтому Вам необходимо отредактировать файл C:\inetpub\wwwroot\Webreg\php\config.php в строчках файла необходимо заменить localhost и порт на реальные значения адреса и порт для доступа.
<?php$QMS_APP=[«url»=>»http://localhost:20070/EcClientService/Rest/»];?>
Просмотры: 1505
Настройка IIS, PHP и MySQL на Windows 8.1. Инструкция в картинках « Марк и Марта.Ру. Записки отца-программиста
С помощью Windows-утилиты Microsoft Web Platform Installer стало очень просто устанавливать и настраивать работу связки веб-сервера IIS, языка PHP и базы данных MySQL. Раньше, еще до появления этой утилиты, аналогичная настройка занимала намного больше времени. Правда, если это делать при отсутствии доступа к интернету, то повозиться придется. Но в данной записи я опишу то, как я устанавливаю связку.
1. Добавление IIS в Windows
Для добавления IIIS в Windows 8 (или любой другой) нужно зайти в панель управления в раздел «Программы и компоненты» (Рис. 1)
Рис.1. Панель управления Windows
В открывшемся окне нажать на кнопку «Включение или отключение компонентов Windows» (Рис.2).
Рис.2. Включение или отключение компонентов Windows
В окне «Компоненты Windows» отметьте в ветке IIS как минимум разделы «Службы Интернета» и «Средства управления веб-сайтом» (Рис.3).
Рис.3. Компоненты IIS
2. Подготовка Microsoft Web Platform Installer
Для начала необходимо загрузить Microsoft Web Platform Installer со страницы сайта. Для этого зайдите на страницу http://microsoft.com/web/downloads/platform.aspx (Рис.4). Если ссылка не сработает, то в любом поисковике вбейте Microsoft Web Platform Installer – первая ссылка должна вести на сайт Microsoft.com). Загрузите установочный файл и установите его (Рис.5).
Рис.4. Страница загрузки Microsoft Web Platform Installer
Рис.5. Установка Microsoft Web Platform Installer
3. Поиск необходимых компонент в Microsoft Web Platform Installer – PHP и MySQL
К сожалению, не все версии PHP из найденных будут работать. Нужно, чтобы в названии было написано что-то типа «PHP 5.5.11 For IIS Express» (Рис.6). Версию выберите ближайшую к той, что установлена на вашем рабочем сервере. Себе я устанавливаю «PHP 5.5.11 For IIS Express (Английский)».
Рис.6. Выбор версии PHP для IIS
Кроме PHP, необходимо установить и сервер управления базами данных MySQL. В случае с MySQL – также выберите ближайшую версию к вашему серверу (Рис.7).
Рис.7. Выбор версии MySQL
При установке MySQL программа попросит указать пароль для администратора сервера управления базами данных (root) (Рис.8). Тут рекомендация простая – для учебных и тестовых баз делайте пароль попроще, в остальных случаях – посложней.
Рис.8. Установка пароля для сервера управления базами данных MySQL
После ввода root-пароля для MySQL останется только нажать на кнопку «Принимаю» лицензионные соглашения для выбранных продуктов.
Рис.9. Принятие условий для установки PHP и MySQL
4. Установка URL Rewrite
Если вы развернете локальную версию блога WordPress, Joomla или другой популярной системы управления сайтами, то очень быстро столкнетесь вот с чем – при переходе на страницы с ЧПУ (ссылка вида http://mysite/stories/about.htm, а не http://mysite/index.php?id=21), вы получите сообщение о том, что страница не найдена.
Чтобы работала поддержка ЧПУ, необходимо установить для IIS то, что в Apache называется mod_rewrite – модуль URL Rewrite.
Модуль добавляется также через Microsoft Web Platform Installer. Для установки модуля откройте IIS и выберите пункт «Установщик веб-платформы» (Рис.10).
Рис.10. Переход к Установщику веб-платформы из IIS
В открывшемся окне в строке поиска введите «Модуль переопределения» или «URL Rewrite».
Рис.11. Установка модуля переопределения URL-адресов
После нажмите на кнопку «Установить».
В большинстве случаев, когда речь идет о связке клиент-сервер, предполагаются решения, основанные на архитектуре Linux. Если же Вы выбрали в качестве основы Windows Server, проще будет развернуть на нем интегрированный IIS, неоспоримым преимуществом которого является отлаженное взаимодействие с остальными платформами компании Microsoft. К примеру, он включает в себя функционал платформы .NET и «нативно» поддерживает ее приложения.
Чтобы установить web-сервер переходим в Роли Диспетчера сервера и отмечаем пункт «Веб-сервер (IIS)». Прежде чем, перейти к следующему шагу, убедитесь, что среди компонентов активированы «Возможности .NET Framework 3.5.1», «Служба активации процессов Windows» (очень важно) и «Средства удаленного администрирования сервера». Далее заходим в Диспетчер служб IIS (можно найти в меню «Пуск»), кликаем ПКМ в подменю «Сайты» и выбираем «Создать новый сайт». Откроется окно, где следует указать имя веб-сайта, путь к папке с его содержимым и доменное имя (например, mysite.local). После этого еще нужно подставить соответствующую строку (с IP-адресом и именем узла) в файл «hosts» и проверить работоспособность сервера, набрав в интернет-обозревателе его IP — должна отобразиться страница-заглушка IIS по умолчанию.
Читайте на сайте myapplemaster.ru полезные советы по использованию техники Apple.
Сама роль веб-сервера отконфигурирована, и сейчас на нем можно размещать публичные HTML-страницы, но современные интернет-ресурсы также используют СУБД, в связи с чем целесообразно «поставить» MS SQL Server. Следует отметить, что дефолтных значений любой из версий данного программного комплекса вполне достаточно для выполнения повседневных задач, а его установка сводится к банальным нажатиям кнопки «Далее», кроме некоторых аспектов: в окне «Настройки компонента Database Engine» стоит выбрать Смешанный режим, Добавить текущего пользователя соответствующей кнопкой и указать пароль доступа к управлению.
Входящий в комплект СУБД от Microsoft инструмент Management Studio позволяет создавать базы данных и устанавливать для них требуемые параметры. Теперь нужно включить возможность связываться с БД из сети, для чего открываем Диспетчер конфигурации Sql Server и переходим к разделу «Сетевая конфигурация SQL Server». Открываем Протоколы для DB и, дальше, TCP/IP. Во вкладке «IP-адреса» обязательно прописываем TCP-порт 1433 для IP1 и ставим его в состояния «Активен» и «Включено». Остальные адреса можно отключить, если в них нет необходимости. Далее, через Службы SQL Server необходимо осуществить перезапуск SQL Server (DB) и применить в Брандмауэре Windows правило на разрешение входящих соединений с БД (открыть порт 1433). Вот так, наши сетевые хранилища отныне готовы для подключений «извне». Далее стартует заключительный этап настройки Windows Server — установка PHP. Для этого скачиваем и инсталлируем пакет Microsoft Web Platform, затем запускаем. Из всех доступных компонентов нам требуются только PHP 5.4.9 (более новые версии — 5.6.0 и 5.5.11 — обладают меньшей совместимостью), Диспетчер PHP для IIS и Microsoft Drivers 3.2 for PHP v5.4 for SQL Server in IIS. По завершении установочного процесса можно сразу открыть Диспетчер служб IIS, выбрать имя компьютера, затем оснастку «Администратор PHP» и нажать ссылку «Проверить phpinfo()». Если все функционирует верно, откроется веб-страница с версией, конфигурацией и другой информацией по PHP. Через эту оснастку подбираются оптимальные параметры и выполняется менеджмент расширений серверного языка программирования. Просмотрев phpinfo и, тем самым, удостоверившись в правильности выполненных действий, можно приступать к созданию тестового скрипта для проверки подключения к базе данных. На этом настройка Windows Server для функционирования в роли web-сервера считается оконченной. Предлагаю в качестве подарка скачать бесплатную книгу: причины зависаний на ПК, восстановление данных, компьютерная сеть через электропроводку и много других интересных фишек. Понравилась полезная статья? Подпишитесь на RSS и получайте больше нужной информации! |
Как установить PHP на IIS (Internet Information Services) в Windows
Установка PHP на IIS не представляет собой ничего сложного, выполните шаги, описанные ниже, и у вас все получится!
-
Для работы нам понадобится инструмент от компании Microsoft под названием «Web Platform Installer». C его помощью процесс установки будет приятным и легким. Скачать его можно с официального сайта.
Скачиваем и запускаем.
нажмите, чтобы увеличить
Рис. 1
-
Открываем настройки, внизу нас спрашивают: «Какой веб-сервер требуется использовать?», выбираем «IIS», все остальные параметры оставляем без изменений. Жмем «ОК».
нажмите, чтобы увеличить
Рис. 2
-
В поле поиска вводим «PHP» и жмем «Enter». Выводятся результаты поиска. Выбираем среди них нужную версию PHP в зависимости от платформы для 32 разрядной системы x86 и x64 для 64-разрядной системы. На момент написания статьи актуальная версия PHP 7.0.7.
нажмите, чтобы увеличить
Рис. 3
-
Обратите внимание, что, если вы устанавливаете PHP на IIS Express, нужно выбрать версию PHP For Express, иначе для обычного IIS нужно выбрать просто PHP. После того, как вы выбрали нужную версию, нажмите кнопку «Добавить», а затем «Установить»
нажмите, чтобы увеличить
Рис. 4
-
«Web Platform Installer» сам заботится об установке необходимых расширений для работы, в частности «Диспетчер PHP для IIS», «Windows cache extension» и др. Нажимаем кнопку «Принимаю».
нажмите, чтобы увеличить
Рис. 5
-
Начинается процесс установки. «Web Platform Installer» сам скачивает все необходимое и устанавливает, вам нужно лишь подождать. Установка может занять несколько минут. О ходе ее выполнения вам сообщит индикатор.
нажмите, чтобы увеличить
Рис. 6
-
В завершении установки программа выведет список установленных компонентов. На этом установка PHP завершена.
нажмите, чтобы увеличить
Рис. 7
-
Чтобы проверить, что PHP установлен правильно, зайдем в панель управления IIS: «Пуск», правой кнопкой мыши клик по пункту меню «Мой компьютер», в появившемся меню выбираем «Управление»
нажмите, чтобы увеличить
Рис. 8
-
В панели управления компьютером выбираем «Службы и приложения».
нажмите, чтобы увеличить
Рис. 9
-
В открывшемся окне выбираем «Диспетчер служб IIS».
нажмите, чтобы увеличить
Рис. 10
-
Выбираем «Администратор PHP».
нажмите, чтобы увеличить
Рис. 11
-
На этой странице диспетчер сообщает нам, что обнаружена неоптимальная конфигурация. Кликаем по ссылке «Посмотреть рекомендации».
нажмите, чтобы увеличить
Рис. 12
-
Устанавливаем галочки в оба поля. Первое необходимо, чтобы по-умолчанию веб-сервер открывал файл index.php.
Второе указывает на путь к файлу конфигурации php.ini
Нажимаем «ОК».
нажмите, чтобы увеличить
Рис. 13
-
Теперь создадим наш первый web-сайт для проверки работы PHP. В меню слева правой кнопкой мыши кликаем по пункту «сайты» и выбираем «Добавить веб-сайт…».
нажмите, чтобы увеличить
Рис. 14
-
Заполняем поля следующим образом:
«Имя сайта»: это название сайта, его доменное имя, которое вы будете вводить в браузере, чтобы открыть свой сайт.
«Физический путь»: путь к папке на вашем жестком диске, где будут храниться файлы вашего сайта.
«Имя узла»: совпадает с «Имя сайта».
Все остальное оставляем без изменения и нажимаем на «ОК». Сайт успешно создан.
нажмите, чтобы увеличить
Рис. 15
-
Осталось немного. Чтобы наш сайт стал доступным, его имя нужно прописать в файле хоста. Для этого откроем файл C:Windows\System32\drivers\etc\hosts и внесем туда строку, как показано на рисунке. Сохраним изменения.
нажмите, чтобы увеличить
Рис. 16
-
Теперь откроем папку нашего сайта, которую указали в настройке «Физический путь» на шаге 15. Создадим в ней файл «index.php» и в него впишем строки примерно такого содержания
нажмите, чтобы увеличить
Рис. 17
-
Откройте в браузере адрес сайта httр://tеst.mуsitе/
Если все настройки произведены правильно, вы увидите на экране надпись.
На этом урок завершен.
нажмите, чтобы увеличить
Рис. 18
PHP для Windows: бинарные файлы и исходники Release
Какую версию выбрать?
IIS
Если вы используете PHP в качестве FastCGI с IIS, вам следует использовать версии PHP без поддержки потоков (NTS).
Apache
Используйте сборки Apache, предоставленные Apache Lounge.
Они предоставляют сборки Apache VC15 и VS16 для x86 и x64.
Мы используем их двоичные файлы для создания Apache SAPI.
В Apache, используя apache2handler SAPI, вы должны использовать версии PHP Thread Safe (TS).
VC15 и VS16
Более свежие версии PHP построены с использованием VC15 или VS16 (компилятор Visual Studio 2017 или 2019 соответственно) и
включают улучшения в производительности и стабильности.
— Для сборок VC15 и VS16 требуется установить Visual C ++ Redistributable для Visual Studio 2015-2019 x64 или x86
ТС и НТС
TS относится к многопоточным сборкам. NTS относится только к однопоточным сборкам. Сценарий использования двоичных файлов TS включает взаимодействие с
многопоточный SAPI и PHP, загруженный в виде модуля на веб-сервер. Для двоичных файлов NTS широко распространенным вариантом использования является взаимодействие с веб-сервером через
протокол FastCGI, не использующий многопоточность (но также, например, CLI).
Что такое ПГО?
Профильная оптимизация — это оптимизация
функция, доступная в компиляторе Microsoft Visual C ++, которая позволяет оптимизировать выходной файл на основе данных профилирования, собранных во время тестовых запусков приложения или модуля.
Ссылки:
amd64 (x86_64) Строит
PHP 7 обеспечивает полную поддержку 64-битной версии. Сборки PHP 7 для x64 поддерживают собственные 64-битные целые числа, LFS, 64-битный memory_limit и многое другое.
Рекомендуются сборки
x64 (почти все установки Windows поддерживают x64).
Длинный и многобайтовый путь
PHP 7.1+ поддерживает длинные пути и пути UTF-8. Подробнее см. В руководстве.
Как развернуть веб-сайт PHP в IIS с помощью Advanced Installer
В следующей статье используются параметры, доступные начиная с версии Professional и типа проекта.
В этом руководстве представлены необходимые шаги для развертывания веб-сайта PHP с помощью расширенного установщика:
1. Добавление файлов ресурсов PHP и веб-сайта
Первым шагом для создания установочного пакета является добавление ресурсов веб-сайта в файлы и Страница папок.
Поскольку содержимое этой папки может измениться в процессе разработки, некоторые файлы должны быть включены или исключены в проект Advanced Installer, что затрудняет отслеживание этих изменений. Вы можете автоматизировать этот шаг, используя функцию синхронизации папок из Advanced Installer. Дополнительная информация о том, как работают синхронизированные папки, доступна в статье Работа с синхронизированными папками.
Таким образом, в представлении Application Folder со страницы Files and Folders вы можете создать обычную папку.Вы можете синхронизировать эту папку с содержимым каталога, в котором расположены ресурсы сайта. Повторите этот шаг, чтобы добавить файлы ресурсов PHP в установочный пакет.
После этого шага представление вашего проекта Файлы и папки должно выглядеть следующим образом:
2. Создайте пул приложений
Хорошей практикой является убедиться, что ваши веб-сайты будут работать в их пуле приложений; использование пула приложений по умолчанию может препятствовать нормальной работе веб-сайтов.Чтобы создать пул приложений для веб-сайта, вы можете использовать кнопку панели инструментов [Новый пул приложений] в представлении IIS.
3. Создайте веб-сайт на странице IIS
Поскольку содержимое веб-сайта было добавлено в проект, пришло время создать веб-сайт. В представлении IIS вы можете создать новый веб-сайт с помощью кнопки панели инструментов [Новый веб-сайт]. При появлении запроса выберите ранее созданную папку в представлении Application Folder в качестве физической папки веб-сайта.Веб-сайт должен выглядеть так:
На вкладке Application Mappings на веб-сайте вам необходимо использовать php-cgi.exe ( из папки ресурсов PHP ) и выбрать модуль FastCGI для обработки запросов .php. Дополнительные параметры для приложения FastCGI можно настроить для узла дерева IIS Глобальные параметры с помощью диалогового окна «Свойства приложения» на вкладке «Параметры FastCGI».
Затем нам нужно включить опцию Использовать установленный пул приложений на вкладке «Пул приложений» и выбрать ранее созданный пул.
Еще один необходимый шаг, чтобы все заработало, — это добавить документ index.php на вкладку Default Document на веб-сайте. Просто создайте новый документ с помощью кнопки [Добавить] и назовите его index.php.
4. Включение необходимых компонентов IIS в Windows
Начиная с Windows Vista, IIS поставляется как набор дополнительных компонентов Windows.
Все, что нам нужно сделать, это включить функции IIS с помощью Windows Feature Bundle. Для этого мы просто используем [New Windows Feature Bundle] из вида «Предварительные требования» расширенного установщика.Мы можем выбрать Целевые операционные системы для функции Windows в соответствии с нашим сценарием.
Для нашего конкретного сценария мы выберем только функцию Документ по умолчанию . Используйте правый верхний фильтр для поиска компонента Windows документа по умолчанию:
При создании нового веб-сайта в проекте Advanced Installer условие запуска IIS автоматически активируется на вкладке «Программное обеспечение» на странице условий запуска. Поскольку мы убедились, что IIS включен на целевой машине с помощью функций Windows, можно безопасно удалить условие запуска программного обеспечения.
5. Запуск веб-сайта в конце процесса установки
Если ваш сценарий требует запуска веб-сайта в браузере в конце процесса установки, вы можете использовать предопределенное настраиваемое действие «Открыть URL-адрес» в качестве настраиваемого действия с последовательностью .
iis-docs / using-fastcgi-to-host-php-applications-on-iis.md на главном сервере · MicrosoftDocs / iis-docs · GitHub
title | автор | описание | мс.дата | ms.assetid | msc.legacyurl | МСК тип |
---|---|---|---|---|---|---|
Использование FastCGI для размещения приложений PHP на IIS 7 | Русланы | В этой статье описывается, как настроить модуль FastCGI и PHP для размещения приложений PHP в IIS 7 и выше. ВАЖНО: В этой статье есть инструкция … | 05.12.2007 | f1143e47-6a11-4429-b8e6-e106661a7187 | / Learn / application-frameworks / install-and-configure-php-applications-on-iis / using-fastcgi-to-host-php-applications-on-iis | авторсодержание |
Руслана Якушева
В этой статье описывается, как настроить модуль FastCGI и PHP для размещения приложений PHP в IIS 7 и выше.
[! ВАЖНО]
В этой статье приведены инструкции по установке и использованию компонента FastCGI в Windows Server 2008 и Windows Vista SP1 . SP1 — , требуется для Windows Vista.
Обзор
Модуль FastCGI в IIS позволяет размещать популярные платформы приложений, поддерживающие протокол FastCGI, на веб-сервере IIS с высокой производительностью и надежностью. FastCGI предоставляет высокопроизводительную альтернативу Common Gateway Interface (CGI), который представляет собой стандартный способ взаимодействия внешних приложений с веб-серверами, который был частью поддерживаемого набора функций IIS с момента первого выпуска.
Программы
CGI — это исполняемые файлы, которые запускаются веб-сервером для каждого запроса для обработки запроса и генерации динамических ответов, которые затем отправляются обратно клиенту. Поскольку многие из этих платформ не поддерживают многопоточное выполнение, CGI позволяет им надежно выполнять в IIS, выполняя ровно один запрос на процесс. К сожалению, он обеспечивает низкую производительность из-за высокой стоимости запуска и остановки процесса для каждого запроса.
FastCGI решает проблемы производительности, присущие CGI, предоставляя механизм многократного повторного использования одного процесса для множества запросов.Кроме того, FastCGI поддерживает совместимость с небезопасными для потоков библиотеками, предоставляя пул повторно используемых процессов и гарантируя, что каждый процесс обрабатывает только один запрос за раз.
Включить поддержку FastCGI в IIS
Windows Server 2008
Перейдите к Server Manager > Roles > Add Role Services . На странице Select Role Services установите флажок CGI . Это включает сервисы CGI и FastCGI.
Windows Vista с пакетом обновления 1
Перейдите в панель управления > Программы и компоненты > Включите или выключите функции Windows . В диалоговом окне Windows Features установите флажок CGI . Это включает сервисы CGI и FastCGI.
ВАЖНО: Установите обновление для модуля FastCGI
Обновление для модуля IIS FastCGI устраняет несколько известных проблем совместимости с популярными приложениями PHP.Установите обновление из одного из следующих мест:
Установите пакет администрирования для IIS
[! ПРИМЕЧАНИЕ]
Этот шаг не обязателен.
Среди других полезных функций пакет администрирования для IIS имеет удобный пользовательский интерфейс для настройки параметров FastCGI. Пакет администрирования можно установить из следующих мест:
Установка и настройка PHP
Рекомендуется использовать небезопасную сборку PHP с IIS FastCGI.Сборка PHP без поддержки потоков обеспечивает значительный прирост производительности по сравнению со стандартной сборкой, поскольку не выполняет никаких проверок безопасности потоков, в которых нет необходимости, поскольку FastCGI обеспечивает однопоточную среду выполнения.
Для установки PHP
Загрузите последний небезопасный zip-пакет с двоичными файлами PHP: http://www.php.net/downloads.php.
Распакуйте файлы в каталог по вашему выбору (например,
C: \ PHP
). Переименуйте файл php.ini-рекомендуемый файл в php.ini.Откройте файл php.ini. Раскомментируйте и измените настройки следующим образом:
Установить fastcgi.impersonate = 1 . FastCGI под IIS поддерживает возможность олицетворять токены безопасности вызывающего клиента. Это позволяет IIS определять контекст безопасности, в котором выполняется запрос.
Установить cgi.fix_pathinfo = 1 . cgi.fix_pathinfo обеспечивает * реальную * поддержку PATH_INFO / PATH_TRANSLATED для CGI.Ранее поведение PHP заключалось в установке PATH_TRANSLATED в SCRIPT_FILENAME и не определять PATH_INFO. Для получения дополнительной информации о PATH_INFO см. Спецификации cgi. Установка этого значения в 1 заставит PHP CGI исправить свои пути в соответствии со спецификациями.
Установить cgi.force_redirect = 0.
Установите open_basedir так, чтобы он указывал на папку или сетевой путь, где находится содержимое веб-сайтов.
Установите extension_dir так, чтобы он указывал на место, где расположены расширения PHP.Обычно для PHP 5.2.X значение устанавливается как extension_dir = «./ext»
Включите необходимое расширение PHP, не комментируя соответствующие строки, например:
extension = php_mssql.dll
extension = php_mysql.dll
Откройте командную строку и выполните следующую команду, чтобы убедиться, что PHP установлен успешно:
[! Code-consoleMain]
Если PHP установлен правильно и все его зависимости доступны на машине, эта команда выведет информацию о текущей конфигурации PHP.
Настроить IIS для обработки запросов PHP
Чтобы IIS мог размещать приложения PHP, необходимо добавить отображение обработчика, которое сообщает IIS о необходимости передавать все специфичные для PHP запросы в инфраструктуру приложения PHP с использованием протокола FastCGI.
Настроить IIS для обработки запросов PHP с помощью диспетчера IIS
Откройте диспетчер IIS. На уровне сервера дважды щелкните Сопоставления обработчиков .
На панели Действия щелкните Добавить сопоставление модулей .В диалоговом окне Добавить сопоставление модулей укажите следующие параметры конфигурации:
- Путь запроса: * .php
- Модуль: FastCgiModule
- Исполняемый файл: «C: [Путь к вашей установке PHP] \ php-cgi.exe»
- Имя: PHP через FastCGI
Щелкните ОК .
В диалоговом окне подтверждения Добавить сопоставление модулей , которое спрашивает, хотите ли вы создать приложение FastCGI для этого исполняемого файла, нажмите Да .
Проверьте правильность работы сопоставления обработчиков, создав файл phpinfo.php в папке
C: \ inetpub \ wwwroot
, который содержит следующий код:[! Code-xmlMain]
Откройте браузер и перейдите по адресу
http: //localhost/phpinfo.php
. Если все было настроено правильно, вы увидите стандартную информационную страницу PHP.[! ПРИМЕЧАНИЕ]
Если вы не видите FastCgiModule в списке Modules: , модуль либо не зарегистрирован, либо не включен.Чтобы проверить, зарегистрирован ли модуль FastCGI, откройте файл конфигурации IIS, расположенный по адресу% windir% \ windows \ system32 \ config \ applicationHost.config
, и убедитесь, что в разделе[! Code-xmlMain]
В том же файле также проверьте, что модуль FastCGI добавлен в раздел
[! Code-xmlMain]
Настроить IIS для обработки запросов PHP с помощью командной строки
Вы также можете выполнить описанные выше действия с помощью инструмента командной строки A ppCmd .
Создайте пул процессов приложения FastCGI, выполнив следующую команду:
[! Code-consoleMain]
Создайте отображение обработчика, выполнив следующую команду:
[! Code-consoleMain]
[! ПРИМЕЧАНИЕ]
Если вы используете PHP версии 4.X, вы можете использовать php.exe вместо php-cgi.exe.
Рекомендации по настройке FastCGI и PHP
Этот загружаемый файл содержит краткую презентацию передовых методов размещения PHP в среде общего хостинга.
Изоляция безопасности для веб-сайтов PHP
Рекомендация по изоляции веб-сайтов PHP в среде общего хостинга согласуется со всеми общими рекомендациями по изоляции безопасности для IIS. В частности, рекомендуется:
- Используйте один пул приложений на веб-сайт
- Использование выделенной учетной записи пользователя в качестве удостоверения для пула приложений
- Настройте анонимный идентификатор пользователя для использования идентификатора пула приложений
- Убедитесь, что олицетворение FastCGI включено в файле php.ini файл (fastcgi.impersonate = 1)
Дополнительные сведения о изоляции безопасности в среде общего хостинга см. В разделе Обеспечение изоляции безопасности для веб-сайтов.
Поведение повторного использования процессов PHP
Убедитесь, что FastCGI всегда перезапускает процессы php-cgi.exe до того, как сработает собственный перезапуск PHP. Поведение перезапуска процесса FastCGI управляется свойством конфигурации instanceMaxRequests . Это свойство указывает, сколько запросов будет обработано процессом FastCGI перед перезапуском.PHP также имеет аналогичную функцию повторного использования процессов, которая контролируется переменной среды PHP_FCGI_MAX_REQUESTS . Установив для instanceMaxRequests значение меньше или равное PHP_FCGI_MAX_REQUESTS , вы можете гарантировать, что собственная логика перезапуска процесса PHP никогда не сработает.
Параметры FastCGI можно настроить либо с помощью диспетчера IIS, либо с помощью инструмента командной строки A ppCmd .
Настройте параметры повторного использования FastCGI с помощью диспетчера IIS
Убедитесь, что на вашем сервере установлен пакет администрирования для IIS.Откройте диспетчер IIS. На уровне сервера дважды щелкните FastCGI Settings .
Выберите приложение FastCGI, которое вы хотите настроить. На панели Действия щелкните Изменить .
В диалоговом окне Edit FastCGI Application установите InstanceMaxRequests на 10000 . Рядом с параметром EnvironmentVariables нажмите кнопку Обзор (… ) кнопку.
В диалоговом окне Редактор коллекции переменных среды добавьте переменную среды PHP_FCGI_MAX_REQUESTS и установите для нее значение 10000 .
[! ПРИМЕЧАНИЕ]
Если вы не настроите эти параметры, будут использоваться следующие параметры по умолчанию: instanceMaxRequests = 200, PHP_FCGI_MAX_REQUESTS = 500 (в большинстве сборок PHP).
Настройте параметры повторного использования FastCGI с помощью командной строки
Настройте режим повторного использования FastCGI и PHP с помощью AppCmd , выполнив следующие команды:
[! Code-consoleMain]
Версии PHP
Многие приложения PHP полагаются на функции или возможности, которые доступны только в определенных версиях PHP.Если эти типы приложений должны размещаться на одном сервере, разные версии PHP должны быть включены и работать параллельно. Обработчик IIS FastCGI полностью поддерживает запуск нескольких версий PHP на одном веб-сервере.
Например, предположим, что на вашем веб-сервере вы планируете поддерживать PHP 4.4.8, PHP 5.2.1 и PHP 5.2.5 без поддержки потоков. Чтобы включить эту конфигурацию, вы должны поместить соответствующие двоичные файлы PHP в отдельные папки в файловой системе (например, C: \ php448 \
, C: \ php521 \
и C: \ php525nts
), а затем создать пулы процессов приложений FastCGI. для каждой версии:
[! Code-consoleMain]
Если у вас есть три веб-сайта (site1, site2, site3), и каждый сайт должен использовать другую версию PHP, теперь вы можете определить сопоставления обработчиков на каждом из этих сайтов, чтобы ссылаться на соответствующий пул процессов приложения FastCGI.
[! ПРИМЕЧАНИЕ]
Каждый пул процессов FastCGI уникально идентифицируется комбинацией свойств fullPath и arguments.
[! Code-consoleMain]
Рекомендации по безопасности PHP
Следующие настройки можно использовать для повышения безопасности установки PHP. Чтобы внести рекомендуемые изменения, найдите и откройте файл php.ini и отредактируйте параметры конфигурации, как описано ниже:
Настройка | Описание |
---|---|
allow_url_fopen = Выключено allow_url_include = Выключено | Отключите удаленные URL-адреса для функций обработки файлов, которые могут вызвать уязвимости, связанные с внедрением кода. |
register_globals = Выкл. | Отключить register_globals. |
open_basedir = «c: \ inetpub» | Ограничить, где процессы PHP могут читать и писать в файловой системе. |
safe_mode = Выкл. Safe_mode_gid = Выкл. | Отключить безопасный режим. |
max_execution_time = 30 max_input_time = 60 | Ограничить время выполнения скрипта. |
memory_limit = 16M upload_max_filesize = 2M post_max_size = 8M max_input_nesting_levels = 64 | Ограничьте использование памяти и размер файлов. |
display_errors = Off log_errors = On error_log = «C: \ path \ of \ your \ choice» | Настройте сообщения об ошибках и ведение журнала. |
fastcgi.logging = 0 | Модуль IIS FastCGI не выполнит запрос, если PHP отправит какие-либо данные на stderr с использованием протокола FastCGI. Отключите ведение журнала FastCGI, чтобы PHP не отправлял информацию об ошибках через stderr и не генерировал 500 кодов ответа для клиента. |
expose_php = Выкл. | Скрыть наличие PHP. |
Включение конфигурации PHP для каждого сайта
В этом разделе описан рекомендуемый способ включения конфигурации PHP для каждого сайта. Эта рекомендация была обнаружена и подтверждена Radney Jasmin совместно с хостинг-провайдером GoDaddy.com, который теперь предлагает PHP-хостинг на Windows Server 2008 с использованием FastCGI.
Пулы процессов PHP для каждой площадки
Когда каждый веб-сайт имеет свой собственный пул приложений, что рекомендуется для IIS, можно связать выделенный пул процессов FastCGI с каждым веб-сайтом.Пул процессов FastCGI однозначно идентифицируется комбинацией атрибутов fullPath и аргументов . Если вам нужно создать несколько пулов процессов FastCGI для одного и того же исполняемого файла процесса, такого как php-cgi.exe, вы можете использовать атрибут arguments , чтобы различать определения пула процессов. С процессами php-cgi.exe вы также можете использовать переключатель командной строки «-d» для определения записи INI для процесса PHP. Вы можете использовать этот переключатель, чтобы установить параметр PHP, который делает строку аргументов уникальной.
Например, если есть два веб-сайта «website1» и «website2», которые должны иметь свой собственный набор настроек PHP, пулы процессов FastCGI могут быть определены следующим образом:
[! Code-xmlMain]
В этом примере параметр PHP open_basedir используется для различения определений пула процессов. Этот параметр также требует, чтобы исполняемый файл PHP для каждого пула процессов мог выполнять файловые операции только в корневой папке соответствующего веб-сайта.
Тогда website1 может иметь отображение обработчика PHP следующим образом:
[! Code-xmlMain]
и website2 могут иметь отображение обработчика PHP следующим образом:
[! Code-xmlMain]
Указание местоположения php.ini
При запуске процесса PHP он определяет расположение файла конфигурации php.ini с помощью различных настроек. Документация PHP предоставляет подробное описание процесса запуска PHP. Одно из мест, где процесс PHP ищет файл php.ini — это переменная среды PHPRC. Если процесс PHP находит файл php.ini по пути, указанному в этой переменной среды, он будет использовать его; в противном случае процесс PHP вернется к использованию местоположения по умолчанию для файла php.ini. Эта переменная среды может использоваться, чтобы разрешить клиентам хостинга использовать свои собственные версии файлов php.ini.
Например, если есть два веб-сайта «website1» и «website2», которые расположены по следующим путям к файлам: C: \ WebSites \ website1
и C: \ WebSites \ website2
, вы можете настроить php-cgi .Пулы процессов exe в разделе
файла applicationHost.config следующим образом:
[! Code-xmlMain]
Таким образом, website1 может иметь свою собственную версию файла php.ini, которая находится в C: \ WebSites \ website1
, а website2 может иметь свою собственную версию файла php.ini, которая находится в C: \ Сайты \ сайт2
. Эта конфигурация также гарантирует, что если файл php.ini не может быть найден в месте, указанном переменной среды PHPRC, то PHP будет использовать php по умолчанию.ini, который находится в той же папке, где находится php-cgi.exe.
Обеспечивает функцию перезаписи URL-адресов для приложений PHP
Большинство популярных приложений PHP полагаются на функцию перезаписи URL-адресов на веб-серверах, чтобы обеспечить удобные для пользователя и поисковые системы URL-адреса. IIS предоставляют возможности перезаписи URL-адресов с помощью модуля перезаписи URL-адресов.
Дополнительные сведения об использовании модуля перезаписи URL-адресов см. В следующих статьях:
Связанные ресурсы
Для получения дополнительных сведений о размещении приложений PHP в IIS см. Следующие ресурсы:
Как установить PHP с расширением FastCGI на сервере IIS 7 / IIS 8
FastCGI — это обычный протокол, который позволяет веб-серверу взаимодействовать с исполняемыми файлами CGI структуры приложения.Самые последние версии PHP 4.4.x и PHP 5.x для Windows полностью поддерживают это расширение FastCGI.
В этой статье приводится пошаговое описание того, как установить PHP на IIS7 или IIS8 через интерфейс FastCGI. Вы узнаете, как установить FastCGI и настроить его для работы с PHP. Следуйте этим советам и шагам, чтобы установить расширение FastCGI для IIS 7 / IIS 8 Windows Server:
Шаг 1. Интегрируйте службы ролей CGI
Чтобы сделать Для этого перейдите к Диспетчеру сервера, нажмите на опцию с надписью « Roles» , а затем нажмите на Add Role Services .
Это действие немедленно активирует сервисы CGI и FastCGI: Ниже приведен графический шаг, который поможет вам.
Шаг 2: Включите функции CGI (для Windows Vista SP1 и Windows 7)
Для этого перейдите в Панель управления вашей системы и щелкните подменю «Программы и компоненты». Выберите параметр «Включить / выключить функции Windows». Обратите внимание, что это позволит использовать службы FastCGI, а также CGI.
Шаг 3: Загрузите PHP и установите его в вашей системе
По завершении настройки функций загрузите самую последнюю версию PHP 5.6 Семья. При загрузке убедитесь, что вы выбрали ZIP-файл с тегом VC11 x86 Non Thread Safe.
Шаг 4: Извлеките содержимое файлов PHP
После загрузки распакуйте содержимое файлов PHP на любой из ваших серверов. Затем удвойте файлы php.ini-production
, сделав еще одну копию с именем php.ini
. Затем откройте этот второй файл, php.ini
и заполните параметры ниже, настроив его. Уже есть каждый параметр, все, что вам нужно сделать, это найти его, удалить отступы («») и, наконец, убедиться, что значения изменены.Обратите внимание, что показанных параметров в файле не более одной ( php.ini
).
Предел памяти = 256 МБ максимальный размер сообщения = 128M extensiondir = "C: PHPext" upload_tmp_dir = "C: PHPupload" upload_max_filesize = 128 МБ max_execution_time = 600 max_input_time = 600 max_input_vars = 2000 cgi.force_redirect = 0 cgi.fix_pathinfo = 1 fastcgi.impersonate = 1 extension = php_curl.dll extension = php_mbstring.dll расширение = php_exif.dll extension = php_gd2.dll extension = php_ldap.dll extension = php_mysqli.dll session.save_path = "C: сеанс PHP" session.use_cookies = 1
Шаг 5: Загрузите расширения
При загрузке расширений убедитесь, что они соответствуют порядку, указанному в выделенном поле выше. Также обратите внимание, что "php_mbstring.dll"
должен быть загружен перед "php_exif.dll"
. Следуйте этому порядку при загрузке расширений:
i: Создать подкаталоги
Создайте два подкаталога с именами « session » и « upload » в каталоге C: PHP.Использовать эти имена не обязательно, просто убедитесь, что они совпадают с сеансом. save_path и upload_tmp_dir
параметры, которые вы настраиваете внутри php.ini
.
ii: Настройка даты / часового пояса
Убедитесь, что вы установили в php.ini параметр date.timezone . Ниже приведен небольшой пример. Убедитесь, что выбранный вами город находится либо в городе, в котором вы остановились, либо в том же часовом поясе, что и ваш. Полный список возможных значений date.timezone на PHP.На веб-сайтах net отображается список всех возможных дат / часовых поясов.
date.timezone = "America / New_York"
iii: Сохраните файл
Если вы уверены, что сделали это, сохраните файл «.ini».
Шаг 6: Запустите командную строку PHP
Чтобы проверить, была ли установка PHP успешной, затем немедленно запустите командную строку
C: PHP> php -i
Если PHP не запускается
Компилятор для Visual Studio 2008 используется для компиляции версий VC9, и их стабильность и производительность были улучшены.Вам необходимо установить Microsoft 2008 C ++ Runtime (x64) или Microsoft 2008 C ++ Runtime (x86) для версий VC9. В ситуациях, когда PHP не запускается, вам может потребоваться загрузка старых версий Windows с перечисленными выше расширениями.
Шаг 7: Настройка IIS 7 для обработки запросов PHP
Добавление сопоставления обработчиков, которое сообщает IIS о необходимости передачи через протокол FastCGI, конкретные запросы к Framework приложения PHP жизненно важны для размещения приложений PHP в IIS 7.Для этого можно использовать диспетчер IIS или командную строку.
Шаг 8: Настройте IIS 7 для обработки запросов PHP через диспетчер IIS
Чтобы использовать диспетчер IIS, внимательно следуйте приведенным ниже инструкциям.
I: Открыть сопоставления обработчиков
Войдите в диспетчер IIS на уровне сервера, где вы увидите меню, щелкните подменю Сопоставления обработчиков.
II: Установите конфигурацию
Выберите действие с меткой Добавить отображение модуля и определите настройки для конфигураций, как показано на изображении ниже.
Это формат заполнения данных:
Путь запроса: * .php
Модуль: FastCgiModule
Исполняемый файл: «C: PHPphp-cgi.exe»
Имя: PHP через FastCGI
Обратите внимание, что если вы не видите в области модулей раскрывающееся меню «FastCgiModule»
, это означает, что модуль не был включен или зарегистрирован. Чтобы убедиться, что модуль FastCGI зарегистрирован, откройте файл конфигурации IIS % WINDIR% windowssystem32configapplicationHost.config
и убедитесь, что строка также находится в разделе
.
В этом конкретном файле убедитесь, что в раздел
Затем ответьте, да, на всплывающее меню, как указано ниже:
Шаг 9: Установите конфигурацию FastCGI для оптимальной производительности
Обязательно установите на своем server, пакет администрирования IIS 7, потому что в противном случае вы не сможете увидеть параметр настроек для настройки FastCGI.
Шаг 10. Настройка документа по умолчанию в IIS
Index.php — это файл, который по умолчанию используется большинством приложений PHP в качестве документов приложений. Таким образом, вы должны обработать файл как страницу содержимого по умолчанию, настроив IIS, выполнив следующие действия.
I: откройте документ по умолчанию
Сначала на уровне сервера щелкните «Диспетчер IIS» и выберите документ по умолчанию. Изображение ниже даст вам хорошую подсказку.
II: Заполните указатель.php ”в пространстве
При открытии выберите добавить и затем заполните ссылку index.php в поле, как показано ниже.
Шаг 11: Тестирование PHP CGI
После того, как вы установили расширение FastCGI, зарегистрировали PHP CGI и настроили его, вы сможете легко использовать KMP. Затем, чтобы все внесенные вами изменения вступили в силу, попробуйте перезапустить сервер IIS.
Заключение:
Мы рассмотрели все, что вам нужно для установки расширения FastCGI.К этому моменту вы должны с комфортом выполнять операции самостоятельно, если тщательно следовали инструкциям. Однако, если у вас по-прежнему возникают проблемы, мы готовы помочь!
Была ли эта статья полезной?
Поделитесь с нами своим мнением Отправить
Руководство по
Ultimate: Отладка PHP в IIS с помощью кода Visual Studio с помощью XDebug | автор: Jae Ahn
Существует множество руководств по настройке XDebug в Visual Studio Code (VSCode) для отладки PHP.Первоначально я все еще испытывал трудности с его настройкой, хотя следовал многим различным руководствам.
После того, как XDebug заработал должным образом, я подумал, что было бы неплохо записать различные подходы к настройке / устранению неполадок для личных целей документации, а также для тех, кому это руководство может оказаться полезным.
Вам понадобится веб-сервер, чтобы правильно настроить php в браузере. Многие ресурсы использовали Apache (WAMP, MAMP и т. Д.), Но я собираюсь использовать здесь IIS. Установка IIS может немного отличаться в зависимости от версии Windows, но это не должно быть проблемой.Эта установка основана на версии Windows 10.
Во-первых, нам нужно получить доступ к «Включение или отключение функций Windows». Используйте «Windows Key + R», чтобы вызвать утилиту «Выполнить», и введите «appwiz.cpl» для доступа к «Программы и компоненты». Вы можете просто выполнить поиск по запросу «Включить или отключить функции Windows», чтобы получить прямой доступ.
Как только вы нажмете на него, откроется другое окно со всеми функциями. Вы можете просто щелкнуть «Инструменты веб-управления» и «Веб-службы».
Обратите внимание, что некоторые службы можно предварительно выбрать, если вы установите флажок и просто оставите их выбранными.
Убедитесь, что выбраны два следующих элемента.
- Internet Information Services — Инструменты веб-управления — Консоль управления IIS
- World Wide Web Services — Функции разработки приложений — CGI
Теперь вы открываете любой браузер, который вам нравится, набираете «localhost» и нажимаете «Enter». Вы просто правильно настроили IIS, если видите большие IIS или Internet Information Services, окруженные приветствиями на разных языках.
По умолчанию каталог веб-сайта находится в «C: \ inetput \ wwwroot».
В этом разделе просто выполните « Загрузите и установите PHP вручную » из https://docs.microsoft.com/en-us/iis/application-frameworks/scenario-build-a-php-website-on -iis / configuring-step-1-install-iis-and-php # 13-download-and-install-php-вручную ».
Если при доступе к phpinfo.php вы получаете вывод, как показано ниже, значит, вы правильно настроили php.
Вы можете установить расширения XDebug с «https://xdebug.org/download.php». В моем случае у меня работал «PHP 7.3 VC15 (64 бит)».Не стесняйтесь скачать другой и попробовать, если он вам не подходит.
Поместите файл расширения (файл dll) в папку «C: \ PHP \ ext».
Теперь нам нужно настроить PHP для работы с этим расширением. Найдите папку PHP и найдите файл с именем «php.ini-production» или «php.ini-development».
Вы можете взять любой из них, сделать копию и / или переименовать его в «php.ini» в той же папке.
Откройте этот ini-файл с помощью блокнота или любого другого редактора и прокрутите его до конца.
Вставьте следующую конфигурацию в php.ini.
[XDebug]
zend_extension = "C: \ php \ ext \ php_xdebug-2.7.0RC1-7.3-vc15-nts-x86_64.dll"
xdebug.remote_enable = 1
xdebug.remote_autostart_bug = 1 9000.host4.
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
Обязательно обновите zend_extension, чтобы оно соответствовало имени файла и местоположению вашего расширения XDebug.
XDebug по умолчанию использует порт 9000. Вам нужно изменить здесь и в VSCode, если вы хотите это изменить.Этот порт нельзя использовать, иначе он не будет работать.
ДОЛЖНА быть следующая строка. Я заметил, что в некоторых руководствах эта строка не добавлена. Отладка не будет работать, если эта строка будет опущена, хотя XDebug установлен правильно.
xdebug.remote_autostart = 1
Вы ДОЛЖНЫ перезапустить IIS, чтобы применить любые изменения в php.ini.
Теперь снова откройте phpinfo.php и найдите две части.
Конфигурационный файл должен быть настроенным и размещенным вами php.ini, и должна быть подчеркнута строка о версии XDebug и авторских правах.
Если вы не видите строку о XDebug, php не распознал расширение XDebug.
Многие ресурсы ссылаются на «https://xdebug.org/wizard.php» для устранения неполадок. Эта страница проанализирует ваш вывод phpinfo и предоставит текущие настройки среды и инструкции по устранению проблемы.
Лично я считаю, что это совершенно бесполезно, и я считаю, что это лучший метод устранения неполадок.
Откройте командную строку и найдите папку php. Затем введите «php -v».
Это даст вам представление о том, правильно ли загружено расширение, и вы можете получить другое сообщение в зависимости от вашей конфигурации.
Это когда он правильно установлен и загружен.
Когда не работает:
Здесь не удалось загрузить расширение. В данном случае это неправильное имя файла. То же сообщение об ошибке появится, если расширение просто несовместимо с вашей версией php. Ну, по крайней мере, мы знаем, что проблема либо в самом расширении, либо в пути к файлу расширения с этим сообщением.
Возможно, все ваши настройки верны и настроены правильно. Тогда, возможно, пора проверить, используется ли уже порт 9000 или выбранный вами порт. Давайте откроем командную строку.
Введите «netstat -aon».
Вы получите довольно много продукции. Если вы получаете слишком много и затрудняетесь найти порт. Попробуй это.
Введите «netstat -aon | findstr 9000». Таким образом, он отфильтровывает по 9000.
Крайний правый столбец — это идентификатор процесса (PID), и вы можете узнать, какая программа имеет какой-либо PID из диспетчера задач.В моем случае 16312 — это VSCode, и это нормально.
Если порт используется, измените конфигурацию номера порта в php.ini и запустите.json в VSCode. Не забудьте перезапустить IIS, если вы измените php.ini.
У вас должно быть все настроено, если вы зашли так далеко, и все, что вам осталось, это заставить VSCode работать с XDebug.
Откройте VSCode и установите «PHP Debug» из расширений.
Перейдите в «Файл» — «Настройки» — «Настройки». Затем перейдите в «Расширения» — PHP. Затем нажмите «Изменить в настройках».json ’.
В разделе «Настройки пользователя» (на правой панели) вставьте следующее:
«php.validate.executablePath»: «C: \\ php \ php.exe», «php.validate.enable»: true , "php.validate.run": "onType"
Обратите внимание, что путь к файлу имеет двойную косую черту. Убедитесь, что в конце последней строки нет запятой, если под ней нет других настроек.
Теперь перейдите в раздел «Отладка», щелкните значок настройки и выберите «PHP».
Файл «launch.json» открыт, но вы можете просто закрыть его, если не хотите изменить настройки, такие как номер порта.
Вы в основном готовы начать отладку после того, как «Нет конфигураций» заменено на «Слушать XDebug».
Поместите несколько точек останова в файл php, который вы хотите отладить, нажмите зеленую кнопку воспроизведения, чтобы начать, и откройте файл php из браузера.
Надеюсь, это поможет и удачной отладки!
PHP: Microsoft IIS 5.1 и IIS 6.0
Microsoft IIS 5.1 и IIS 6.0
В этом разделе содержатся инструкции по настройке информации в Интернете вручную.
Сервисы (IIS) 5.1 и IIS 6.0 для работы с PHP в Microsoft Windows XP и Windows
Server 2003. Инструкции по настройке IIS 7.0 и более поздних версий в Windows.
Vista, Windows Server 2008, Windows 7 и Windows Server 2008 R2 относятся к
Microsoft IIS 7.0 и новее.
Настройка IIS для обработки запросов PHP
Загрузите и установите PHP в соответствии с инструкциями, описанными в
шаги ручной установки
Примечание :
При использовании IIS рекомендуется небезопасная сборка PHP.Не потокобезопасный
сборки доступны по адресу »PHP для Windows:
Выпуски бинарных файлов и исходных текстов.
Настройте параметры CGI и FastCGI в файле php.ini , как показано ниже:
Пример №1 Настройки CGI и FastCGI в php.ini
fastcgi.impersonate = 1 fastcgi.logging = 0 cgi.fix_pathinfo = 1 cgi.force_redirect = 0
Загрузите и установите »Microsoft FastCGI Extension для IIS 5.1 и 6.0.
Расширение доступно для 32-битных и 64-битных платформ — выберите правильный пакет загрузки для вашей платформы.
Настройте расширение FastCGI для обработки специфичных для PHP запросов, выполнив команду, показанную ниже.
Замените значение параметра «-path» на абсолютный путь к файлу
php-cgi.exe файл.
Пример № 2 Настройка расширения FastCGI для обработки запросов PHP
cscript% windir% \ system32 \ inetsrv \ fcgiconfig.-расширение: php -path: "C: \ PHP \ php-cgi.exe"
Эта команда создаст сопоставление сценария IIS для расширения файла * .php, что приведет к появлению всех URL-адресов.
это заканчивается тем, что .php обрабатывается расширением FastCGI. Кроме того, он настроит расширение FastCGI на
используйте исполняемый файл php-cgi.exe для обработки запросов PHP.
Примечание :
На этом необходимые шаги по установке и настройке завершены.Остальные
приведенные ниже инструкции не являются обязательными, но настоятельно рекомендуется для достижения оптимальной функциональности
и производительность PHP на IIS.
Выдача себя за другое лицо и доступ к файловой системе
При использовании IIS рекомендуется включить олицетворение FastCGI в PHP. Этот
управляется директивой fastcgi.impersonate в файле php.ini . Когда
олицетворение включено, PHP будет выполнять все операции файловой системы на
от имени учетной записи пользователя, которая была определена с помощью проверки подлинности IIS.Этот
гарантирует, что даже если один и тот же процесс PHP используется в разных веб-службах IIS
сайтов, сценарии PHP на этих веб-сайтах не смогут получить доступ к каждому
файлы других пользователей, если для аутентификации IIS используются разные учетные записи пользователей.
на каждом веб-сайте.
Например, в IIS 5.1 и IIS 6.0 в конфигурации по умолчанию включена анонимная проверка подлинности.
со встроенной учетной записью пользователя IUSR_
чтобы IIS выполнял сценарии PHP, необходимо предоставить учетную запись IUSR_
разрешение на чтение этих сценариев.Если приложениям PHP необходимо выполнять операции записи на определенных
файлы или записывать файлы в некоторые папки, тогда учетная запись IUSR_
Чтобы определить, какая учетная запись пользователя используется для анонимной проверки подлинности IIS, выполните следующие действия:
В меню «Пуск» Windows выберите «Выполнить:», введите «inetmgr» и нажмите «ОК»;
Разверните список веб-сайтов под узлом «Веб-сайты» в древовидном представлении, щелкните правой кнопкой мыши веб-сайт.
сайт, который используется, и выберите «Свойства»;Щелкните вкладку «Безопасность каталога»;
Обратите внимание на поле «Имя пользователя:» в диалоговом окне «Методы аутентификации».
Чтобы изменить настройки разрешений для файлов и папок, используйте пользовательский интерфейс Windows Explorer.
или команду icacls .
Пример № 3 Настройка прав доступа к файлам
icacls C: \ inetpub \ wwwroot \ upload / grant IUSR: (OI) (CI) (M)
Установить
index.php как документ по умолчанию в IIS
Документы IIS по умолчанию используются для HTTP-запросов, в которых не указано имя документа. С приложениями PHP
index.php обычно действует как документ по умолчанию. Чтобы добавить index.php в список
Документы IIS по умолчанию, выполните следующие действия:
В меню «Пуск» Windows выберите «Выполнить:», введите «inetmgr» и нажмите «ОК»;
Щелкните правой кнопкой мыши узел «Веб-сайты» в древовидной структуре и выберите «Свойства»;
Щелкните вкладку «Документы»;
Щелкните «Добавить»… «и введите» index.php «в поле» Страница содержимого по умолчанию: «.
Конфигурация FastCGI и PHP Recycling
Настройте параметры расширения IIS FastCGI для перезапуска процессов PHP с помощью команд, показанных ниже.
Параметр FastCGI instanceMaxRequests контролирует, сколько запросов будет обработано одним
php-cgi.exe перед тем, как расширение FastCGI завершит его работу. Переменная среды PHP
PHP_FCGI_MAX_REQUESTS контролирует количество запросов на один php-cgi.-EnvironmentVars: PHP_FCGI_MAX_REQUESTS: 10000
Настройка параметров тайм-аута FastCGI
Увеличьте настройки тайм-аута для расширения FastCGI, если есть приложения, которые имеют долго выполняющиеся скрипты PHP.
Два параметра, управляющие тайм-аутом: ActivityTimeout и RequestTimeout .
См. »Настройка расширения FastCGI для IIS 6.0 для получения дополнительной информации.
информация об этих настройках.
Пример # 5 Настройка параметров тайм-аута FastCGI
cscript% windir% \ system32 \ inetsrv \ fcgiconfig.-RequestTimeout: 90
Изменение расположения файла
php.ini
PHP ищет файл php.ini в
несколько мест, и это
можно изменить расположение по умолчанию php.ini
файл с помощью переменной среды PHPRC . Чтобы проинструктировать PHP
чтобы загрузить файл конфигурации из произвольного расположения, выполните команду, показанную ниже.
Абсолютный путь к каталогу с php.-EnvironmentVars: PHPRC: «C: \ Some \ Directory \»
Внутренняя ошибка сервера PHP 500 в IIS
Внутренняя ошибка сервера 500 четко указывает на то, что что-то пошло не так во время отображения страницы PHP.
По умолчанию веб-серверы, такие как IIS, возвращают только общие сообщения об ошибках на веб-сайтах. Часто это приводит к маскированию реальной причины ошибок IIS PHP, таких как внутренняя ошибка сервера 500.
Вот почему мы часто получаем запросы от владельцев серверов Windows, чтобы выяснить причину ошибок веб-сайта PHP и исправить их в рамках наших служб управления сервером.
Сегодня мы рассмотрим, как инженеры Bobcares отслеживают настоящую причину и исправляют внутреннюю ошибку сервера php 500 в IIS.
Что вызывает внутреннюю ошибку сервера PHP 500 в IIS
По сути, 500 Internal Server Error — это способ сказать веб-сервером IIS: « Что-то пошло не так, когда я пытался отобразить страницу. Не уверен что. ”
Теперь пора выяснить точные причины 500 ошибок.
1.Ошибка разрешений
Исходя из нашего опыта управления серверами, наши специалисты по Windows часто видят внутренние ошибки сервера PHP 500 из-за неправильных разрешений и прав собственности на файлы веб-сайтов. На серверах Windows каждый файл и каждая папка имеют собственный набор разрешений. Опять же, некоторые разрешения наследуются и от родительских папок. И, когда двоичный файл PHP не имеет достаточных разрешений для выполнения сценариев, это может привести к внутренней ошибке сервера 500.
Аналогичным образом, владение файлами также создает проблемы.В Windows определенные пользователи, такие как Пользователь IIS, Пользователь IIS WP, и т. Д., Должны иметь доступ к папкам и файлам веб-сайта. Например, учетная запись IUSR должна иметь права на изменение скриптов php. И, когда есть проблемы с разрешением, веб-сайт показывает ошибки PHP.
2. Неверные настройки PHP
Еще одна причина внутренней ошибки сервера PHP — плохие настройки PHP. Настройки PHP указаны в файле конфигурации по адресу C: \ PHP \ PHP.ini. Двоичный код PHP принимает значения из этого файла при выполнении скриптов.
Классическим примером будут настройки тайм-аута PHP. Когда скрипты PHP веб-сайта должны получать результаты из внешних ресурсов, значения тайм-аута PHP часто вызывают проблемы. Большинство системных администраторов устанавливают значения тайм-аута в PHP, чтобы избежать злоупотребления ресурсами сервера. И если сценарий PHP выполняется дольше пороговых значений, это в конечном итоге приводит к ошибке 500.
3. Ошибки модуля PHP
Очень немногие ошибки 500 возникают, когда модуль PHP на сервере как таковой также оказывается поврежденным.В результате это приводит к сбою обработки скриптов PHP.
К счастью, когда веб-сайт сообщает об ошибке 500 из-за сбоев модуля, IIS часто показывает более конкретные сообщения об ошибках, например:
Ошибка модуля 500.0 или ISAPI.
500.21 Модуль не распознан.
Как мы исправили внутреннюю ошибку сервера PHP 500 в IIS
Для исправления внутренней ошибки сервера PHP 500 в IIS требуется ряд шагов. Давайте теперь посмотрим, как наши специализированные инженеры исправили это для одного из наших клиентов и заставили работать скрипты PHP.
Клиент сообщил о внутренней ошибке сервера 500 на веб-сайте WordPress, работающем в IIS.
1. Включение отображения ошибок
Хотя ошибка правильно предполагала, что PHP вызвала код ошибки 500, она не предоставляла специфической для приложения информации о том, что вызвало ошибку. Поэтому первым шагом исследования было включение опции отображения ошибок. Для этого наши специализированные инженеры выполнили следующие шаги.
- С помощью проводника Windows® перейдите в папку C: \ PHP и откройте файл Php.ini в каталоге установки PHP.
- Отредактируйте и установите директиву display_errors = On.
- Сохраните файл.
- Сбросьте IIS с помощью команды iisreset.exe
После включения ошибок мы перезагрузили PHP, и он показал ошибку синтаксического анализа PHP:
Ошибка синтаксического анализа: ошибка синтаксического анализа в C: \ inetpub \ users \ xxx \ httpdocs \ mysite \ error.php в строке 3 >>
Часто в настройках браузера отображаются только понятные сообщения об ошибках. В таких случаях мы рекомендуем клиенту выключить его.Например, в Internet Explorer перейдите в Инструменты, Свойства обозревателя, вкладку «Дополнительно» и снимите флажок Показывать понятные сообщения об ошибках HTTP .
Таким образом, это была ошибка кодирования в скрипте PHP. Мы предложили заказчику доработать скрипт, и это устранило ошибку.
2. Локальный запуск PHP-скрипта
Еще один способ найти точную ошибку — запустить проблемный php-скрипт на сервере. Для этого наши инженеры службы поддержки подключаются к серверу через rdesktop и запускают скрипт php, используя файл php.exe двоичный. Это покажет, что библиотеки DLL имеют конфликты и вызывают ошибку 500. Мы исправляем эти конфликты и снова заставляем скрипт работать.
3. Исправление настроек PHP
В некоторых случаях нам необходимо исправить настройки PHP, чтобы решить проблему. Недавно, когда клиент сообщил о проблемах с его веб-сайтом, нам пришлось правильно установить директиву php open_basedir , чтобы устранить внутреннюю ошибку сервера 500.
Точно так же, когда сценарии PHP cgi показывают какое-то предупреждение, IIS7 по-прежнему отображает сообщение об ошибке HTTP 500.Хотя лучший метод — исправить сценарии PHP, часто изменение обработки ошибок по умолчанию для FastCGI в IIS7 на «IgnoreAndReturn200» также работает как временное исправление. Точные настройки будут выглядеть, как показано.
4. Исправление двоичного кода PHP
В некоторых редких случаях исправление может включать полную перестройку двоичного файла PHP на сервере. Это происходит в основном, когда программа PHP на сервере становится поврежденной. Однако в таких случаях наши специализированные инженеры всегда проверяют зависимость пакета и выполняют переустановку.Для серверов, специфичных для панели управления, мы устанавливаем соответствующий двоичный файл на сервере.
[Неработающие скрипты PHP вызывают большие проблемы? Наши специалисты по IIS приготовят для вас исправление.]
Заключение
Короче говоря, внутренняя ошибка сервера PHP 500 в IIS возникает в основном из-за таких причин, как ошибочные сценарии PHP, неправильные настройки сервера и многое другое.