// 
//     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 на удаленном веб-сервере с помощью IDE NetBeans
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Развертывание приложения PHP на удаленном веб-сервере с помощью IDE NetBeans - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Развертывание приложения PHP на удаленном веб-сервере с помощью IDE NetBeans

Обычно приложение PHP выполняется на удаленном сервере. Доступ к его файлам осуществляется по протоколу FTP (File Transfer Protocol, протокол передачи файлов).

WARNING: NetBeans предоставляет базовую поддержку протокола FTP/SFTP, достаточную для разработки простого проекта одним разработчиком. Если же вы работаете над сложным проектом или в команде нескольких разработчиков, следует использовать систему контроля версий. IDE NetBeans поддерживает несколько систем управления версиями. Для примера обратитесь к нашим учебным курсам по link:../ide/subversion.html[+Subversion+] и link:../ide/git.html[+Git+]. Если необходимо использовать протокол FTP/SFTP для развертывания сложного проекта, можно использовать среду IDE в сочетании с полнофункциональным клиентом FTP и редактировать проект PHP в среде IDE как локальный веб-сайт.

*JDK 7 + Windows 7/Vista:* Брандмауэр ОС Windows 7 и Windows Vista иногда блокируют некоторые операции по FTP, запускаемые JDK 7. Варианты решения этой проблемы приведены на link:http://forums.netbeans.org/post-115176.html#113923[+форуме NetBeans+].

Для развертывания приложения PHP на удаленном сервере необходимо зарегистрировать учетную запись у поставщика услуг по размещению. Можно также развернуть базу данных MySQL на удаленном сервере, на котором имеется учетная запись размещения.

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


image::images/netbeans-stamp-80-74-73.png[title="Содержимое этой страницы применимо к IDE NetBeans 7.2, 7.3, 7.4 и 8.0"]


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

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

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

|Механизм PHP |Версия 5 

|Учетная запись размещения и 
учетная запись FTP на удаленном сервере |Например, link:http://x10hosting.com/[+x10Hosting+] 
предоставляет бесплатное размещение учетной записи FTP. 

|Отладчик PHP (не обязательно) |link:http://www.xdebug.org[+Версия XDebug 2.0 или выше+] 
|===


== Установка настройки выполнения проектов PHP, предназначенных для удаленного размещения

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

Для активации выполнения приложения PHP на удаленном веб-сервере следует установить настройку выполнения, содержащую профиль подключения FTP.

Если проект с настройкой выполнения по умолчанию уже имеется, и требуется добавить новую настройку удаленного выполнения, link:project-setup.html#managingProjectSetup[+настройте проект+] следующим образом:

1. Щелкните правой кнопкой мыши узел проекта и выберите "Свойства" во всплывающем меню. Откроется панель "Свойства проекта".
2. Из списка "Категории" выберите "Настройки выполнения". Откроется панель "Настройки выполнения".
3. <<chooisngRunConfigurationType,Выберите тип настройки выполнения>> и <<specifyFTPConnectionSettings,укажите параметры подключения (S)FTP>>, как описано в приведенных ниже разделах.

Создание проекта NetBeans для приложения PHP на удаленном сервере или создание нового проекта, в котором по умолчанию используется конфигурация выполнения на удаленном сервере:

1. Запустите среду IDE и выберите команду "Файл -> Создать проект". Откроется панель "Создать проект".
2. Выберите PHP в меню "Категории", затем выберите "Приложение PHP с удаленного сервера". Затем нажмите кнопку "Дальше". Откроется панель "Имя и местоположение".
3. Укажите имя проекта, местоположение исходных файлов приложения, а также (дополнительно) местоположение внутренних файлов проекта. Нажмите кнопку "Далее". Откроется панель "Настройки выполнения".
4. <<specifyFTPConnectionSettings,Укажите параметры подключения FTP>> в соответствии с описанием, приведенным ниже.


=== Выбор типа настройки выполнения

На панели "Настройки выполнения" выберите "Удаленный веб-сайт (FTP, SFTP)" из раскрывающегося списка "Выполнить как". Отобразится скрытая область для указания параметров настройки.

При создании проекта с приложением PHP из мастера удаленного сервера выбирать команду из списка "Выполнение" не нужно. Мастер автоматически переведет вас на панель "Удаленное подключение". Эта панель содержит поля "URL-адрес проекта", "Удаленные подключения" и "Выгрузить каталог".

image::images/ftp-run-config-blank.png[]


=== Указание параметров настройки подключения (S)FTP

Для создания подключения FTP выполните следующие действия.

1. Нажмите кнопку "Управление" рядом с раскрывающимся списком "Подключение FTP". Отобразится диалоговое окно "Управление удаленными подключениями".
2. Нажмите кнопку "Add". Откроется диалоговое окно "Создание нового подключения". (Если подключение настраивается впервые, диалоговое окно может открыться автоматически).
3. В поле "Имя подключения" введите имя нового подключения. В этом примере именем подключения является  ``x10hosting`` . В раскрывающемся списке "Тип" выберите "FTP" или "SFTP". Нажмите кнопку "ОК". В поле просмотра "Имя подключения" диалогового окна "Управление удаленными подключениями" отображается имя нового подключения.
4. В поле 'Имя узла' введите имя сервера FTP, указанное в сообщении, подтверждающем создание учетной записи FTP. В этом примере используется сервер FTP  ``nbuser.x10.mx`` .
5. В поле "Порт" укажите 21.
6. В поле 'Имя пользователя' введите имя пользователя FTP, указанное в сообщении, подтверждающем создание учетной записи FTP. В этом примере используется имя пользователя FTP  ``nbuser`` .
7. Заполните поле "Пароль". В этом примере паролем является  ``qwerty1234`` .
8. В поле "Начальный каталог" введите имя каталога учетной записи на сервере FTP. Если каталог учетной записи не указан (как в этом примере), введите в это поле косую черту. 

image::images/manageremoteconnections.png[]


[start=9.]
. Нажмите кнопку "ОК". Будет выполнен возврат к панели "Настройки выполнения".

[start=10.]
. В поле "Каталог загрузки" введите имя подпапки в начальном каталоге, куда впоследствии будут выгружены исходные файлы. В запросе под этим полем содержится URL-адрес узла FTP.

[start=11.]
. Для завершения настройки нового проекта нажмите кнопку "Готово".


== Выгрузка исходных файлов на удаленный сервер

После выбора удаленного подключения для проекта выберите способ загрузки исходных файлов на сервер: при выполнении, при сохранении или вручную.

* *При выполнении:* исходные файлы загружаются на сервер при выполнении проекта.
* *При сохранении:* каждое изменение (создание, правка, переименование, удаление) немедленно воспроизводится на удаленном сервере. Если операция занимает более 1 секунды, отображается индикатор выполнения.
* *Вручную:* автоматическая загрузка файлов не выполняется. В этом случае следует пользоваться функцией загрузки в ручном режиме, описанной в данном разделе.

image::images/ftp-run-config.png[]

Для выгрузки файлов этого проекта на сервер FTP в ручном режиме щелкните правой кнопкой мыши узел "Исходные файлы" проекта и выберите "Загрузить". Следует отметить, что это меню также позволяет загружать файлы с сервера FTP.

image::images/beta-source-upload.png[]

В начале загрузки файлов открывается диалоговое окно с древовидным представлением исходных файлов. В этом диалоговом окне можно выбрать отдельные файлы для загрузки или отказа от загрузки. Дополнительные сведения о диалоговом окне загрузки файлов приведены в link:http://blogs.oracle.com/netbeansphp/entry/new_download_upload_dialog[+записи блога NetBeans PHP+].

image::images/file-upload-dialog.png[]

Во время загрузки файлов результаты загрузки отображаются на вкладке "Вывод".

image::images/upload-output.png[]


[[remote-synchronization]]
== Удаленная синхронизация

Разработчики, которым необходимо использовать (S)FTP в нескольких средах разработки без правильной версии системы управления версиями IDE NetBeans обеспечивает удаленную синхронизацию. Удаленная синхронизация позволяет сравнить локальную копию файлов проекта с копиями на сервере (S)FTP. Вы можете загрузить локальные копии на сервер или загрузить копию с сервера на локальный компьютер. При обновлении копии на сервере после начала работы с локальной копией в IDE NetBeans создается предупреждение о конфликте файлов. При наличии конфликтов файлов IDE NetBeans позволяет различать локальную версию и версию на сервере и определить версию, принимаемую на построковой основе.

*Предупреждение. *Удаленная синхронизация никогда не бывает надежной на 100%, поскольку временные метки FTP-серверах не являются надежными на 100%. Системы контроля версиями являются более безопасном решением.

*Внимание! *Удаленная синхронизация работает более надежно, когда она выполняется для всего проекта. Вы можете выполнять удаленную синхронизацию отдельных файлов, но риск при этом выше.

*Выполнение удаленной синхронизации*

1. В окне 'Проекты' (Ctrl-1) разверните узел для проекта PHP, который необходимо синхронизировать. Щелкните правой кнопкой мыши узел "Исходные файлы". Появится контекстное меню с параметром 'Синхронизация'. 

image::images/sync-ctxmenuitem.png[]


[start=2.]
. Выберите 'Синхронизация'. IDE извлекает имена файлов и пути с удаленного сервера и открывает диалоговое окно 'Удаленная синхронизация'.

Диалоговое окно 'Удаленная синхронизация', в котором отображается таблица файлов проекта. Удаленные версии в файлах находится слева, а локальные версии справа. В центральном столбце находится значок, указывающий операцию, выполняемую IDE при синхронизации. Значки предупреждения расположены по левому краю. Сводка операциям и проблемам отображается в нижней части таблицы. Подробное описание всех ошибок отображается под таблицей. Над таблицей находятся наборы флажков для фильтрации проблем и операций, отображаемых в диалоговом окне. Для получения более подробных данных об этом диалоговом окне щелкните 'Справка'.

image::images/main-dialog.png[]



[start=3.]
. Выберите в таблице несколько элементов. В нижней части страницы в сводке теперь отображаются только эти элементы.

image::images/multiple-items.png[]


[start=4.]
. Щелкните правой кнопкой мыши выбранные элементы. Откроется контекстное меню с возможными операциями. 

image::images/context-menu.png[]


[start=5.]
. Если у элемента имеется значок ошибки 'Разрешение конфликтов' выберите этот элемент. Описание ошибки отображается в нижней части таблицы.

image::images/error-item.png[]


[start=6.]
. Выберите элемент с ошибкой. Выберите 'Различия...' image:images/diff-icon.png[] из ряда кнопок или из контекстного меню. Откроется диалоговое окно "Различия". В этом диалоговом окне с помощью прокрутки перейдите к каждому различию между удаленной и локальной версиями файла. В графическом представлении млжно применить или отклонить удаленные изменения локального файла. Если файл необходимо отредактировать вручную, перейдите на вкладку 'Текстовый'. После завершения работы с различиями нажмите кнопку ОК. Будет выполнен возврат в диалоговое окно удаленной синхронизации. Операция для файла изменится на 'Загрузку' и файл будет помечен звездочкой для указания его изменения.

image::images/diff.png[]


[start=7.]
. При отсутствии конфликтов щелкните 'Синхронизация'. Если выбрано 'Показать сводку до запуска', отображается сводка по синхронизации, что позволяет просмотреть операции еще раз до выполнения синхронизации. Если все операции выбраны правильно, нажмите OK.

image::images/sync-summary.png[]

Среда IDE выполнит синхронизацию. Ход выполнения синхронизации можно отслеживать в окне, открытом в IDE.

image::images/sync-progress.png[]


== Выполнение приложения PHP


Для выполнения приложения PHP на удаленном сервере выполните следующие действия.

1. Убедитесь, что на панели "Свойства" в <<chooisngRunConfigurationType,раскрывающемся списке "Выполнить как">> выбран пункт "Удаленный веб-сайт".
2. Проверьте параметры настройки "Настройки выполнения".
3. Если проект выбран в качестве главного, выберите image:images/run-main-project-button.png[] на панели инструментов.
4. Если проект не выбран в качестве главного, установите курсор на узел проекта и выберите "Выполнить" во всплывающем меню.


[[remote-mysql-database]]
== Использование удаленной базы данных MySQL

Службы удаленного размещения (например, x10Hosting.com), как правило, позволяют настраивать базу данных MySQL на собственных серверах. Можно создавать базы данных, управлять данными пользователей, копировать, считывать, обновлять и удалять ("CRUD") различные данные при помощи средств, предоставляемых службой удаленного размещения.

Например, при использовании сайта x10Hosting.com можно создать базу данных MySQL. Для этого сначала необходимо зарегистрироваться на x10Hosting cPanel , а затем открыть панель "Базы данных MySQL". На панели "Базы данных MySQL" можно также вносить данные пользователей в базы данных и предоставлять отдельным пользователям полномочия. Кроме того, можно использовать средства "CRUD" на панели "phpMyAdmin".

Альтернативой работе с инструментами CRUD удаленной базы данных является использование функций CRUD IDE NetBeans для работы с локальной базой данных. Затем локальную базу данных можно скопировать или переместить в удаленную базу данных. На сайте x10Hosting.com для выгрузки локальной базы данных можно использовать имеющуюся панель "phpMyAdmin".

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


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

link:../../trails/php.html[+Возврат к учебной карте+]

