Установка php для phpstorm

Установка и настройка JetBrains PhpStorm 6 под Windows 7 для разработки web-приложений на PHP

Я Microsoft Scum и привык к наличию инсталляторов, после успешного выполнения которых у меня на машине установлено и настроено всё необходимое.

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

Как это работает

Будучи web-разработчиком под ASP.NET ещё с 2003 года, я привык, что разрабатываемое приложение крутится на IIS. Сейчас вместе со Студией ставится компактная версия IIS, и, признаться, разработка под ним в большинстве случаев гораздо удобнее развёртывания дополнительной разработческой среды под полноценным IIS.

У PHP также есть режим запуска в качестве сервера с выбором корневой директории приложения. Однако, выяснилось, что такой режим не позволяет по-человечески отлаживать продукт. По этой причине мы будем воссоздавать более или менее родную среду для работы фреймворков: Apache+PHP. При этом возможность отладки и тестирования обеспечивается отдельными модулями, у которых есть конкретная сборка под конкретную сборку PHP без каких-либо свобод выбора. Оно и к лучшему — отсутствие свободы выбора версий ограничивает нас всего одним сценарием установки. Его то мы и опишем.

В статье будут использованы значения по умолчанию для 64-битной Винды. Для 32-битной разница лишь в том, что вместо папки C:\Program Files (x86) надо использовать папку C:\Program Files.

Целевая конфигурация

  • PHP 5.4 (5.4.15) TS x86 — многопоточная версия PHP 5.4. Её безглючность не гарантируется, однако, у однопоточного отсутствуют жизненно важная для работы с Apache php5apache2_4.dll, так что ставим многопоточный PHP, крестимся и едем дальше;
  • xDebug 2.2.2 — я решил не пользоваться стандартным Zend Debugger, поскольку индивидуальный web-сервер не нуждается в коллективной отладке, а вот точность при работе профайлера может оказаться крайне полезной;
  • PHPUnit — поскольку предполагается, что разработчик искушен не только хорошими средствами разработки, но и хорошими средствами поддержки функционала в процессе последующих изменений, а также не брезгует пользоваться разными вендорскими фреймворками вроде Symfony, модульное тестирование просто необходимо;
  • Apache 2.4.4 — всё вышеперечисленное мы будем раскручивать под самой современной на момент последней правки данной статьи версией Апача;
  • JetBrains PhpStorm 6 — лично для меня он удобнее, чем бесплатные аналоги, а также он прекрасно интегрирован с PHP, хотя и будут нюансы.
Читайте также:  Align text height html

Ставим PHP 5.4

  1. логинимся под учетной записью с административными правами;
  2. windows.php.net/download/#php-5.4 — качаем zip-архив VC9 x86 (http://windows.php.net/downloads/releases/php-5.4.15-Win32-VC9-x86.zip ); любители жесткого хардкора могут скачать соответствующий Debug Pack, но у меня предложенная сборка пока ни разу не упала;
  3. распаковываем содержимое zip-архива в папку «C:\Program Files (x86)\PHP\v5.4» (думаю, гипотетический инсталлятор поставил бы всё именно туда);
  4. внутри полученной папки запускаем скрипты «pws-php5cgi.reg» и «pws-php5isapi.reg» (это не обязательно, но так PHP пропишется в IIS и даст возможность захостить ваш шедевр);
  5. копируем «php.ini-development» в «php.ini»
  6. открываем «php.ini», находим там блок:
; 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 содержит информацию о поддерживаемых зонах):

[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = "Europe/Moscow" 

Ставим XDebug 2.2.2

  1. вроде мы уже залогинены под админом…
  2. xdebug.org/download.php — качаем 5.4 VC9 (32 bit), который без суффикса TS xdebug.org/files/php_xdebug-2.2.2-5.4-vc9.dll — это как раз для многопоточного PHP 5.4; это сразу .dll, поэтому браузер может выразить сомнение в целесообразности скачивания — убедите его;
  3. скаченный файл кладем в папку «C:\Program Files (x86)\PHP\v5.4\ext»— в этой папке лежат все расширения PHP;
  4. открываем php.ini (любым редактором, но обязательно в режиме Run as administrator…, иначе наши правки не удастся сохранить) и добавляем блок:
[XDebug] ; http://xdebug.org/wizard.php zend_extension = ext\php_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:\Temp\XDebugProfiler" 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)\PHP\v5.4\php.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)\PHP\v5.4\php.ini and change the line
zend_extension = ext\

Ставим PHPUnit

  1. pear.php.net/go-pear.phar — скаченный файл кладем в папку «C:\Program Files (x86)\PHP\v5.4» (phar — это файл с дистрибутивом приложения, запустить дистрибутив можно командой «php file_name.phar» в консоли);
  2. запускаем command prompt от имени администратора, переходим в папку «C:\Program Files (x86)\PHP\v5.4» и вызываем команду «php go-pear.phar», на вопросы скрипта отвечаем «system», в следующем вопросе нажимаем Enter (или принимаем все локации директорий по умолчанию), позволяем отредактировать php.ini (инсталлятор пропишет «C:\Program Files (x86)\PHP\v5.4\pear в качестве инклюд-пути»);
  3. в результате выполнения предыдущего пункта появляется система управляния PHP-паками (аналогично NuGet для Студии), которая использует онлайн-репозитории — добавим туда репозиторий PHPUnit, введя в command prompt (под админом) команду «pear channel-discover pear.phpunit.de» (не смотря на прокси, у меня всё получилось, в противном случае проверьте правильность настроек прокси-сервера в Винде и его работоспособность);
  4. если в command prompt ввести команду «pear remote-list -c phpunit», то станет ясно, что помимо самого PHPUnit там есть много других печенек, но пока мы поставим только саму основу, а дополнительные модули будем добавлять по мере необходимости: «pear install phpunit/phpunit»;

Обновление PHPUnit и других модулей, установленных с помощью PEAR, делается командой «pear upgrade-all». Вообще, рекомендую почитать инструкцию по PEAR. Опытного разработчика она непременно наведёт на размышления о том, чтобы распространять свои труды не закачкой по FTP, а с использованием всё того же PEAR.

Ставим Apache 2.4

Лично у меня забиты порты 80 (IIS), 8080 (TFS) и 8000 (HTTP proxy). По этой причине я поставил Apache слушать порт 8085. Здесь будут приведены настройки для Apache на порт 8085. Также в качестве корневых директорий я использую «d:\www\Apache».

У Апача под Винду есть отдельный сайт www.apachelounge.com, откуда можно скачать самый свежак. Поскольку PHP у нас x86, то и все .dll-файлы у него x86, поэтому и Apache придется ставить x86.

  1. www.apachelounge.com/download — Качаем httpd-2.4.4-win32.zip и распаковываем содержимое папки «Apache24» архива в папку «C:\Program Files (x86)\Apache24»;
  2. открываем на редактирование (под админом) файл C:\Program Files (x86)\Apache24\conf\httpd.conf
  3. находим настройку ServerRoot и ставим
ServerRoot "C:/Program Files (x86)/Apache24" 
DocumentRoot "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 
LoadModule php5_module "C:/Program Files (x86)/PHP/v5.4/php5apache2_4.dll"
 PHPIniDir "C:/Program Files (x86)/PHP/v5.4" AddHandler application/x-httpd-php .php 
 DirectoryIndex index.php index.html 
"C:\Program Files (x86)\Apache24\bin\httpd" -k install 

Настраиваем PhpStorm 6

www.jetbrains.com/phpstorm — качаем, ставим, запускаем PhpStorm 6 (у него есть месяц триала, лично мне этого более чем хватило для приобретения).

Устанавливаем интеграцию с TFS (опционально)

К работе с TFS из среды PhpStorm, как и из других продуктов, использующих среду Idea, придется привыкать. Терминология и поведение существенно отличается от оных в Visual Studio. Тем не менее, пользоваться интеграцией гораздо удобнее. чем бегать в Visual Studio за каждым файлом.

  1. На экране должно быть стартовое окно PhpStorm, если вместо этого окна отображается среда разработки, закрываем текущий проект;
  2. в правой области стартового окна выбираем Configure/Plugins Идём в File/Settings;
    Из среды разработки эта настройка доступна из меню File/Settings. В левой части окна отображается список настроек как проекта, так и среды вцелом. Нужно будет выбрать настройк среды Plugins.
    «Настройки проекта» — настройки из списка с заголовком Project Settings,
    «Настройки среды» — настройки из списка с заголовком IDE Settings.
  3. в открывшемся списке плагинов убеждаемся, что плагин «TFS Integration» не установлен (по умолчанию он не входит в поставку PhpStorm) и нажимаем кнопку «Install JetBrains plugin» (внизу окна);
  4. в окне поиска вбиваем «TFS» и щелкаем два раза на строке с плагином «TFS Integration», на вопрос о намерении скачать плагин отвечаем твердым «Yes»;
  5. дожидаемся окончания установки плагина, закрываем окна настроек и перезапускаем PhpStorm, чтобы свежеустановленный плагин заработал.
Создаём или открываем проект
  1. В папке D:\www\Apache создаём новый пустой проект, или открываем уже имеющийся
    Помним, что сервер Apache у нас настроен на поддиректорию web, а значит и сам сайт будет находиться в папке web проекта. В будущем рядом с web помимо настроек проекта .idea могут появиться такие подпапки, как vendor для хранения сторонних разработок, test для скриптов тестирования и прочие подпапки для работы фреймворков.
  2. если сайт пустой, то создаём на сайте простейшую страницу index.php с содержимым типа
Настраиваем php-сервер в PhpStorm
  1. В настройках проекта открываем настройку PHP и настраиваем там:
    PHP language level: 5.4
    Interpreter: нажимаем «…», указываем Name: PHP 5.4, PHP Home: C:\Program Files (x86)\PHP\v5.4, Debugger: Xdebug;
    Include path: нажимаем «+» и указываем «C:\Program Files (x86)\PHP\v5.4\pear», чтобы наш проект автоматически подтягивал ранее установленный PHPUnit.
  2. в настройках проекта открываем PHP/Servers — откроется закладка с пустым списком серверов;
  3. нажимаем «+» для добавления нового сервера и заполняем его данные:
    Name: Local Apache
    Host: localhost
    Port: 8085
    Debugger: Xdebug
  4. если в конфигурации Xdebug указан порт, отличный от 9000, то идем в настройки проекта PHP/Debug и там в разделе «Xdebug» настраиваем «Debug port»;
  5. в настройках проекта открываем PHP/PHPUnit и убеждаемся, что там указано «Load from include path».
Настраиваем web-приложение
  1. В меню «Run/Edit Configurations» щелкаем на «+», выбираем «PHP Web Application» и заполняем его данные:
    Name: My Application at Local Apache
    Server: Local Apache
    Start URL: стартовая страница (index.php)
    Browser: я выбрал Chrome, но для каждой конкретной страницы есть опция запуска в любом браузере
Запускаем отладку
  1. Ставим на какую-нибудь инструкцию брэйкпоинт;
  2. в меню «Run/Debug» выбираем «My Application at Local Apache» — запустится отладка сайта;
  3. убеждаемся, что выполнение php-скрипта прервалось на брэйкпоинте, и нам доступны все прелести дебагера.

Заключение

Пользователям MS Visual Studio придется немного привыкнуть к тому, что нажатие кнопки Run при включенном дебагере приводит не к продолжению исполнения текущего скрипта, а к открытию в браузере новой закладки, новому запросу на сервер и отключению отладки, но даже с такими отличиями процесс отладки протекает довольно легко.

Конечно, только удобной среды разработки не достаточно для создания хорошего продукта. Рекомендую почитать habrahabr.ru/post/174963 — статью, в которой кратко изложены основные грабли, на которые натыкаются разработчики в первых проектах. Если же у вас уже есть успешный опыт разработки крупных проектов на других платформах, старайтесь искать на платформе PHP похожие решения, или приносите свои идеи.

Источник

Оцените статью