- PVSM.RU - https://www.pvsm.ru -
Я Microsoft Scum и привык к наличию инсталляторов, после успешного выполнения которых у меня на машине установлено и настроено всё необходимое.
С PHP оказалось не так, что привело к нескольким часам мучений и ложных ходов, для устранения которых я и написал эту статью.
Будучи web-разработчиком под ASP.NET ещё с 2003 года, я привык, что разрабатываемое приложение крутится на IIS. Сейчас вместе со Студией ставится компактная версия IIS, и, признаться, разработка под ним в большинстве случаев гораздо удобнее развёртывания дополнительной разработческой среды под полноценным IIS.
У PHP также есть режим запуска в качестве сервера с выбором корневой директории приложения. Однако, выяснилось, что такой режим не позволяет по-человечески отлаживать продукт. По этой причине мы будем воссоздавать более или менее родную среду для работы фреймворков: Apache+PHP. При этом возможность отладки и тестирования обеспечивается отдельными модулями, у которых есть конкретная сборка под конкретную сборку PHP без каких-либо свобод выбора. Оно и к лучшему — отсутствие свободы выбора версий ограничивает нас всего одним сценарием установки. Его то мы и опишем.
В статье будут использованы значения по умолчанию для 64-битной Винды. Для 32-битной разница лишь в том, что вместо папки C:Program Files (x86) надо использовать папку C:Program Files.
На момент написания статьи инсталлятора не предлагалось, поэтому ставим что есть:
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
; extension_dir = "ext"
и снимаем комментарий с последней строки, получится:
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone =
и прописываем там зону, в которой находится компьютер (у меня это «Europe/Moscow», php.net/manual/en/timezones.php [2] содержит информацию о поддерживаемых зонах):
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Europe/Moscow"
Готово.
Инсталлятора традиционно нет, так что:
[XDebug]
; http://xdebug.org/wizard.php
zend_extension = extphp_xdebug-2.2.2-5.4-vc9-nts.dll
xdebug.remote_enable=1
xdebug.remote_port="9000"
xdebug.profiler_enable=1
xdebug.profiler_output_dir="D:TempXDebugProfiler"
xdebug.remote_host = "localhost"
SUMMARY
• Xdebug installed: 2.2.2
• Server API: Command Line Interface
• Windows: yes — Compiler: MS VC9 — Architecture: x86
• Zend Server: no
• PHP Version: 5.4.14
• Zend API nr: 220100525
• PHP API nr: 20100525
• Debug Build: no
• Thread Safe Build: no
• Configuration File Path: C:Windows
• Configuration File: C:Program Files (x86)PHPv5.4php.ini
• Extensions directory: ext
YOU'RE ALREADY RUNNING THE LATEST XDEBUG VERSION
But here are the instructions anyway:
1. Download
2. Move the downloaded file to ext
3. Update C:Program Files (x86)PHPv5.4php.ini and change the line
zend_extension = ext
Надпись капслоком самая важная. Если вдруг завтра выйдет свежая версию XDebug, пишите, я его себе тоже поставлю.
Готово.
Готово.
Обновление PHPUnit и других модулей, установленных с помощью PEAR, делается командой «pear upgrade-all». Вообще, рекомендую почитать инструкцию по PEAR. Опытного разработчика она непременно наведёт на размышления о том, чтобы распространять свои труды не закачкой по FTP, а с использованием всё того же PEAR.
Лично у меня забиты порты 80 (IIS), 8080 (TFS) и 8000 (HTTP proxy). По этой причине я поставил Apache слушать порт 8085. Здесь будут приведены настройки для Apache на порт 8085. Также в качестве корневых директорий я использую «d:wwwApache».
У Апача под Винду есть отдельный сайт www.apachelounge.com/ [7], откуда можно скачать самый свежак. Поскольку PHP у нас x86, то и все .dll-файлы у него x86, поэтому и Apache придется ставить x86.
ServerRoot "C:/Program Files (x86)/Apache24"
(С тех пор, как Винда превратилась из графической оболочки над DOS в самостоятельную операционку, ей всё равно, в какую сторону наклонена косая черта, а вот Апачу не всё равно, нам надо использовать строго "/");
Listen 8085
DocumentRoot "D:/www/Apache/web"
<Directory "D:/www/Apache/web">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
не забудьте создать эту директорию (вы могли заметить, что в конце пути я добавил поддиректорию web — это связано с тем, что я собираюсь использовать Symfony, который предполагает содержание самого сайта в поддиректории web общего проекта);
LoadModule php5_module "C:/Program Files (x86)/PHP/v5.4/php5apache2_4.dll"
<IfModule php5_module>
</IfModule>
<IfModule php5_module>
PHPIniDir "C:/Program Files (x86)/PHP/v5.4"
AddHandler application/x-httpd-php .php
</IfModule>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
"C:Program Files (x86)Apache24binhttpd" -k install
net start Apache2.4
<?php
phpinfo();
и запросив его из браузера по url http://localhost:8085/ [9]
Готово.
www.jetbrains.com/phpstorm/ [10] — качаем, ставим, запускаем PhpStorm 6 (у него есть месяц триала, лично мне этого более чем хватило для приобретения).
К работе с TFS из среды PhpStorm, как и из других продуктов, использующих среду Idea, придется привыкать. Терминология и поведение существенно отличается от оных в Visual Studio. Тем не менее, пользоваться интеграцией гораздо удобнее. чем бегать в Visual Studio за каждым файлом.
Итак,
Теперь у нас есть среда, готовая работать с TFS.
<?php
phpinfo();
Среда готова к работе.
Пользователям MS Visual Studio придется немного привыкнуть к тому, что нажатие кнопки Run при включенном дебагере приводит не к продолжению исполнения текущего скрипта, а к открытию в браузере новой закладки, новому запросу на сервер и отключению отладки, но даже с такими отличиями процесс отладки протекает довольно легко.
Конечно, только удобной среды разработки не достаточно для создания хорошего продукта. Рекомендую почитать habrahabr.ru/post/174963/ [11] — статью, в которой кратко изложены основные грабли, на которые натыкаются разработчики в первых проектах. Если же у вас уже есть успешный опыт разработки крупных проектов на других платформах, старайтесь искать на платформе PHP похожие решения, или приносите свои идеи.
Автор: DarthJurassic
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/windows/35037
Ссылки в тексте:
[1] windows.php.net/download/#php-5.4: http://windows.php.net/download/#php-5.4
[2] php.net/manual/en/timezones.php: http://php.net/manual/en/timezones.php
[3] xdebug.org/download.php: http://xdebug.org/download.php
[4] xdebug.org/files/php_xdebug-2.2.2-5.4-vc9.dll: http://xdebug.org/files/php_xdebug-2.2.2-5.4-vc9.dll
[5] xdebug.org/wizard.php: http://xdebug.org/wizard.php
[6] pear.php.net/go-pear.phar: http://pear.php.net/go-pear.phar
[7] www.apachelounge.com/: http://www.apachelounge.com/
[8] www.apachelounge.com/download/: http://www.apachelounge.com/download/
[9] http://localhost:8085/: http://localhost:8085/
[10] www.jetbrains.com/phpstorm/: http://www.jetbrains.com/phpstorm/
[11] habrahabr.ru/post/174963/: http://habrahabr.ru/post/174963/
[12] Источник: http://habrahabr.ru/post/177631/
Нажмите здесь для печати.