Server php windows: PHP: Инструмент установки PHP на Windows

Настройка среды разработки PHP в Windows

В целях автоматической установки всех параметров настройки для механизма PHP, сервера HTTP Apache и сервера базы данных MySQL воспользуйтесь пакетом AMP. В данном учебном курсе приведены указания только для пакета XAMPP-Windows. Справочные сведения по пакету WAMP или другим пакетам приведены в разделе NetBeans XDebug Wiki.

Установка и настройка пакета XAMPP

В этом разделе приведено описание процедур загрузки, установки и настройки пакета XAMPP.

Предупреждение! НЕ используйте XAMPP 1.7.0. В этой версии имеются значительные проблемы с XDebug. Используйте версию 1.7.1 или выше, где эти неполадки устранены.

Начиная с XAMPP 1.7.2, XAMPP поставляется с PHP 5.3а не с PHP 5.2.x. IDE NetBeans для PHP версии 6.7.x не поддерживает новые функции PHP 5.3. IDE NetBeans для PHP 6.8, которая в настоящее время доступна как сборка разработки, полностью поддерживает PHP 5. 3. Также обратите внимание, что установка Xdebug различается для PHP 5.2.x и PHP 5.3.
  1. Загрузите пакет программы установки +XAMPP +. В состав XAMPP Lite не входит XDebug.

  2. По завершении загрузки запустите файл EXE .

В Microsoft Vista функция контроля учетных записей пользователей (UAC) блокирует обновление установщиком PHP настройки службы httpd Apache. На время установки XAMPP следует отключить UAC. Для получения дополнительных сведений обратитесь к разделу Поддержка Майкрософт.

  1. Можно установить сервер Apache и сервер базы данных MySQL как веб-службы. Если Apache Server и MySQL установлены как службы, то нет необходимости запускать их вручную с помощью «XAMP Control Panel». Следует учитывать, что установить и удалить эти службы можно с помощью панели управления XAMPP.

  2. При использовании самораспаковывающегося архива после его распаковки запустите файл setup-xampp.bat для настройки компонентов пакета. Программа установки XAMPP запускает этот файл автоматически.

  3. После настройки откройте панель управления XAMP. Эту панель можно открыть посредством запуска файла XAMPP_HOME/xampp-control.exe или с помощью значка панель управления XAMPP, автоматически размещаемого на рабочем столе. При открытии панели управления XAMPP следует учитывать, что модули, установленные как службы, уже выполняются.

*Предупреждение. *Иногда в Windows Vista не удается запустить файл xampp-control.exe . В этом случае можно запустить xampp-start.exe .

*Предупреждение. *Файл winmysqladmin.exe , запускаемый кнопкой «Admin» для MySQL, не функционирует. Отображается последовательность сообщений об ошибках, которая может быть остановлена только путем завершения процесса winmysqladmin вручную. Файл winmysqladmin.exe также невозможно запустить из командной строки. Обратитесь к странице http://bugs. xampp.org/view.php?id=71.

  1. Флажки «Svc» указывают на то, что модуль устанавливается как служба Windows и автоматически выполняется при запуске системы. Службы Windows устанавливаются и удаляются при установке и снятии флажка «Svc». При удалении службы Windows сам модуль не удаляется, однако необходимо запускать его вручную. Панель управления XAMPP включает в себя кнопки запуска и остановки модулей, а также открытия их консолей администратора.

Проверка установки XAMPP

  1. Запустите браузер и введите следующий URL-адрес: http://localhost . Откроется страница приветствия XAMPP:

  1. В целях обеспечения установки серверов Apache и MySQL в качестве служб системы перезапустите операционную систему, запустите браузер и повторно введите URL-адрес http://localhost . Откроется страница приветствия XAMPP. Обратите внимание на то, что в левом поле страницы приветствия XAMPP имеется меню, посредством которого можно проверить состояние компонентов XAMPP, запустить phpinfo() , а также воспользоваться другими важными функциями. При выполнении phpinfo() возвращается экран с информацией о настройке компонентов XAMPP.

Установка и включение отладчика XDebug

Для использования отладчика XDebug необходимо настроить стек PHP. Процесс отличается, если используется XAMPP 1.7.1, который включает в себя PHP 5.2.6, или XAMPP 1.7.2, который включает в себя PHP 5.3.

Многие пользователи испытывают трудности при настройке работы XDebug в своих системах. Справочные сведения приведены на вики-страницеи на форуме пользователей редактора NetBeans PHP Editor.

XDebug на XAMPP 1.7.1 (PHP 5.2)

Необходимо скачать XDebug, поместить файл .dll в базовый каталог php и настроить php.ini для поиска и использования данного файла.

  1. Загрузите самую последнюю, ориентированную на многопотоковое исполнение версию XDebug, совместимую с вашей версией PHP. Ссылки для загрузки перечислены в разделе «Releases». Скопируйте файл .dll в каталог XAMP_HOME/php/ext . ( XAMPP_HOME ссылается на каталог установки XAMPP или XAMPP Lite, например, C:\Program Files\xampp или C:\xampplite .)

  2. Найдите и откройте активный файл php.ini для XAMPP. По умолчанию он находится в каталоге XAMPP_HOME/apache/bin . Подтвердите, какой файл php.ini является активным, с помощью phpinfo() и поиска загруженного файла конфигурации.

  3. Поскольку оптимизатор Zend блокирует XDebug, оптимизатор требуется отключить. В активном файле php.ini найдите следующие строки и удалите или отметьте их как комментарии (для надежности выполните поиск и закомментируйте все свойства, связанные с Zend):

[Zend]
;zend_extension_ts = "C:\Program Files\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
;zend_extension_manager.optimizer_ts = "C:\Program Files\xampplite\php\zendOptimizer\lib\Optimizer"
;zend_optimizer. enable_loader = 0
;zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
  1. Для присоединения
    XDebug к механизму PHP раскомментируйте следующие строки в файлах php.ini (добавьте эти строки непосредственно в разделе [Zend]), если они отсутствуют. Добавлены дополнительные примечания.

[XDebug]; Only Zend OR (!) XDebug
zend_extension_ts = "./php/ext/php_xdebug<-version-number>.dll"
; XAMPP and XAMPP Lite 1.7.0 and later come with a bundled xdebug at <XAMPP_HOME>/php/ext/php_xdebug.dll, without a version number.xdebug.remote_enable=1xdebug.remote_host=127.0.0.1xdebug.remote_port=9000
; Port number must match debugger port number in NetBeans IDE Tools > Options > PHPxdebug.remote_handler=dbgpxdebug.profiler_enable=1xdebug.profiler_output_dir="<XAMPP_HOME>\tmp"

Установите свойство xdebug.remote_enable в значение 1, а не в значение «true» или другое значение.

Убедитесь в том, что указанные пути соответствуют расположению соответствующих файлов, как это определено при установке.
  1. Сохраните файл php.ini .

  2. Запустите панель управления XAMPP и перезапустите сервер Apache.
    Дополнительные сведения о настройке XDebug приведены на вики-странице и в документации по XDebug.

Xdebug на XAMPP 1.7.2 (PHP 5.3)

XAMPP 1.7.2 поставляется вместе с соответствующим файлом Xdebug .dll. Для начала использования необходимо только настроить php.ini . Обратите внимание, что все настройки Xdebug сопровождаются поясняющим текстом.

  1. Найдите и откройте файл XAMPP_HOME\php\php.ini для редактирования. В XAMPP 1.7.2 используется только файл php.ini

  2. Найдите строку zend_extension = "XAMPP_HOME\php\ext\php_xdebug.dll" и удалите символ комментария.

  3. Найдите строку xdebug.remote_host=localhost и удалите символ комментария. Измените значение параметра localhost на 127.0. 0.1 .

  4. Найдите строку xdebug.remote_enable = 0 и удалите символ комментария. Измените 0 на 1.

  5. Найдите строку xdebug.remote_handler = "dbgp" и удалите символ комментария.

  6. Найдите строку xdebug.remote_port = 9000 и удалите символ комментария.

  7. Сохраните файл php.ini .

  8. Запустите панель управления XAMPP и перезапустите сервер Apache.

Дополнительные сведения о настройке XDebug приведены на вики-странице и в документации по XDebug.

Инструкция по настройке и использованию PHP и IIS на Windows Server 2016

IIS (Internet Information Services) — это службы интернета для ОС Windows. Включают в себя веб-сервер, ftp-сервер и другие компоненты. Применительно к веб-серверу IIS используется как синоним, что немного неправильно, однако достаточно распространено. В данной инструкции Мы будем настраивать веб-сервер IIS с поддержкой php. Это будет делаться в два этапа — сначала установим IIS, потом поставим PHP.

Так как веб-сервер входит в службы IIS (Internet Information Services), необходимо предварительно установить роль “Веб-Сервер (IIS)”. Для этого нажмите комбинацию клавиш Win+R для запуска командной строки и введите туда servermanager.

Далее запустить мастер установки ролей и компонентов нажав кнопку “добавить роли и компоненты”.

Выйдет страница приветствия на которой можно просто нажать “вперед”, а также поставить галочку “Пропускать эту страницу по умолчанию”, если вы не хотите постоянно видеть эту страницу при запуске мастера установки ролей и компонентов.

Далее ОС уточнит что именно вы хотите сделать — просто добавить роли и компоненты или установить службы удаленного доступа. Выберем установку ролей и компонентов.

Далее спрашивается на какие сервера устанавливать роли и компоненты. У вас может быть несколько серверов и они могут быть объединены в пул для централизованного управления с одной консоли. Также роль может быть установлена на виртуальный жесткий диск. Выберем интересующий нас сервер и нажмем далее.

На этом этапе необходимо выбрать роль, которую мы желаем установить на выбранный нами на предыдущем шаге сервер. В данном случае это роль “Веб-сервер (IIS)”.

Далее ОС предложит дополнительно установить необходимые компоненты — следует согласиться, нажав кнопку добавить компоненты.

Далее выводится информационное сообщение о том что такое роль iis.

Служба IIS — большой продукт, включающий в себя множество различных компонентов, поэтому далее потребуется указать какие именно компоненты следует установить — нас интересует веб-сервер. Остальные компоненты можно оставить как есть или отключить, если не хотите ставить лишние компоненты. Оставим также и консоль управления.

После выбора компонентов выведется финальное предупреждение о том, что роль IIS готова к установке. Нажмите установить. Можно также поставить галочку “Автоматический перезапуск конечного сервера, если требуется” чтобы не перезапускать сервер вручную. Следует иметь ввиду, что нажатие этой галочки перезапускает конечный сервер после установки без дополнительных предупреждений, поэтому используйте ее с осторожностью.

После нажатия кнопки установить запустится процесс установки, можно закрыть это окно нажатием кнопки закрыть. Следует иметь ввиду, что это действие не отменяет процесс установки, а только скрывает текущее окно.

Посмотреть, как идет процесс и сколько их запущено, можно, нажав белый флаг.

В данном случае мы видим что установка уже завершена. Можно приступать к настройке.

Для настройки перейдем в оснастке “диспетчер сервера” во вкладку IIS, выберем сервер и нажмем правую кнопку мыши. Выбираем из него “Диспетчер служб IIS”. Слева в дереве подключений находим наш сервер и разворачиваем его двойным щелчком мыши. Встаем на закладку “Сайты” и видим что сайт по умолчанию уже настроен.

.Для проверки достаточно в проводнике windows набрать http://<имя компьютера> после чего должна открыться тестовая страница iis.

Для установки PHP воспользуемся установщик Microsoft Web Platform Installer 5.0 (WPI), скачать который можно по этой ссылке.

Установим сам инсталлятор. Примем лицензионное соглашение и нажмем install.

Теперь запустим его выбрав в главном меню соответствующий пункт.

В правом верхнем углу введем php для поиска необходимого нам компонента.

Найдем нужную нам версию php — например 7.1.19 (x64) и добавим ее для установки кнопкой “Добавить”.

После этого нажмем кнопку установить внизу страницы.

Согласимся с лицензионными соглашениями нажав кнопку ”Принимаю”.

Начнется загрузка и установка компонентов,

По завершении нажмите кнопку “Готово”. Для проверки cоздадим индексный файл php файл c:\inetpub\wwwroot\index.php выводящий версию php.

После этого удаляем файлы iisstart* из папки c:\inetpub\wwwroot, и проверим что php работает набрав в браузере http://<имя или ip сайта>.

На этом настройка PHP+IIS на Windows Server 2016 окончена. В нашей базе знаний вы найдёте ещё множество статей посвящённых различным аспектам работы в Windows, а если вы ищете надежный виртуальный сервер под управлением Windows, обратите внимания на нашу услугу — Аренда виртуального сервера Windows.


 

Заказать сервер на Windows

Последнее обновление: 17.08.2022

PHP: внутренности: windows: stepbystepbuild_sdk_2

Это руководство относится к новому PHP SDK и PHP 7.2 и более поздним версиям, тогда как описываемый PHP SDK совместим как минимум с PHP 7.0. Чтобы собрать PHP более ранней версии, чем 7.0, или если у вас возникли проблемы при сборке PHP более ранней версии, чем 7.2, с новым PHP SDK, обратитесь к старой документации.

Прежде чем начать

Для сборки PHP в Windows потребуются три вещи

  1. Правильно настроенная среда сборки, включая компилятор и PHP SDK

  2. Готовые библиотеки и заголовки для сторонних библиотек, которые PHP использует в правильном месте

  3. Исходный код PHP

Компилятор

Требования

PHP официально поддерживает сборку с помощью компиляторов Microsoft Visual C++. MinGW и Cygwin НЕ поддерживаются. ICC и clang можно использовать в экспериментальных целях. Хотя имейте в виду , качество двоичных файлов гарантируется только при использовании Visual C++. Свободно доступные версии Community VC++ полностью поддерживаются и могут использоваться. Для получения дополнительной информации и получения компилятора см. поддерживаемые версии. Поддерживаются следующие версии VС++:

  • Visual C++ 14.0 (Visual Studio 2015) для PHP 7.0 или PHP 7.1 .

  • Visual C++ 15.0 (Visual Studio 2017) для PHP 7.2 , PHP 7.3 или PHP 7.4 .

  • Visual C++ 16.0 (Visual Studio 2019) для мастера .

Всегда обновляйте установленный Visual C++. В противном случае могут возникнуть ошибки сборки из-за зависимостей, созданных в более новых версиях.

Поддержка определенной версии Visual Studio означает только поддержку набора инструментов платформы по умолчанию; создание PHP с набором инструментов платформы, отличным от стандартного (например, 14. 16 с Visual Studio 2019), может работать, но не рекомендуется.

В именах файлов (и переменной среды PHP_SDK_VS ; см. ниже) версия Visual Studio обычно указывается в сокращении. До Visual Studio 2019 в аббревиатуре использовалась схема «vc#» (например, «vc14»). Этот номер («#») традиционно был основным номером набора инструментов соответствующей платформы. Предварительные выпуски Visual Studio 2017 поставлялись с набором инструментов платформы 15.00, поэтому использовался «vc15». Однако первый общедоступный выпуск Visual Studio 2017 поставлялся с набором инструментов платформы 14.10 (для обозначения обратной совместимости), но внутренний номер версии Visual Studio оставался 15.00. Во избежание путаницы было сохранено «vc15». Для Visual Studio 2019builds (master), «vc#» наконец был изменен на «vs#» (обратите внимание на «s»), где число теперь обозначает основной внутренний номер версии Visual Studio.

Настройка

  • Получить последний стабильный тег SDK или HEAD с https://github. com/php/php-sdk-binary-tools

    • Новый PHP SDK требуется при сборке PHP 7.2+

    • Прочитайте специальные примечания к PHP SDK на странице репозитория Github

  • При компиляции PHP 7.0+ :

  • При компиляции PHP 7.2+ :

  • При компиляции master :

  • Дополнительные инструменты

    • Гит

    • Cppcheck

    • Звон

Командная строка

PHP SDK 2.0.0+ предоставляет начальные сценарии, которые автоматически настраивают среду компилятора. Стартовые сценарии также предоставляют функциональные возможности для внедрения пользовательских частей установки. Чтобы создать индивидуальный сценарий установки, поместите свой код в файл phpsdk-local.bat в корневой каталог PHP SDK. Следующие переменные автоматически доступны в оболочке PHP SDK.

  • PHP_SDK_ARCH — целевая архитектура сборки, используемая для настройки среды

  • PHP_SDK_ ОС _ARCH — архитектура операционной системы

  • PHP_SDK_PHP_CMD — встроенный скрипт бинарной оболочки PHP

  • PHP_SDK_ROOT_PATH — путь к корневому каталогу PHP SDK

  • PHP_SDK_VS — версия Visual C++, используемая для среды (до PHP SDK 2.2.0beta4 эта переменная называлась PHP_SDK_VC)

  • доступны несколько других менее важных переменных, которые можно просмотреть с помощью команды set

Полный список инструментов, включенных в PHP SDK, можно найти на странице readme репозитория.

Каждая версия Visual Studio (или Windows SDK) предоставляет среду командной строки для компиляции (доступна в группе меню «Пуск»). Его можно использовать, например, если вы хотите исключить использование начальных сценариев или хотите протестировать предварительную версию Visual Studio.

  • При компиляции PHP 7.0+ откройте либо «Командная строка VS2015 x64 Native Tools» , либо «VS2015 x86 Native Tools Command Prompt» .

Все команды в остальной части этого документа следует запускать в соответствующей командной строке.

Загрузить необходимые компоненты

  1. Получить исходный код PHP, есть два варианта:

    • скачать архив исходников (Стабильные релизы, QA релизы)

    • клонировать репозиторий PHP Git (зеркало GitHub)

  2. Получить бинарные инструменты:

    • доступно на https://github.com/php/php-sdk-binary-tools

    • либо получить тег в виде zip, либо клонировать репозиторий git и проверить тег

  3. Получить библиотеки, от которых зависит PHP:

    • используйте инструменты PHP SDK для автоматического получения подходящих зависимостей, вызвав phpsdk_deps -u

    • В качестве альтернативы загрузите упакованные файлы deps с http://windows. php.net/downloads/php-sdk/deps/, выбрав соответствующую версию VC++ и каталог архитектуры. Обратите внимание: пакеты .7z больше не предоставляются для PHP 7.2 и выше.

    • Примечание: Сюда должны входить библиотеки, необходимые для создания большинства основных расширений. Однако для некоторых других расширений могут потребоваться дополнительные библиотеки, заголовочные файлы и вспомогательные приложения. См. библиотеки, выберите нужную версию и распакуйте архив в каталог deps (см. ниже). Другой набор библиотек, используемых для сборки расширений PECL, доступен в каталоге PECL deps. При необходимости их нужно получить вручную.

Настройка каталога сборки

Это нужно сделать только один раз перед сборкой PHP. Используемый здесь эталонный двоичный каталог SDK — c:\php-sdk , в зависимости от конкретных обстоятельств может использоваться произвольное местоположение. Следовательно, мы используем путь C:\php-sdk\phpdev\vc14\x64\php-7. 1.0-src в качестве эталонного пути для 64-разрядной сборки Visual C++ PHP 7.1.0.

  1. Установка PHP SDK

    1. Создать каталог сборки к:\php-СДК

    2. Распакуйте архив бинарных инструментов в этот каталог, он должен содержать три подкаталога: bin , lib и msys2

  2. Откройте командную строку и введите каталог сборки:

     cd c:\php-sdk\ 
  3. Вызов начального сценария, например, для 64-разрядной сборки Visual Studio 2015, вызовите phpsdk-vc14-x64.bat

  4. Выполнить phpsdk_buildtree пакетный скрипт, который создаст нужную структуру каталогов:

     phpsdk_buildtree phpdev 
  5. Сценарий phpsdk_buildtree создаст путь в соответствии с текущей используемой версией VC++ и переключится во вновь созданный каталог

  6. Извлечь исходный код PHP в C:\php-sdk\phpdev\ vX## \ x## , где:

    • vX## — используемая версия компилятора (eq vc14 или vs16 )

    • x## ваша архитектура ( x86 или x64 )

    • Например: C:\php-sdk\phpdev\vc14\x64\php-7. 1.0-src

  7. В том же каталоге, где вы извлекли исходный код PHP, есть каталог deps . Выполните одно из следующих действий

    • переключитесь в исходный каталог php и запустите phpsdk_deps -u

    • Если вы загрузили зависимости вручную на предыдущем шаге, извлеките их в deps

Компиляция

Обратите внимание, что в настоящее время начальные сценарии PHP SDK не поддерживают кросс-сборки.

  1. Вызов начального сценария для автоматической настройки среды для желаемой конфигурации сборки, например

     c:\php-sdk\phpsdk-vc14-x64.bat 
  2. Измените каталог на расположение вашего исходного кода PHP, например.

     компакт-диск C:\php-sdk\phpdev\vc14\x64\php-7.1.0-src 
  3. Выполнить:

     buildconf 
  4. Чтобы получить обзор флагов компиляции:

     configure --help 
  5. Создайте команду конфигурации:

     configure --disable-all --enable-cli --enable-$remains 
  6. Чтобы собрать PHP, введите:

     nmake 
  7. Если вы хотите, чтобы полученные сборки и расширения PHP были заархивированы, после ‘nmake’ также запустите:

     nmake snap 
  8. Скомпилированный PHP теперь находится в папке «C:\php-sdk\phpdev\vX##\x##\php-source-directory\Release_TS». Если вы запустили «nmake snap», zip-файл также будет здесь.

    • Если вы скомпилировали с помощью «—disable-zts», скомпилированный PHP будет находиться в папке «C:\php-sdk\phpdev\vX##\x##\php-source-directory\Release»

Повторная компиляция после внесения некоторых изменений

  1. Очистка старых скомпилированных двоичных файлов

     nmake clean 
  2. Если вам нужно обновить скрипт «configure»

     buildconf --force 
  3. Создайте make-файл: см. выпуск

     configure --disable-all --enable-cli --enable-$remains 
  4. Компиляция

     Nmake 

Построение расширений PECL

Многие расширения PECL уже имеют готовые библиотеки DLL, которые можно загрузить со страницы расширений на веб-сайте PECL. Например, на странице расширения APCu есть ссылки *DLL* рядом со ссылкой на архив выпуска. Они ведут вас на страницу, где вы можете скачать скомпилированное расширение для желаемой версии PHP и архитектуры.

Чтобы построить расширение PECL (например, APCu):

  1. Открыть страницу расширения на PECL (APCu)

  2. Загрузите источник расширения одним из следующих способов:

    • загрузка исходного архива

    • получение исходного кода из репозитория расширения (ссылку можно найти в разделе *Обзор исходного кода*)

  3. Создайте каталог с именем pecl на том же уровне, что и ваш исходный каталог PHP, например. C:\php-sdk\phpdev\vc14\x64\pecl

  4. Извлеките или клонируйте исходный код расширения в pecl каталог

    • при клонировании клонировать в подкаталог, т.е. C:\php-sdk\phpdev\vc14\x64\pecl\apcu

    • Архив исходного кода уже должен содержать подкаталог с именем, например. апку-4.0.7

  5. Вызов начального сценария для автоматической настройки среды для желаемой конфигурации сборки, например

     c:\php-sdk\phpsdk-vc14-x64.bat 
  6. Введите исходный каталог PHP

  7. Пересоберите скрипт configure, выполнив:

     buildconf 
  8. Выполнение configure --help теперь должен содержать параметр для включения APCu

     --enable-apcu Включить ли поддержку APCu 
  9. Настройка и сборка:

     configure --disable-all --enable-cli --enable-apcu 
     nmake 
  10. Протестируйте двоичный файл с помощью команды php -m , чтобы убедиться, что APCu загружен

На этом этапе ваше скомпилированное расширение будет находиться в каталоге выпуска.

Создание расширений PECL с помощью phpize

В качестве альтернативы сборке «в дереве», описанной выше, вы можете выполнить сборку «phpize», что в основном полезно, если вам не нужно собирать PHP из исходного кода, а лучше использовать предварительно собранный двоичный пакет PHP.

  1. Загрузите и распакуйте пакет разработки, соответствующий вашей предварительно собранной версии и варианту PHP, с https://windows.php.net/

  2. Загрузите и распакуйте исходный код расширения PECL

  3. Вызов начального сценария для автоматической настройки среды для желаемой конфигурации сборки, например. c:\php-sdk\phpsdk-vs16-x64.bat

  4. Добавьте папку пакета разработки и папку PHP в PATH

  5. Войдите в исходную папку расширения PECL

  6. Выполнить phpize

  7. Запустите configure --help , чтобы просмотреть список параметров конфигурации

    • наиболее важным параметром является тот, который позволяет построить расширение (например, --enable-apcu )

    • другой важный параметр: --with-prefix , который ожидает, что папка PHP будет передана

    • если расширение зависит от библиотек C, вам необходимо скачать их и поместить либо в --with-php-build или используйте опции --with-extra-includes и --with-extra-libs ; подходящие готовые библиотеки можно найти на https://windows. php.net/downloads/php-sdk/deps/ и https://windows.php.net/downloads/pecl/deps/

      .

    • могут быть и другие интересные варианты конфигурации, например. те, которые позволяют настроить детали расширения, которое будет построено

  8. Выполнить настроить с нужными параметрами

  9. Выполнение nmake

  10. После успешной компиляции артефакты сборки находятся в папке релиза

  11. Если расширение имеет набор тестов PHPT, запустите nmake test

Если вы хотите создать расширение с помощью Github Actions, рассмотрите возможность использования https://github.com/cmb69/setup-php-sdk.

Каталоги выпусков

Когда вы успешно скомпилировали PHP, каталог выпуска может быть одним из нескольких, в зависимости от конфигурации сборки:

  1. `Выпуск`: Выпуск сборки NTS

  2. `Release_TS`: выпуск сборки ZTS

  3. `Отладка`: Отладка сборки NTS

  4. `Debug_TS`: Отладка сборки ZTS

Если вы компилируете с помощью 64-битного компилятора, то эти каталоги будут расположены в каталоге с именем `x64`.

Подводные камни

  1. Возможные проблемы с PHP SDK см. в файле readme PHP SDK

    .

  2. Начиная с PHP 7.3 доступен переключатель —enable-native-intrinsics. Полученному двоичному файлу потребуется процессор с соответствующим доступным набором функций. Например, если вы установите —enable-native-intrinsics=avx2, убедитесь, что на целевой машине установлен процессор с поддержкой AVX2.

  3. В некоторых случаях вы можете столкнуться с ошибкой компоновщика C1047; вы можете обойти это, установив LDFLAGS=/d2:-AllowCompatibleILVersions и перенастроив файл build.

internals/windows/stepbystepbuild_sdk_2.txt · Последнее изменение: 10.01.2022 09:43 by cmb

Простой веб-сервер Windows для PHP и CGI-скриптов

Что это?

Веб-сервер Windows был разработан для тестирования программ PHP и CGI/FCGI под Windows без установки среды Apache или IIS. Веб-сервер прост в установке и поставляется со встроенным PHP 8.2.2, поддержкой FastCGI, mod_rewrite и SSL/TLS 1.2. Также интегрированы FTP(S), WebDAV и DNS. WWebserver не является Apache и был разработан с нуля. Он был протестирован с распространенными приложениями OpenSource, такими как WordPress, Joomla, Drupal, Typo3, Magento, phpMyAdmin, PIWIK, AWstats. Это как XAMPP, но намного умнее.


Установка и настройка

1. Установите полную программу с PHP 8.2.2 (Win7+, Win10)
wwebserver_php_822_setup.exe (38,8 МБ)

или PHP 7.4.32 (Win7+, Win10)
wwebserver_php_822_setup.exe (38,8 МБ)
wwebserver_php_822_setup.exe (38,8 МБ) ) или PHP 7.3.11 wwebserver_php_7311_setup.exe (35,5 МБ) или более ранние версии …

Или с PHP 5.4.45 (WinXP+)
wwebserver_php_5445_setup.exe (16,6 МБ)

Или используйте только командную строку, самую маленькую версию без встроенных PHP, SSL, FTP, WebDAV, WWadmin.
: Вы должны загрузить предпочитаемую версию PHP вручную и настроить ее с помощью FastCGI.
wwebserver_20_cmd.zip (210 КБ)

2. Введите хост, порт, путь к документу и запустите его.

Порт HTTP по умолчанию — 80, но вы можете выбрать
любой другой порт, если в вашей системе только что запущен другой веб-сервер.
Если вам не нужен SSL, вы можете поставить галочку No HTTPS.
Можно привязать к нескольким ip адресам и портам через запятую.
Или введите все , чтобы использовать все IP-адреса, доступные в вашей системе.

После запуска вы можете закрыть окно и управлять веб-сервером с помощью значка на панели задач.
Или вызовите https://localhost/wwadmin/ для панели Webadmin.

3. Откройте веб-браузер и запустите приложение PHP, например:

http://localhost/index.php


Виртуальные каталоги

Вы можете определить виртуальные каталоги для обработки нескольких путей к документам.
Поэтому отредактируйте следующий файл конфигурации:

C:\WWebserver\cfg\vdir.txt

# Определения виртуальных каталогов
# <Путь>;<Каталог>
#
# Примечание. В конце <Пути> должен стоять символ ‘/’

pma /;C:\phpMyAdmin
typo3/;C:\typo3
drupal/;C:\drupal
wordpress/;C:\wordpress

Теперь вы можете запускать приложения очень просто, например: http://localhost/wordpress

Примечание. После изменения vdir.txt ОСТАНОВИТЕ и снова ЗАПУСТИТЕ веб-сервер.

Другим способом обработки нескольких приложений является регистрация виртуальных хостов с собственными DNS-записями внутреннего DNS-сервера.


CGI-программы

Вы можете определить собственные CGI-программы, например Perl или Ruby.
Поэтому отредактируйте следующий файл конфигурации:

C:\WWebserver\cfg\cgi.txt

# Определения программ CGI
# <Псевдоним 1> <Псевдоним 2> …;<Полный путь к программе CGI>
# <Псевдоним 1> <Псевдоним 2> …;PHPBuildIn
# <Псевдоним 1> <Псевдоним 2> …;PHPFCGI [<Полный путь к php-cgi.exe>]
# <Псевдоним 1> <Псевдоним 2> . ..;FCGI <Полный путь к программе FastCGI> | :<Порт> или <Имя канала>
# <Псевдоним 1> <Псевдоним 2> …;FCGI :<Порт> или <Имя канала>

.php .php4 .php3;PHPFCGI
.rb;C:\ruby\bin\ruby.exe
.pl;C:\perl\bin\perl.exe

В этом примере мы связываем расширения файлов .rb со скриптами Ruby и .pl
с Perl-скриптами.
файлы .php .php3 .php4 связаны с PHP FastCGI текущей установленной версии.
По умолчанию PHP будет использоваться как версия PHPBuildIn, что означает, что отдельные процессы PHP не будут создаваться в отличие от PHPFCGI.
На мой взгляд, PHPBuildIn — самая быстрая версия PHP, но вы не можете использовать разные версии PHP на виртуальных хостах с помощью PHPBuildIn.

Примечание. После изменения cgi.txt ОСТАНОВИТЕ и ЗАПУСТИТЕ веб-сервер снова.


Конфигурация PHP

Вы можете управлять средой PHP с помощью файла php.ini:

C:\WWebserver\cfg\php.ini

Вы можете включать/отключать DLL расширения PHP, расположенные в каталоге:

C:\WWebserver\ext

Примечание. После изменения php.ini вам необходимо ВЫЙТИ и ПЕРЕЗАПУСТИТЬ веб-сервер.


Виртуальные хосты

Вы можете определить виртуальные хосты с собственными домашними каталогами и настройками PHP. Поэтому отредактируйте следующий файл конфигурации:

C:\WWebserver\cfg\vhost.txt

# [<уникальное имя>=]<имя хоста1[:порт]>[<имя хоста2[:порт]> …];<Каталог документов>[;<имя файла журнала доступа>]
# Можно создать для каждого виртуального хоста собственный каталог конфигурации: cfg/vhost/
# Здесь вы можете определить отдельный файл журнала для каждого хоста. Возможны следующие заполнители: %m для месяца, %d для дня, %Y для года
# Формат журнала определен в init.txt

# Примеры
mydomain.com,www.mydomain.com;C:\MyDomain.com\www;C:\MyDomain\log\access%Y%m%d. журнал
локальный: 9090; C:\localhost_9090

Примечание. Виртуальный хост сообщает веб-серверу домашний каталог домена.
Однако домен должен разрешаться через DNS, чтобы ваш веб-браузер мог найти IP-адрес домена, который должен быть IP-адресом, на котором работает веб-сервер.
Вы можете легко использовать встроенный DNS-сервер для настройки виртуальных доменов в вашей системе.


Перезапись URL

Узнайте больше о mod_rewrite, Redirect и .htaccess.


Защита каталогов

WWebserver понимает базовую авторизацию HTTP.
Подробнее о защите каталогов.


Файлы журналов

WWebserver с новейшей версией может создавать журналов доступа, совместимых с Apache .

Вы можете включить ведение журнала по умолчанию в cfg\init.txt

# Регистрировать каждый запрос в файле журнала, совместимом с Apache, в формате
enableLog = true

# Вы можете определить следующие заполнители для файла журнала: %m для месяца, %d для дня, %Y для года
logFile = log/access.log

# 0 = формат журнала по умолчанию с ссылкой HTTP и пользовательский агент, 1 = простой формат журнала
logFormat = 0

# Журнал с именем хоста
logWithHostname = true

Примечание. Вы можете отключить ведение журнала по умолчанию и определить отдельных файлов журнала в vhost.txt.



SSL/TLS 1.2

WWebserver поддерживает TLS 1.2 по умолчанию (на основе OpenSSL v1.1.1). Самоподписанные сертификаты X.509 (RSA 2048 бит) генерируются автоматически для
каждое имя хоста. Вы можете установить свои собственные сертификаты в следующий каталог:

C:\WWebserver\cfg\ssl для общедоступных сертификатов

C:\WWebserver\cfg\ssl\key для файлов закрытых ключей

Сертификаты и файлы ключей должны иметь следующие соглашение об именах файлов: <имя хоста>.crt , <имя хоста>.key
Вы можете игнорировать www. префикс. Каждый файл сертификата будет автоматически проверяться на сайте www. домены.

Примечание. Самоподписанные сертификаты помечаются как небезопасные большинством веб-браузеров и работают очень медленно из-за сбоя рукопожатия TLS.
Используйте https:// вместо имени хоста для быстрого соединения HTTPS.


FTP-сервер с явным TLS

Прочтите руководство: Настройка внутреннего FTP-сервера


DNS-сервер

Прочтите руководство: Настройка внутреннего DNS-сервера


WebDAV

Если вы хотите получить доступ WebDAV к пути к документу, вам необходимо создать пароль WWAdmin с помощью reset_pwd.bat
После этого вы можете войти в систему с помощью клиента WebDAV и wwadmin пользователь. Пользователям FTP в cfg\ftpuser.txt разрешен доступ к своим ресурсам по следующему URL-адресу:
http(s):///webdav-users//
Путь /webdav-users/.. , всегда будет запрашивать логин пользователя и ссылку на домашний каталог указанного пользователя.
Внимание! Вам не нужно включать FTP, чтобы получить доступ к WebDAV с пользователем wwadmin или пользователями FTP.


Cronjobs

Вы можете выполнять cronjobs с помощью WWebserver. Crontab организован так же, как crontab в Linux. Пожалуйста, отредактируйте следующий файл:

C:\WWebserver\cfg\crontab. txt

# <минута> <час> <день> <месяц> <день недели> |exec []
# День недели: 1 = понедельник, 0 = воскресенье
# Специальные ключевые слова:
# @startup вызвал при первом запуске
# @start вызывается при первом запуске и после перезапуска
# @shutdown вызывается при окончательном завершении работы
# @stop вызывается при окончательном завершении работы и перед перезапуском

# В этом примере мы каждые 10 минут вызываем URL-адрес и сохраняем результат в cron_result. html
*/10 * * * * https://www.mydomain.com/program.php?param1=1&param2=2 cron_result.html

# В этом примере мы запускаем локальную программу (wget.exe) в субботу 23 :00
0 23 * * 6 exec wget.exe http://www.mydomain.com/program.php?param1=1&param2=2 -O cron_result_wget.html

# В этом примере мы вызываем скрипт при запуске
@startup * * * * exec php.exe startup_script.php

Примечание: после изменения crontab.