Download - Linux - VM PHP NetBeans Xdebug MySQL
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