// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Настройка PHP, Apache, MySQL и Xdebug для разработки приложений на PHP в MAC OS X
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Настройка PHP, Apache, MySQL и Xdebug для разработки приложений на PHP в MAC OS X - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Настройка PHP, Apache, MySQL и Xdebug для разработки приложений на PHP в MAC OS X

Этот учебный курс содержит инструкции по настройке PHP для пакета link:http://www.mamp.info/en/index.php[+MAMP+] (*M*acintosh,* A*pache, *M*ySQL, *P*HP), который включает в себя веб-сервер Apache, сервер баз данных MySQL и модуль PHP. MAMP - среда разработки на PHP для Mac, полностью совместимая с NetBeans IDE.

link:http://www.Xdebug.org/[+Xdebug+] - расширение для PHP, используемое для предоставления ценной информации для отладки сценариев PHP. Отладчик NetBeans работает поверх расширения Xdebug, что обеспечивает эффективный механизм отладки для среды разработки.

*Для работы с этим учебным курсом требуются программное обеспечение и ресурсы, перечисленные ниже.*

|===
|Программное обеспечение или ресурс |Требуемая версия 

|link:https://netbeans.org/downloads/index.html[+IDE NetBeans+] |Пакет загрузки PHP 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Комплект для разработчика на языке Java (JDK)+] |7 или 8 

|link:http://www.mamp.info/en/download.html[+MAMP+] |1.7.x 

|link:http://www.Xdebug.org/download.php[+Xdebug+] (не обязательно) |2.x 
|===

NOTE: В пакет MAMP входят веб-сервер Apache, модуль PHP и база данных MySQL. Mac OS X 10.5 и более поздние версии включают в себя базу данных MySQL и сервера Apache с поддержкой PHP. Разумеется, встроенную базу данных и сервер можно настроить и в IDE, но универсальный пакет MAMP представляет собой более удобное и простое решение.


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

1. Загрузите последнюю версию link:http://www.mamp.info/en/download.html[+MAMP+].
2. Распакуйте загруженный архив и запустите файл `.dmg`. Когда отобразится экран установщика, переместите MAMP в папку `/Applications`. 

image::images/mamp-install.png[title="На экране установщика MAMP отображаются компоненты MAMP и MAMP-Pro"]


[start=3]
. Перейдите в папку `/Applications/MAMP` и дважды щелкните файл `MAMP.app`. Открывается панель управления MAMP. 

Также можно установить виджет панели управления MAMP, следуя инструкциям в файле `MAMP/README.rtf`. С помощью этого виджета можно будет запускать и останавливать серверы. 

image::images/mamp-control-panel.png[]


[start=4]
. Нажмите "Предпочтения". На открывшейся панели "Предпочтения" перейдите на вкладку "Порты".

[start=5]
. Выберите параметр "Значения умолчанию" для портов Apache и MySQL. Для порта Apache устанавливается значение 80, а для порта MySQL - 3306. 

image::images/mamp-control-panel-preferences-ports.png[title="Панель управления MAMP со вкладкой "Порты", на которой установлены значения портов по умолчанию"]


== Регистрация базы данных MySQL для MAMP

База MySQL, включенная в состав пакета MAMP, по умолчанию находится в каталоге `/Applications/MAMP/db/MySQL`. В качестве имени пользователя и пароля по умолчанию используется значение `root`. Эти данные можно проверить на странице приветствия MAMP, которая открывается в браузере при запуске MAMP.

IDE взаимодействует с базами данных в окне "Службы" (⌘-5). Базу данных MySQL для MAMP можно зарегистрировать следующим образом:

1. Щелкните правой кнопкой мыши узел "Базы данных > MySQL Server" и выберите "Свойства". Отображается диалоговое окно "Свойства MySQL Server". В этом диалоговом окне можно настроить все параметры MySQL.
2. Введите имя хоста для сервера баз данных, номер порта, имя пользователя и пароль. Все эти данные отображаются на странице приветствия MAMP при запуске сервера и базы данных. При локальном запуске MAMP по умолчанию используются следующие параметры: 

* *Имя хоста для сервера: *`localhost`
* *Номер порта сервера: *`3306`
* *Имя администратора: *`root`
* *Пароль администратора: *`root`

image::images/mysql-basic-properties.png[title="В диалоговом окне "Основные свойства MySQL" можно настроить параметры подключений MAMP, используемые по умолчанию"]


[start=3]
. Перейдите на вкладку "Администрирование", где можно настроить параметры запуска и останова сервера баз данных в IDE. Сценарии оболочки MAMP хранятся в папке `bin`. Здесь находятся сценарии для запуска и останова серверов. Вы можете выбрать путь к средствам администрирования и связать IDE с файлом `MAMP.app`, чтобы в дальнейшем запускать панель управления MAMP из IDE. Для этого введите путь `/Applications/MAMP/MAMP.app`. В качестве альтернативы можно использовать инструмент link:http://dev.mysql.com/downloads/workbench/[+MySQL Workbench+], предоставляющий интуитивный графический интерфейс для выполнения административных задач, таких как настройка и мониторинг сервера MySQL, управление пользователями и подключениями, создание резервных копий и т. д. Чтобы использовать инструмент MySQL Workbench, необходимо сначала загрузить и установить его, а затем ввести в диалоговом окне следующие параметры: 

* *Путь/URL средства администрирования: *`/Applications/MySQL Tools/MySQLWorkbench.app` _(папка установки MySQL Workbench по умолчанию)_
* *Путь для команды запуска: *`/Applications/MAMP/bin/startMysql.sh`
* *Путь для команды останова: *`/Applications/MAMP/bin/stopMysql.sh`

image::images/mysql-admin-props.png[title="В диалоговом окне "Администрирование MySQL" можно настроить примерные параметры администрирования"]


[start=4]
. Если в качестве инструмента администрирования сервера MySQL планируется использовать MySQL Workbench, необходимо указать сокет для подключения к базе данных MAMP. Запустите MySQL Workbench. В разделе "Администрирование сервера" на главной странице выберите "Новый экземпляр сервера".

image::images/mysql-workbench-home.png[]


[start=5]
. Отображается диалоговое окно "Создать профиль нового экземпляра сервера". Выберите метод подключения "Локальный сокет/канал" и укажите путь к файлу сокета на вкладке "Параметры". По умолчанию сокет находится в папке `/Applications/MAMP/tmp/mysql/mysql.sock`. 

image::images/socket-path.png[]


[[phpProject]]
== Создание проектов PHP

Для создания проектов PHP в IDE с использованием ресурсов MAMP необходимо настроить IDE таким образом, чтобы она копировала ваши ресурсы в папку Apache `htdocs`. В этом случае при сохранении изменений в файлах будет автоматически обновляться исходный код развернутой версии.

Например, можно создать новый проект PHP с помощью мастера новых проектов (нажмите значок "Создать проект" на панели инструментов IDE ( image:images/new-project-icon.png[] ). На третьем экране мастера "Конфигурация запуска" выберите параметр "Копировать файлы из исходной папки в другое расположение" и укажите путь к папке `htdocs`.

[.feature]
--
image::images/new-php-project.png[role="left", link="images/new-php-project.png"]
--

IDE запоминает указанный путь и использует его в последующих проектах. Более подробные инструкции по созданию проектов PHP в NetBeans IDE см. в разделе link:project-setup.html[+Настройка проекта PHP+].


== Включение расширения Xdebug в MAMP

В пакет MAMP входит заранее скомпилированный файл  ``xdebug.so`` . Чтобы использовать этот файл, необходимо включить его поддержку в файле MAMP  ``php.ini`` . Расширение Xdebug несовместимо с Zend Optimizer, поэтому необходимо отключить Zend Optimizer в том же файле  ``php.ini`` .

*Чтобы включить расширение Xdebug в MAMP:*

1. Откройте файл `php.ini` в редакторе. Этот файл находится в папке 

`/Applications/MAMP/conf/php5/php.ini`.

[start=2]
. Найдите раздел  ``[Zend]``  и закомментируйте в нем все строки.

[source,ini]
----

;[Zend]
;zend_optimizer.optimization_level=15
;zend_extension_manager.optimizer=/Applications/MAMP/bin/php5/zend/lib/Optimizer-3.3.3
;zend_optimizer.version=3.3.3
 
;zend_extension=/Applications/MAMP/bin/php5/zend/lib/ZendExtensionManager.so
----

[start=3]
. Найдите раздел  ``[xdebug]``  и активируйте Xdebug (замените `xxxxxxxx` фактическим номером). Добавьте в конец файла  ``php.ini``  следующий раздел (если он отсутствует).

[source,ini]
----

[xdebug]
 
xdebug.default_enable=1
 
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1
 
zend_extension="/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-xxxxxxxx/xdebug.so"
----
Пояснения см. в разделе "Связанные настройки" документа link:http://www.Xdebug.org/docs/remote[+Удаленная отладка Xdebug+].

[start=4]
. Обратите внимание, что на предыдущем этапе был указан удаленный порт Xdebug 9000. Этот порт отладчика используется в NetBeans по умолчанию. Чтобы проверить номер порта, выберите "NetBeans > Предпочтения" в главном меню, затем выберите PHP в окне "Параметры". 

image::images/php-options68.png[title="Порт отладки можно указать в окне "Параметры PHP""] 

При необходимости здесь можно изменить порт отладчика.

[start=5]
. Откройте панель управления MAMP и перейдите на вкладку "PHP". Снимите флажок для параметра Zend Optimizer. 

image::images/mamp-control-panel-preferences-php.png[title="Панель управления MAMP со вкладкой "Порты", на которой установлены значения портов по умолчанию"]


[start=6]
. Запустите (или перезапустите) сервер Apache MAMP.


== Отладка проектов PHP

Чтобы выполнить отладку проекта PHP в IDE, щелкните проект правой кнопкой мыши в окне "Проекты" и выберите "Отладка". Также, если проект выбран в окне "Проекты", можно нажать значок "Отладка проекта" ( image:images/debug-icon.png[] ) на основной панели инструментов.

Если требуется временно приостановить отладчик на первой строке кода, включите соответствующий параметр в окне <<phpOptions,Параметры PHP>>.

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

image::images/debugger-toolbar.png[title="Панель инструментов отладчика в приостановленном состоянии"]

Чтобы проверить, активен ли сеанс отладки PHP, также можно открыть окно "Сеансы". Выберите "Окно > Отладка > Сеансы" в главном меню.

image::images/debugger-sessions-win.png[title="Информация в окне "Сеансы" указывает на то, что сеанс отладчика Xdebug активен"]


link:/about/contact_form.html?to=3&subject=Feedback:%20Configuring%20PHP%20on%20Mac%20OS[+Отправить отзыв по этому учебному курсу+]



== См. также

Для получения дополнительных сведений о технологии PHP на сайте link:https://netbeans.org/[+netbeans.org+] можно воспользоваться следующими материалами:

* link:project-config-screencast.html[+Редактор PHP в NetBeans IDE 6.9-7.0+]. Экранная демонстрация поддержки нового редактора PHP.
* link:debugging.html[+Отладка исходного кода PHP+] В этом документе описан процесс отладки исходного кода в IDE с помощью Xdebug.
* link:wish-list-tutorial-main-page.html[+Создание приложения CRUD+]. Этот учебный курс, состоящий из 9 частей, включает в себя демонстрации и инструкции по созданию приложений CRUD с помощью редактора PHP в IDE.
* link:remote-hosting-and-ftp-account.html[+Развертывание приложения PHP на удаленном веб-сервере+]. Этот документ содержит инструкции по развертыванию приложений PHP на удаленном сервере с хостинговой учетной записью.

Для отправки комментариев и предложений, получения поддержки и новостей о последних разработках, связанных с PHP IDE NetBeans link:../../../community/lists/top.html[+присоединяйтесь к списку рассылки users@php.netbeans.org+].

