// 
//     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.
//

= Implantando uma Aplicação PHP em um Servidor Web Remoto Utilizando o NetBeans IDE
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Implantando uma Aplicação PHP em um Servidor Web Remoto Utilizando o NetBeans IDE - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Implantando uma Aplicação PHP em um Servidor Web Remoto Utilizando o NetBeans IDE

Normalmente, uma aplicação PHP real é executada em um servidor remoto. Aplicações remotas são acessadas por um sistema de controle de versão ou por um Protocolo de Transferência de Arquivos (FTP).

WARNING: o NetBeans oferece suporte básico a FTP/SFTP, o suficiente para um desenvolvedor trabalhar sozinho em um projeto simples. Se estiver trabalhando em um projeto complexo com diversos desenvolvedores, é importante usar um sistema de controle de versão. O NetBeans IDE suporta uma série de sistemas de controle de versão. Consulte nossos tutoriais link:../ide/subversion.html[+Subversion+] e link:../ide/git.html[+Git+], por exemplo. Se for necessário o uso de FTP/SFTP com um projeto complexo, considere usar o IDE em conjunto com um cliente de FTP completo e edite o projeto PHP no IDE como um web site local.

*JDK 7 + Windows 7/Vista:* o firewall do Windows 7 e o Windows Vista bloqueia algumas operações do FTP que são acionadas pelo JDK 7. Consulte o link:http://forums.netbeans.org/post-115176.html#113923[+fórum NetBeans+] para a solução desse problema.

Para implantar a aplicação PHP em um servidor remoto, você precisará registrar uma conta em um provedor de hospedagem. Você também pode implantar um banco de dados MySQL no servidor remoto em que você tem uma conta de hospedagem.

Todos os nomes de usuário, senhas e endereços de e-mail são fictícios e utilizados somente como exemplos. A administração da hospedagem bloqueia uma conta, se o usuário não aparecer no fórum por mais de uma semana. Assim, você pode falhar em aplicar exatamente os mesmos nomes de usuário, senhas, endereços de e-mail e outras credenciais do tutorial.


image::images/netbeans-stamp-80-74-73.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.2, 7.3, 7.4 e 8.0"]


*Para seguir este tutorial, são necessários os recursos e o software a seguir.*

|===
|Software ou Recurso |Versão Necessária 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |Pacote de download do PHP 

|Um mecanismo PHP |Versão 5 

|Uma conta de hospedagem e 
uma conta FTP em um servidor remoto |Por exemplo, link:http://x10hosting.com/[+x10Hosting+] 
fornece hospedagem em conta FTP gratuita. 

|Um depurador do PHP (opcional) |link:http://www.xdebug.org[+XDebug 2.0 ou superior+] 
|===


== Definindo a Configuração de Execução para Projetos PHP a Serem Hospedados Remotamente

Se você tiver uma conta de hospedagem em um servidor Web remoto e uma conta FTP para transferir os arquivos de código-fonte para o servidor remoto, poderá criar e depurar o seu projeto PHP localmente e, em seguida, implantar no servidor remoto. Com o conceito de Configurações de Execução, você pode alternar entre esses fluxos de trabalho no mesmo projeto NetBeans PHP, alterando o tipo de Configuração de Execução de Web Site Local para web Site Remoto.

Para ativar a execução de uma aplicação PHP em um servidor remoto, você precisa definir uma configuração de execução que contenha um perfil de conexão FTP.

Se você já tiver um projeto com uma configuração de execução default e desejar adicionar uma nova configuração de execução remota, link:project-setup.html#managingProjectSetup[+personalize o seu projeto+]:

1. Clique com o botão direito do mouse no nó do projeto e escolha Propriedades no menu pop-up. O painel Propriedades do Projeto será aberto.
2. Na lista Categorias, selecione Configuração de Execução. O painel Configuração de Execução será aberto.
3. <<chooisngRunConfigurationType,Escolha o tipo de configuração de execução>> e <<specifyFTPConnectionSettings,especifique as definições de conexão (S)FTP>> conforme descrito nas seções abaixo.

Para criar um projeto NetBeans para uma aplicação PHP em um servidor remoto ou para criar um novo projeto que utilize uma configuração de execução remota como default:

1. Inicie o IDE, selecione Arquivo -> Novo Projeto. O painel Novo Projeto será aberto.
2. Em Categorias, selecione PHP e, em Servidor Remoto, Aplicação PHP. Em seguida, clique em Próximo. O painel Nome e Localização é aberto.
3. Especifique o nome do projeto, o local dos arquivos de código-fonte da aplicação e o local dos arquivos internos do projeto (opcional). Clique em Próximo. O painel Configuração de Execução será aberto.
4. <<specifyFTPConnectionSettings,Especifique as definições da conexão FTP>> conforme descrito na seção abaixo.


=== Escolhendo o Tipo de Configuração de Execução

No painel Configurações de Execução, selecione Site Remoto (FTP, SFTP) na lista drop-down Executar Como. A área oculta para definir a configuração será exibida.

Se estiver criando um novo projeto com a aplicação PHP de um assistente de Servidor Remoto, não será necessário selecionar “Executar Como” na lista drop-down. O assistente automaticamente o leva para o painel Conexão Remota. Esse painel só tem os campos URL do Projeto, Conexões Remotas e Diretório de Upload.

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


=== Especificando as Definições da Conexão (S)FTP

Para criar uma conexão FTP:

1. Clique em Gerenciar ao lado da lista drop-down Conexão FTP. A caixa de diálogo Gerenciar Conexões Remotas será exibida.
2. Clique em Add. A caixa de diálogo Criar Nova Conexão será aberta. (Ela pode se abrir automaticamente, caso você esteja definindo sua primeira conexão.)
3. No campo Nome da Conexão, digite o nome da nova conexão. Neste exemplo, o nome da conexão é  ``x10hosting`` . Na lista drop-down Tipo, selecione FTP ou SFTP. Clique em OK. A caixa de diálogo Gerenciar Conexões Remotas será exibida com o nome da nova conexão no campo de exibição Nome da Conexão.
4. No campo Nome do Host, digite o nome do Servidor FTP conforme está escrito na mensagem de confirmação da criação da conta FTP. Neste exemplo, o servidor FTP é  ``nbuser.x10.mx`` .
5. No campo Porta, especifique 21.
6. No campo Nome de Usuário, digite seu Nome de usuário FTP conforme está escrito na mensagem de confirmação da criação da conta FTP . Neste exemplo, o nome de usuário do FTP  ``nbuser`` .
7. Preencha o campo Senha. Neste exemplo, a senha é  ``qwerty1234`` .
8. No campo Diretório Inicial, digite o nome do diretório da conta no servidor FTP. Neste exemplo, não há um diretório de conta especificado, digite uma barra no campo. 

image::images/manageremoteconnections.png[]



. Clique em OK. Você retornará para o painel Configuração de Execução.


. No campo Diretório de Upload, digite o nome da subpasta no diretório inicial onde será feito o upload do arquivos de código-fonte. O prompt abaixo do campo mostra o URL do host do FTP.


. Para concluir a configuração de um novo projeto, clique em Finalizar.


== Fazendo upload dos Arquivos de Código-Fonte em um Servidor Remoto

Após você escolher a conexão remota para seu projeto, selecione se deseja fazer upload dos seus arquivos de código-fonte na execução, ao salvar ou manualmente.

*Ao Executar:* os arquivos de Código-Fonte terão upload no servidor quando o projeto for executado.
*Ao salvar:* qualquer alteração (criar, editar, renomear, deletar) será imediatamente propagada para seu servidor remoto. Se a operação levar mais de 1 segundo, uma barra de andamento será mostrada.
*Manualmente:* os arquivos nunca terão upload automático. É preciso utilizar a função de upload do IDE, descrita nesta seção.

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

Para fazer upload manualmente dos arquivos do seu projeto para o servidor FTP, clique com o botão direito do mouse no nó Arquivos de Código-fonte do seu projeto e selecione Fazer Upload. Observe que você também pode fazer download de arquivos do servidor FTP no mesmo menu.

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

Quando você iniciar o upload de arquivos, será aberta uma caixa de diálogo com uma view em árvore dos arquivos de código-fonte. Nessa caixa de diálogo, você pode selecionar arquivos individuais para fazer ou não upload. Para obter mais informações, consulte a link:http://blogs.oracle.com/netbeansphp/entry/new_download_upload_dialog[+entrada do blog NetBeans PHP+] na caixa de diálogo Upload de Arquivo.

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

Durante o upload dos arquivos, os resultados do upload aparecem em uma guia de saída.

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


[[remote-synchronization]]
== Sincronização Remota

Para os desenvolvedores que tiverem que trabalhar em (S)FTP em ambientes de vários desenvolvedores sem o controle de versão adequado, o NetBeans IDE fornece sincronização remota. A sincronização remota permite comparar a cópia local dos arquivos do projeto com as cópias no servidor (S)FTP. Você pode fazer upload da cópia local no servidor ou fazer download da cópia do servidor na máquina local. Quando a cópia no servidor tiver sido atualizada depois de você ter começado a trabalhar na cópia locqal, o NetBeans IDE o avisa de um conflito de arquivos. Quando houver um conflito, o NetBeans IDE permite diferenciar a versão local da versão no servidor e decidir qual versão aceitar, linha a linha.

*Advertência:* a sincronização remota nunca é 100% confiável porque os timestamps nos servidores FTP não são 100% confiáveis. O controle de versão é uma solução mais segura.

*Cuidado:* a sincronização remota trabalha de maneira mais confiável quando você a executa em um projeto inteiro. Você pode executar a sincronização remota em arquivos individuais, mas aí o risco é mais alto.

*Para executar a sincronização remota:*

1. Na janela Projetos (Ctrl-1), expanda o nó do projeto PHP que deseja sincronizar. Clique com o botão direito do mouse no nó Arquivos de Código-Fonte. O menu de contexto aparecerá, incluindo a opção Sincronizar. 

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



. Selecione Sincronizar. O IDE recupera os nomes dos arquivos e os caminhos do servidor remoto e abre a caixa de diálogo Sincronização Remota.

A caixa de diálogo Sincronização Remota mostra uma tabela de arquivos do projeto. As versões remotas do arquivo estão à esquerda e as versões locais estão à direita. Na coluna do centro, está um ícone que mostra a operação que o IDE executará na sincronização. Os ícones de advertência estão bem à esquerda. Um resumo das operações e problemas aparece na parte inferior da tabela. Uma descrição detalhada de todos os erros aparece abaixo da tabela. Acima da tabela estão conjuntos de caixas de seleção para filtrar quais problemas e operações a caixa de diálogo mostrará. Para obter informações detalhadas sobre essa caixa de diálogo, clique em Ajuda.

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



. Selecione vários itens da tabela. Na parte inferior da tabela o resumo incluirá, agora, apenas esses itens.

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



. Clique com o botão direito do mouse nos itens selecionados. Um menu de contexto de operações possíveis será exibido. 

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



. Se um item tiver u m ícone de erro Resolver Conflitos, selecione o item. Uma descrição do erro aparecerá na parte inferior da tabela.

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



. Selecione o item com um erro. Selecione Dif... image:images/diff-icon.png[] na linha de botões ou no menu de contexto. A caixa de diálogo Dif será aberta. Nessa caixa de diálogo, reole para baixo para cada diferença entre as versões remota e local do arquivo. Na view gráfica, você pode aplicar ou recusar a aplicar a alteração remota ao arquivo local. Se desejar editar o arquivo manualmente, alterne para a guia Textual. Quando tiver concluído com a dif, clique em OK. Você retornará para a caixa de diálogo Sincronização Remota. A operação para o arquivo é alterada para Upload e o arquivo é marcado com um asterisco, pois você o alterou.

image::images/diff.png[]



. Se não houver nenhum conflito, clique em Sincronizar. Se tiver selecionado Mostrar Resumo antes de Iniciar, o resumo Sincronizar será exibido para que você possa revisar as oeprações mais uma vez, antes de executar a sincronização. Se você aprovar as operações, clique em OK.

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

O IDE executará a sincronização. Você pode acompanhar o andamento da sincronização em uma janela que o IDE abre.

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


== Executando uma Aplicação PHP


Para executar uma aplicação PHP em um servidor remoto:

1. No painel Propriedades, certifique-se de que o Site remoto esteja selecionado na <<chooisngRunConfigurationType,lista drop-down Executar Como>>.
2. Verifique as definições de Configuração de Execução.
3. Se o projeto estiver definido como principal, clique em image:images/run-main-project-button.png[] na barra de ferramentas.
4. Se o projeto não estiver definido como principal, posicione o cursor no nó do projeto e selecione Executar no menu pop-up.


[[remote-mysql-database]]
== Utilizando um Banco de Dados MySQL Remoto

Os serviços de hospedagem remota como o x10Hosting.com geralmente permitem que você configure um banco de dados MySQL em seus servidores. Você pode criar bancos de dados, gerenciar usuários e copiar, ler, atualizar ou deletar (CRUD) dados com as ferramentas fornecidas pelo serviço de hospedagem remota.

Por exemplo, se você estiver utilizando o x10Hosting.com, crie um banco de dados MySQL efetuando log-in no painel do x10Hosting e abrindo o painel do Banco de dados MySQL. Você também pode criar usuários, designar usuários a bancos de dados e conceder privilégios a usuários no painel Bancos de Dados MySQL. Você poderá, em seguida, utilizar as ferramentas CRUD no painel phpMyAdmin.

Uma alternativa para trabalhar com ferramentas CRUD de bancos de dados remotos é utilizar as funcionalidades CRUD do NetBeans IDE para trabalhar com um banco de dados local. Depois, você poderá copiar ou fazer dump do banco de dados local no banco de dados remoto. No x10Hosting.com, você pode utilizar o painel phpMyAdmin para fazer upload do banco de dados local.

link:/about/contact_form.html?to=3&subject=Feedback:%20PHP%20Remote%20Hosting%20and%20FTP[+Enviar Feedback neste Tutorial+]


Para enviar comentários e sugestões, obter suporte e manter-se informado sobre os desenvolvimentos mais recentes das funcionalidades de desenvolvimento PHP do NetBeans IDE, link:../../../community/lists/top.html[+junte-se à lista de correspondência users@php.netbeans.org+].

link:../../trails/php.html[+Voltar à Trilha do Aprendizado+]

