linux - vm php netbeans xdebug mysql

Upload: elsoncjunior

Post on 13-Jul-2015

151 views

Category:

Documents


0 download

TRANSCRIPT

1

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

VM desenvolvimento PHP / NetBeans / XdebugIntroduoTentarei explicar de forma simples e o mais directa possvel como criar um ambiente de desenvolvimento PHP em Linux. O ambiente ser composto por: 1. 2. 3. 4. 5. 6. Sistema operativo: Ubuntu Linux 10.10 Apache 2 MySQL 5.1 IDE: NetBeans 2.9.1 PHP 5.3 com Xdebug phpMyAdmin

Est disponvel um disco virtual que podero carregar numa virtual machine com o Virtual Box. Este disco ser o resultado do que vai sendo dito neste documento.

Criao da VMNo vou aqui explicar como configurar a virtual machine, no considero que seja relevante para o artigo actual. Poderei mais tarde faz-lo, mas como o Ubuntu to simples de instalar no vejo razo para o fazer. Dados dos utilizadores Linux na VM: User: phpdev Password: phpdev01! User: root Password: root01!

Configurar o servidor HTTP: Apache 2Para instalar o Apache vou proceder ao mtodo que para mim o mais simples num sistema Debian based. Abro o terminal e introduzo:

phpdev@phpdevserver:~$ sudo apt-get install apache2

e dever surgir algo como:

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

2

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Fig. 1: Instalar o Apache 2

Agora fao um simples sudo reboot para reiniciar a mquina e ver como se comporta no arranque. Aps o arranque vamos ver se j temos servidor HTTP. E c est ele.

Fig. 2: Testar a instalao do Apache 2

Configurar um servidor de base de dados: MySQL Server 5 .1OK! Agora que temos o servidor HTTP, eu por norma gosto de ir logo para o servidor de base de dados. Assim vou instalar e configurar o MySQL Server.

phpdev@phpdevserver:~$ sudo apt-get install mysql-server

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

3

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Fig. 3: Instalar servidor MySQL

Aps a instalao vai ser solicitada a password para o user root. Vai ser: mysqlroot01! (importante lembrar mais tarde)

Fig. 4: Definir a password de root do MySQL

No sei se so como eu, mas por norma gosto de reiniciar a mquina sempre que instalo uma aplicao mais importante, nomeadamente aquelas que criam servios. Sendo este um componente essencial no nosso ambiente de desenvolvimento em PHP vou reiniciar a mquina neste momento. Mais uma vez sudo reboot.

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

4

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Neste momento j temos o MySQL instalado. Mais frente voltaremos ao MySQL, vamos agora ao PHP.

Instalar o PHP 5J estamos perto do estado final do nosso ambiente de desenvolvimento (ou no...). No podemos ter um ambiente de desenvolvimento PHP sem termos o PHP instalado, por isso:

:~$ sudo apt-get install php5 php5-dev libapache2-mod-php5 php5-curl php5-gd

E teremos algo como:

Fig. 5: instalar o PHP e algumas libs importantes

OK! Neste momento j temos a coisa mais ou menos orientada. Vamos s ver o que nos diz o Apache. Vamos s primeiro reiniciar o Apache.

phpdev@phpdevserver:~$ sudo apache2ctl restart

Agora vamos criar um ficheiro PHP de teste no nosso servidor.

phpdev@phpdevserver:~$ sudo nano /var/www/phpinfo.php

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

5

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

E uma vez aberto o nano vamos escrever a mtica linha de cdigo:

Fig. 6: Cdigo phpinfo() no Nano

E control + X e Enter. Ver o resultado:

Fig. 7: Testar a instalao PHP

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

6

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Ponto de situao neste momento: Temos Linux Temos Apache 2 Temos MySQL 5 Temos PHP 5.3

Vamos ento avanar para o Debug. Conseguimos fazer cdigo mas ainda no conseguimos fazer debug desse cdigo.

Instalar e configurar o XdebugAntes de mais, obter o Xdebug. Fazemos download do seguinte ficheiro. http://xdebug.org/files/xdebug-2.1.0.tgz Tem apenas 294KB, por isso quase instantneo. Vou tentar agora ser o mais claro possvel, por isso poder parecer muito confuso mas no . bastante simples, vou s explicar passo a passo para que as coisas fiquem claras. Primeiro vamos descomprimir o ficheiro acima.

phpdev@phpdevserver:/$ cd /home/phpdev/Downloads/ phpdev@phpdevserver:~/Downloads$ mkdir xdebug phpdev@phpdevserver:~/Downloads$ tar zxvf xdebug-2.1.0.tgz -C xdebug

OK. Neste momento temos o contedo do ficheiro dentro da pasta xdebug. Vamos agora entrar nesta.

phpdev@phpdevserver:~/Downloads$ cd xdebug/xdebug-2.1.0/

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

7

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Vamos agora preparar o ambiente de compilao para a nossa extenso PHP. E para tal utilizamos o phpize

phpdev@phpdevserver:~/Downloads/xdebug/xdebug-2.1.0$ sudo phpize

Fig. 8: executar phpize

E agora s compilar. Com o trio: configure, make, make install :D Chamada de ateno para o enable-xdebug

:~/Downloads/xdebug/xdebug-2.1.0$ sudo ./configure --enable-xdebug :~/Downloads/xdebug/xdebug-2.1.0$ sudo make :~/Downloads/xdebug/xdebug-2.1.0$ sudo make install

Neste momento j temos o Xdebug. Temos s que informar o PHP que tem o Xdebug. Abrimos o php.ini

phpdev@phpdevserver:~/Downloads/xdebug/xdebug-2.1.0$ sudo gedit /etc/php5/apache2/php.ini

E adicionamos as seguinte linhas:[xdebug] zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"

xdebug.remote_enable=Onxdebug.remote_host="localhost" xdebug.remote_port=9000 xdebug.remote_handler="dbgp"

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

8

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Estaremos a ver algo como:

Fig. 9: Editar o php.ini com o GEdit

Na configurao anterior no utilizei o nano mas sim o gEdit, por duas razes. Primeiro para no parecer que o Linux s linha de comandos, e segundo e mais importante, porque sou perguioso e o gEdit mais amigvel para os perguiosos :P

Depois de fazer-mos novamente o sudo apache2ctl restart vemos o resultado das nossas configuraes.

Fig. 10: Testar para ver que j reconhecido o Xdebug

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

9

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Fig. 11: Variveis do Xdebug exibidas no phpinfo

Bem parece que estamos encaminhados! Vamos s configurar o xdebug tambm para PHP CLI. exactamente como anteriormente, apenas muda o caminho para o PHP.INI.

phpdev@phpdevserver:~/Downloads/xdebug/xdebug-2.1.0$ sudo gedit /etc/php5/cli/php.ini

As linhas que colocamos no PHP.INI so exactamente as mesmas do anterior, at podem fazer como eu fiz. Abri outra consola e fiz : gedit /etc/php5/apache2/php.ini e depois copy paste de um para o outro.

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

10

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Para testar se carrega o mdulo fazemos

phpdev@phpdevserver:~/Downloads/xdebug/xdebug-2.1.0$ php -m

E dever surgir [Zend Modules] Xdebug OK! Temos o Xdebug a funcionar... pensamos ns, mas estar mesmo? Poderamos instalar j o nosso IDE e ver se a coisa funcionava. aqui que o pessoal normalmente se espalha. Vamos primeiro ter a certeza que o Xdebug est 100% operacional e s depois instalamos o NetBeans. No vamos querer dizer que a culpa de no termos debug do NetBeans sem que seja mesmo, no ?! Existe uma ferramenta que vem no Xdebug para lhe fazer os testes apartir da consola, o debugclient. Antes de compilar o debugclient, vamos s buscar umas libs que so precisas.

phpdev@phpdevserver:~/Downloads/xdebug/xdebug-2.1.0$ sudo apt-get install libedit-dev libedit2

Teremos algo como:

Fig. 12: instalao das libs: libedit-dev libedit2, necessrias para compilao do DebugClient

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

11

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

E agora sim, o debugclient.

:~/Downloads/xdebug/xdebug-2.1.0$ cd debugclient :~/Downloads/xdebug/xdebug-2.1.0/debugclient$ sudo ./configure --withlibedit :~/Downloads/xdebug/xdebug-2.1.0/debugclient$ sudo make :~/Downloads/xdebug/xdebug-2.1.0/debugclient$ sudo make install

Temos debugclient. Agora vamos test-lo. Para testar o debugclient e a comunio com o Xdebug teremos que simular uma chamada. Vamos ter ento dois terminais. Um que corre o debugclient e recebe a sesso de debug, e um outro que inicia o pedido PHP. No terminal 1 colocamos:

phpdev@phpdevserver:/$ debugclient

No terminal 2 fazemos a chamada ao PHP

phpdev@phpdevserver:/$ export XDEBUG_CONFIG="idekey=session001" phpdev@phpdevserver:/$ php /var/www/phpinfo.php

E no momento da chamada PHP o terminal 1 recebe o pedido.

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

12

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Fig. 13: teste ao DebugClient

Bem parece que temos o Xdebug a funcionar correctamente. Avanamos agora para o IDE. O grande NetBeans. :D

Instalar e configurar o NetBeans 6.9.1Vamos fazer o download de: http://download.netbeans.org/netbeans/6.9.1/final/bundles/netbeans-6.9.1-ml-php-linux.sh

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

13

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Eu vou fazer apenas da verso PHP, no entanto podem ir pgina de downloads e escolher outro bundle. Depois do download:

phpdev@phpdevserver:~/Downloads$ cd /home/phpdev/Downloads/ phpdev@phpdevserver:~/Downloads$ sudo chmod +x ./netbeans-6.9.1-ml-phplinux.sh

Se tentarmos instalar neste momento receberemos um erro a informar da inexistncia de JDK na nossa mquina Linux. Vamos antes de mais instalar o JDK e depois sim correr o instalador do NetBeans.

phpdev@phpdevserver:~/Downloads$ sudo apt-get install sun-java6-jdk

E agora sim, vamos instalar o NetBeans 6.9.1.

phpdev@phpdevserver:~/Downloads$ sudo ./netbeans-6.9.1-ml-php-linux.sh

Depois da linha de comandos anterior surgir um instalador grfico muito simples de utilizar, sempre Next e Install :D ah! E concordar com a licena. E pronto j temos o NetBeans 6.9.1 instalado. Agora s testar o desenvolvimento PHP e o respectivo debug com o Xdebug. Vamos garantir que o nosso utilizador consegue criar pastas e ficheiros dentro da pasta /var/www e sub-pastas destas e que consegue alterar os ficheiros nelas contidos.

phpdev@phpdevserver:~$ sudo usermod -a -G www-data phpdev phpdev@phpdevserver:~$ sudo chgrp -R www-data /var/www phpdev@phpdevserver:~$ sudo chmod -R g+w /var/www phpdev@phpdevserver:~$ sudo find /var/www -type d -exec chmod 2775 {} \; phpdev@phpdevserver:~$ sudo find /var/www -type f -exec chmod ug+rw {} \;

Vamos s fazer logout e login para assumir a alterao aos grupos. Agora que j conseguimos criar pastas e ficheiros no nosso servidor vamos criar o nosso primeiro projecto no NetBeans e testar o ambiente de desenvolvimento PHP.

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

14

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Para verificar se o ambiente est operacional vamos fazer um simples Ol mundo! e verificar que conseguimos efectuar debugging na nossa aplicao. Como acima j estabelecemos as permisses necessrias para o nosso utilizador de desenvolvimento conseguir manipular a pasta www, vamos criar nesta uma pasta OlaMundo.

Fig. 14: Pasta destino para o projecto de teste ao NetBeans

J a temos, vamos agora criar um novo projecto. O passo acima no totalmente necessrio, mas serviu tambm para confirmar que efectivamente as nossas permisses estavam garantidas. Os passos para criar o OlaMundo:

Fig. 15: Criar projecto no NetBeans - Seleccionar o tipo de projecto

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

15

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Fig. 16: Criar projecto no NetBeans - Seleccionar localizao

Fig. 17: Criar projecto no NetBeans - Definies de execuo

Vou apenas deixar os print, no me vou extender a explicar os passos todos para a criao de um projecto NetBeans. Mais tarde, quem sabe... Aps a criao do projecto, criamos um novo ficheiro PHP. Este ficheiro tem um contedo muito simples, afinal no queremos desenvolver uma aplicao, queremos validar primeiro o nosso ambiente de desenvolvimento.

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

16

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Fig. 18: Cdigo de teste "Ol Mundo"

Vamos agora fazer debug da aplicao. Com um breakpoint num ponto de paragem, iniciamos o Debug como mostra a seguinte imagem:

Fig. 19: Iniciar o Debugger no NetBeans

Rapidamente abre o Firefox e o NetBeans apanha o inicio da sesso de Debug e para logo na primeira linha.

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

17

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Fig. 20: NetBeans em Debug, apanha a execuo da primeira linha

Bem as coisas parecem estar encaminhadas. Vamos s ver se conseguimos ver os valores de variveis...

Fig. 21: Debug no NetBeans, valores das variveis

E como podemos ver est tudo a funcionar correctamente :D J temos o NetBeans a funcionar como deve ser. Temos o MySQLServer, PHP, Apache... bem estamos prontos! No! Ainda no terminmos de criar o nosso ambiente. Se fossemos tentar ligar base de dados MySQL neste momento no conseguiramos apartir do PHP. E tambm no conseguimos ligar a uma SQLite. Assim vamos j adicionar o suporte para estes drivers, do sempre jeito, sendo o MySQL quase essencial.

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

18

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Instalar drivers MySQL e SQLite.Vamos abrir uma consola e:phpdev@phpdevserver:~$ sudo apt-get install php5-mysql php5-sqlite

Fig. 22: Instalar o suporte para MySQL e SQLite

Fazemos:

phpdev@phpdevserver:~$ sudo apache2ctl restart

E vamos ver o resultado no nosso PHPInfo.

Fig. 23: phpinfo com o suporte para MySQL e SQLite

E pronto estamos finalmente preparados! Vou s instalar o phpMyAdmin, gosto de o ter por perto, h quem prefira o WorkBench o qual aconselho para a criao do modelo de dados de raiz, mas para j vou s instalar o

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

19

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

phpMyAdmin, parece-me que se enquadre melhor com este pequeno manual, sendo esta uma aplicao Web podemos instal-la no nosso servidor partilhado.

Instalar e configurar o phpMyAdminConsultando o site http://www.phpmyadmin.net/ encontramos: phpMyAdmin 3.3.8 is released (Mon, 25 Oct 2010 16:28:45 GMT) Boa! j este que vai. Mesmo fresquinho :D Vou fazer download do:phpMyAdmin-3.3.8-all-languages.tar.bz2 3.5 MiB 7a5b26f37f3f2fa1e2335ce9c2d36944 5868

Este ficheiro tem no seu interior uma pasta, descompacto o contedo desta para /var/www/phpMyAdmin. (tive que criar a pasta mkdir /var/www/phpMyAdmin) Entrando no http://localhost/phpMyAdmin/ damos de caras logo com um problema.

Fig. 24: Problema no phpMyAdmin, "Cannot load mcrypt extension..."

sudo apt-get install php5-mcrypt e sudo apache2ctl restart e fica o problema resolvido.

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin

20

Criao de ambiente PHP, NetBeans PHP XDebug Apache2 MySQL

Vamos que posso dizer, para comear a trabalhar j est! :D Entramos com o nosso user: root / mysqlroot01! (ainda se lembravam desta password, certo?!)

ConclusoDesta forma termina este pequeno manual. A mquina virtual vai ficar disponvel online para download e execuo imediata. Vai ficar no formato *.vdi, disco virtual para o VirtuaBox. Resumo da minha mquina:

Fig. 25: resumo da VM no VIrtualBox

Rui Lima : http://www.RuiLima.com : Cdigo aberto PHP NetBeans Xdebug Apache 2 MySQL myAdmin