Статьи

Как включить XDebug в веб-сайтах Windows Azure

В прошедшие выходные команда веб-сайтов Windows Azure выпустила несколько замечательных улучшений. Для обзора всего, что было выпущено, я предлагаю прочитать сообщение в блоге Скотта Гатри на тему: Объявление: большие улучшения в веб-сайтах Windows Azure. Несколько последствий этих улучшений заключаются в том, что теперь вы можете запускать пользовательскую среду выполнения PHP на веб-сайтах Windows Azure (дополнительную информацию см. В статье Кори Фаулера : включение PHP 5.4 на веб-сайтах Windows Azure ) и можно включать пользовательские расширения ( см. мой пост ранее на этой неделе для получения дополнительной информации: Использование пользовательских расширений в веб-сайтах Windows Azure

). В этом zpost я расскажу, как запустить XDebug (включая профилировщик) на веб-сайтах Windows Azure.

Включение XDebug на веб-сайтах Windows Azure так же просто, как включение расширения. Однако включение расширения для встроенной среды выполнения PHP немного отличается от того, как это делается для пользовательской среды выполнения PHP. Я рассмотрю оба сценария здесь. В обоих случаях я предполагаю, что вы уже создали веб-сайт. Если нет, вы можете узнать, как это сделать, следуя этому руководству: Создайте веб-сайт PHP-MySQL для Windows Azure и разверните его с помощью Git . Или, для более кратких инструкций (которые не включают настройку базы данных), следуйтеКак: создать веб-сайт с помощью раздела « Портал управления » в этом руководстве: как создать и развернуть веб-сайт .

Включение XDebug для встроенной среды выполнения PHP

Чтобы сделать расширение XDebug (или любое другое расширение) доступным для встроенной среды выполнения PHP (в настоящее время PHP 5.3.13), вам, в основном, нужно отправить двоичный файл расширения на свой сайт и добавить настройку приложения (через Портал управления), который содержит путь к двоичному файлу. Однако для включения профилировщика XDebug необходимо преодолеть несколько небольших препятствий. Вот конкретные шаги:

1. Загрузите файл DLL XDebug для PHP 5.3: php_xdebug-2.2.1-5.3-vc9-nts.dll

2. Добавьте новую папку в корневой каталог вашего приложения и добавьте в нее файл php_xdebug-2.2.1-5.3-vc9-nts.dll . Я предлагаю добавить папку с именем bin, чтобы посетители вашего сайта не могли просматривать ее содержимое.

3. Создайте новую папку в каталоге bin с именем xdebug_profiles . Это папка, в которую будут записываться результаты профилирования. ( Примечание : если вы используете Git для публикации файлов, вам нужно добавить какой-то файл в этот каталог, так как Git не будет выдвигать пустые каталоги.)

4. Добавьте файл с именем .user.ini в корневой каталог со следующим содержимым.

zend_extension = ".\bin\php_xdebug-2.2.1-5.3-vc9-nts.dll"
xdebug.profiler_enable=1
xdebug.profiler_output_dir="D:\home\site\wwwroot\bin\xdebug_profiles"

5. Вставьте этот новый контент на свой сайт (через Git , FTP или WebMatrix ).

6. Перейдите на панель инструментов своего сайта на портале Windows Azure и нажмите КОНФИГУРАЦИЯ .

образ

7. Найдите раздел настроек приложения и создайте новую пару ключ / значение. Установите для ключа значение PHP_EXTENSIONS и задайте в качестве значения местоположение (относительно корня вашего приложения) ваших расширений PHP. В моем случае это выглядит так:

образ

8. Нажмите на галочку (показанную выше) и нажмите СОХРАНИТЬ внизу страницы.

образ

Вот и все. Теперь XDebug должен быть запущен, а результаты профиля должны быть записаны в папку / bin / xdebug_profiles . Один недостаток, который я вижу сейчас, заключается в том, что единственный способ получить содержимое папки / bin / xdebug_profiles — это использовать FTP. Я планирую изучить лучшие способы сделать это в будущем.

Чтобы отключить XDebug (и / или профилировщик), просто измените файл .user.ini соответствующим образом.

Включение XDebug для пользовательской среды выполнения PHP

Поскольку расширения включаются через файл php.ini при использовании настраиваемой среды выполнения PHP, включение XDebug выполняется почти так же, как вы это делаете в своей среде разработки. Здесь я отправлю свою локальную среду выполнения PHP на веб-сайты Windows Azure вместе с моим локальным файлом php.ini и включенным XDebug.

1. Добавьте новую папку в корневой каталог вашего приложения и добавьте в нее весь каталог времени выполнения PHP. Я предлагаю добавить папку с именем bin, чтобы посетители вашего сайта не могли просматривать ее содержимое.

Примечание : вам нужно будет установить fastcgi.logging = 0 в вашем файле php.ini . Если вы не отключите ведение журнала FastCGI, IIS вернет ошибки HTTP 500 при выполнении сценариев PHP.

2. Загрузите версию в файле DLL XDebug, соответствующую вашей версии времени выполнения PHP (всегда выбирайте версию vc9-nts): http://xdebug.org/files/ . Добавьте это в свой каталог расширений.

3. Создайте новую папку в каталоге bin с именем xdebug_profiles . Это папка, в которую будут записываться результаты профилирования.

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

4. Добавьте это в файл php.ini, убедившись, что имя файла DLL соответствует вашей версии PHP. Как видите, я использую PHP 5.4:

zend_extension = ".\ext\php_xdebug-2.2.1-5.4-vc9-nts.dll"
xdebug.profiler_enable=1
xdebug.profiler_output_dir="D:\home\site\wwwroot\bin\xdebug_profiles"

Примечание : за исключением значения xdebug.profiler_output_directory , все пути в вашем файле php.ini должны быть относительными. Например, вместо extension_dir = «C: \ Program Files \ PHP \ ext» вы должны иметь extension_dir = ». \ Ext» .

5. Вставьте этот новый контент на свой сайт (через Git , FTP или WebMatrix ).

6. Перейдите на панель инструментов своего сайта на портале Windows Azure и нажмите КОНФИГУРАЦИЯ .

образ

7. Найдите раздел отображения обработчика и добавьте информацию, показанную в таблице ниже (при условии, что ваша среда выполнения PHP находится в папке с именем php54). Обратите внимание, что вам нужно будет нажать на маленькую галочку справа от каждой записи, чтобы создать новую запись.

расширение

Путь к обработчику скриптов

Дополнительные аргументы

* .php

D: \ главная \ сайт \ Wwwroot \ Bin \ php54 \ PHP-cgi.exe

 

8. Нажмите СОХРАНИТЬ внизу страницы.

образ

Опять вот и все. Теперь XDebug должен быть запущен, а результаты профиля должны быть записаны в папку / bin / xdebug_profiles . И, как я уже отмечал выше, один недостаток, который я сейчас вижу, заключается в том, что единственный способ получить содержимое папки / bin / xdebug_profiles — это использовать FTP.

Чтобы отключить XDebug (и / или профилировщик) в этом случае, просто измените файл php.ini соответствующим образом.

Если вы играете с этой новой функциональностью на веб-сайтах Windows Azure, сообщите нам, что вы думаете в комментариях.

Спасибо.

-Брайан