Archive

Archive for the ‘PHP’ Category

Sublime Text 2 em uma palavra: incrível.

Bom,

programo sim ainda mas, por prazer. olha que coisa boa!

🙂

minhas ferramentas sempre foram as mesmas: um bom e velho linux rodando, usando o mc pra navegar pelos arquivos e, o vim para editar.

Com a interface gráfica, pouco mudou. Passei a usar o gVim, sempre mantendo meu .vimrc, adicionando coisas, tirando…  de modo que, sempre que abro um micro, pego pelo dropbox meu .vimrc e, parece que estou em casa. fascinante! 🙂

Agora a coisa mudou um pouquinho….

Leia mais…

Categorias:PHP, Ubuntu

Artigo 1 – Programando em Linux

A anos uso Linux. Sistema operacional confiável e sem surpresas.

Porém, é quando se trabalha programando em Linux que se tem certeza que você fez a escolha certa.

Meu desktop do dia a dia (Acer Aspire One, ZG5) é Linux.
Escolhi a alguns anos utilizar o Ubuntu pela sua filosofia, ciclo de atualizações e facilidade de uso no dia a dia e, este tem sido meu desktop a pelo menos 5 anos.

Como minha máquina não é lá essas coisas (meu AA1 tem 1.5 GB de RAM, Atom 1.6, HD 160 GB), eu procuro economizar recursos das mais diversas formas. Desativo serviços desnecessários ou pouco usados, não uso muitos recursos de aparência do gnome, uso temas leves… economizo.

Meu objetivo com este primeiro artigo é mostrar o que instalar – e o que remover – no seu computador para desenvolver aplicações em php e mysql.

Nossa aplicação exemplo/objetivo nesta série de artigos será construir um software para fazer/classificar anotações. Minha inspiração é o superútil CintaNotes (http://cintanotes.com/). Eu simplesmete acho esse software incrível pela sua leveza e simplicidade… mas, infelizmente, ele não roda bem pelo wine no linux apesar de várias tentativas.

Estudei um pouquinho e descobri que o CintaNotes usa uma base de dados sqlite para guardar as informações das notas.
Basicamente vamos usar essa base com minhas (ou suas) notas que estão no windows, importá-las para MySQL e, construir uma interface em php para essa base.

Claro, podemos fazer implementações no nosso “CintaNotes Web”.

Abaixo como instalo e configuro minhas ferramentas.

1) Instalação do SO
– a minha máquina vem originalmente com o Windows XP mas, eu nem tenho mais no HD. Apaguei as partições e, tenho meu disco particionado da seguinte forma:

/dev/sda1 - diretório raiz (/) : 33 GB
/dev/sda2 - diretório /home : 114 GB
/dev/swap - swap: 1.5 GB

– para instalar o Ubuntu, baixei o iso do CD do 10.04 e, gerei um pendrive bootável com o unetbooting numa máquina windows.
– a instalação é sem mistério, após 20 minutos, está tudo rodando no AA1.
– tudo funciona exceto um inconveniente: quando computador hiberna ou o monitar desliga, por algum motivo a tela não volta, fica preta e não volta apesar do sistema aparentar estar respondendo.
– desabilitei a opção de hibernar até descobrir como contar esse problema.

2) Configuração do Desktop
– Primeiro passo é a atualização geral do sistema, ativação dos repositórios universe, multiverse e partner.
– para um desktop mais leve ai vão algumas dicas:
a) utilizar o thunderbird ao invés do evolution
b) desabilitar os efeitos visuais
c) desinstalar (ou não usar) o tomboy
d) baixe o audacious ao invés do rhythmbox
e) baixo o java jre e remova o openjdk
f) dê uma olha nos serviços que rodam durante o boot, alguma coisa é desnecessária.
g) remova o empathy e use o pidgin

– alguns apts apos ativar os repositórios no seu source.list ou no synaptic:

sudo apt-get update
sudo apt-get upgrade

(reinicie o computador…)

– removendo coisas que não uso:

sudo apt-get purge empathy
sudo apt-get purge openjdk-6-jre
sudo apt-get purge f-spot
sudo apt-get purge rhythmbox
sudo apt-get purge mono-2.0-gac
sudo apt-get purge tomboy
sudo apt-get purge evolution
sudo apt-get autoremove

– instalando alguns softwares muito úteis no desktop:

sudo apt-get install keepassx
sudo apt-get install pidgin pidgin-libnotify
sudo apt-get install skype
sudo apt-get install sun-java6-jre
sudo apt-get install gthumb2
sudo apt-get install shotwell
sudo apt-get install ttf-droid
sudo aptitude install non-free-codecs libdvdcss2 faac faad ffmpeg ffmpeg2theora flac icedax id3v2 lame libflac++6 libjpeg-progs libmpeg3-1 mencoder mjpegtools mp3gain mpeg2dec mpeg3-utils mpegdemux mpg123 mpg321 regionset sox uudeview vorbis-tools x264
sudo aptitude install arj lha p7zip p7zip-full p7zip-rar rar unace-nonfree
sudo aptitude install audacious2 vlc
sudo apt-get install openoffice.org-base
sudo aptitude install liferea
sudo apt-get install mc
sudo apt-get install gnupg
sudo apt-get install audacity

– uma impressoa de pdfs, uso muito para guardar artigos da net:

sudo apt-get install cups-pdf

3) Instalando as ferramentas para programar
– como temos um objetivo definido neste “curso”, ai vão algumas ferramentas necessárias. Lembrando que nosso objetivo é reduzir ao máximo o consumo de memória e disco, optei por fugir da dobradinha Apache + PHP e, passei usar o php5 fpm (FastCGI Process Manager) em conjunto com o servidor web nginx (engine X).
– O Apache é um consumidor de recursos de máquina e, por isso estou substituindo.
– O nginx é famoso pelo uso de pouco recurso e melhor gerenciamento de requisões de acesso.. dê uma olhada: http://nginx.org/en/ e http://wiki.nginx.org/Main .
– Fora isso, instalamos o mysql-server e client e, o subversion para controle de versão do nosso software
– A ordem de instalação que usei foi esta:

sudo apt-get install mysql-server mysql-client
sudo apt-get install subversion
sudo apt-get install subversion-tools
sudo apt-get install nginx
sudo apt-get install php5-cli php5-common php5-suhosin
sudo add-apt-repository ppa:brianmercer/php
sudo apt-get update && sudo apt-get install php5-fpm php5-cgi
sudo aptitude install php5-mysql php5-mcrypt

– meu arquivo de configuração do nginx é (/etc/nginx/sites-avaible/default) este:

server {
 listen   80;
 server_name  localhost;
 access_log  /var/log/nginx/localhost.access.log;
 client_max_body_size 8m;

## Default location
 location / {
 root   /home/thiago/www/;
 index  index.php index.htm index.html;
 autoindex on;
 allow 127.0.0.1;
 deny all;
 }

## Images and static content is treated different
 location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
 access_log        off;
 expires           30d;
 root /home/thiago/www/;
 }

## Parse all .php file in the root directory
 location ~ .php$ {
 fastcgi_split_path_info ^(.+\.php)(.*)$;
 fastcgi_pass   backend;
 fastcgi_index  index.php;
 fastcgi_param  SCRIPT_FILENAME  /home/thiago/www$fastcgi_script_name;
 include fastcgi_params;
 fastcgi_param  QUERY_STRING     $query_string;
 fastcgi_param  REQUEST_METHOD   $request_method;
 fastcgi_param  CONTENT_TYPE     $content_type;
 fastcgi_param  CONTENT_LENGTH   $content_length;
 fastcgi_intercept_errors        off;
 fastcgi_ignore_client_abort     off;
 fastcgi_connect_timeout 60;
 fastcgi_send_timeout 180;
 fastcgi_read_timeout 180;
 fastcgi_buffer_size 128k;
 fastcgi_buffers 4 256k;
 fastcgi_busy_buffers_size 256k;
 fastcgi_temp_file_write_size 256k;
 }

## Disable viewing .htaccess & .htpassword
 location ~ /\.ht {
 deny  all;
 }

}
upstream backend {
 server 127.0.0.1:9000;
}

– Lembrando que o local onde gravei minhas pasta padrao é dentro do meu perfil /home/thiago/www e, mudei a permissão de acesso para permitir o nginx acessar:

sudo chown -R www-data.thiago www
sudo chmod -R 755 www

– Lembre-se de reiniciar o servidor nginx após mudar o arquivo de configuração:
sudo service nginx restart

– O arquivo php.ini usado pelo nginx fica no diretório do php (/etc/php5/fpm/php.ini). Nesse arquivo eu só mudo o tamanho do upload permitido – upload_max_filesize – (veja que há uma linha específica no php e no nginx) e, o post_max_size. Como vamos utilizar phpmyadmin para gerenciar o banco de dados, eu aumento os valores para 12 MB (http://br.php.net/manual/pt_BR/ini.core.php#ini.post-max-size).

– feito isso, reinicie o php:

sudo service php5 restart

– teste criando o famoso arquivo info.php na raiz da sua pasta do servidor web e coloque dentro o seguinte:

<?php phpinfo(); ?>

– acesse pelo http://localhost/ e clique no arquivo info.php

– Baixe o phpMyAdmin (http://www.phpmyadmin.net/home_page/index.php) e, descompacte no diretório padrão do servidor web que você especificou: no meu caso em /home/thiago/www. Criei uma pasta myadmi e joguei lá.
– você será capaz de acessá-lo pelo http://localhost/myadmin

– A escolha da do editor usado para programar é uma arte. Sou usário confesso do vim (gVim no gnome) e, para mim não há grande oscilação. Já usei bastante o gEdit (editor de texto padrão do gnome) e o Geany (http://www.geany.org/) mas, acabo voltando sempre para o Vim…  Aconselho olhar mais de perto o Netbeans for PHP (http://netbeans.org/features/php/index.html). Usei a versão 6.9 RC e, gostei. A criação e manutenção de projetos é facilitada e, essa versão rodou bem estável, sem bugs.. Mas, como nosso foco é um ambiente mais, digamos, “clean”, opte por um editor de texto de sua preferência.

sudo apt-get install vim-gnome

– Controle de versão. A grande novidade nos últimos tempos e, posso dizer, grande alegria é ver uma implentação baseada do tortoise svn para Linux. Chama-se Rabbit Version Control System (http://rabbitvcs.org/). Você deve adicionar o repositório e instalar.

sudo add-apt-repository ppa:rabbitvcs/ppa
sudo apt-get update
sudo apt-get install rabbitvcs
sudo apt-get install rabbitvcs-core
sudo apt-get install rabbitvcs-gedit rabbitvcs-nautilus

– Dica para quem quer ver os ícones no menu de contexto, a exemplo do tortoise: abra o gconf-editor (ALT+F2 e digite gconf-editor). Localize a chave menu_have_icons e marque como true (o caminho é:  desktop -> gnome -> interface -> menus_have_icons).

Último passo, instale o sqlite para podermos exportar a base desse nosso exemplo ara o mysql.

sudo aptitude install sqlite
sudo aptitude install sqlite3

AMBINTE PRONTO!
Agora é começar a programar!

(isso é conversa para o próximo artigo… acompanhe!)

ajudando os amigos: XAMPP+Eclipse PDT+Zend Debugger no Vista

Logo que iniciei os trabalhos em PHP (a anos luz atrás), a ferramenta “perfeita” para programação nessa linguagem ainda não existia.

Alguns anos depois, surgiu com muita sofisticação o Zend Studio. Era algo simplesmente fenomenal!

Debugar páginas PHP saiu do plano dos sonhos para realidade…. só, que existia um custo e, não era pequeno: o pacote Zend saia por aproximadamente US$ 300 ~ 400!

Os 15 dias de demonstração foram os mais felizes da minha vida… realmente era viciante. mas, acabou :-(

Voltei a bom e velho gVim… os projetos já estavam melhor encaminhados, já não tinha tantos bugs assim para descobrir e, foi possível manter a vida sem o Zend… até o início de 2007….

Comecei a prestar mais atenção em ferramentas que vinham surgindo… uma delas foi o consagrado Eclise, fenomenal com o Java, mas, surgia – no começo do ano passado – o PDT (PHP Development Tools), um framework para o Eclipse que proporciona algumas facilidades quando se utiliza essa IDE para programar em PHP.

Desde o início, já era possível utilizar o XDebug para debugar código PHP “online”.. ver as varíaveis em tempo de execução a saída do código… nossa! era um Zend a custo zero!

O sonho novamente tinha se tornado realidade, só que dessa vez, realidade mesmo!

De lá pra cá, seja no Linux, seja no Windows, tenho utilizado a dupla PDT + Zend Debugger para meus trabalhos…

Vamos por a mão na massa.

Estou utilizando o Windows Vista SP1 em inglês.

é necessário baixar:

Xampp lite (a versão que eu tenho é antiga, 2.5)

Eclipse PDT (stable, 1.0.3)

Zend Debugger (atualizei para a versão 5.2.14)

A “instalação” do xampp no windows é uma vergonha!

é só baixar no site, e descompactar. eu descompacto no c:\

você abre o gerenciador do XAMPP (xampp-control.exe) e, de lá inicia e para os aplicativos.. excelente!

A o Eclipse PDT é a mesma história. O único incoveniente é o tamanho do pacote: 130 MB.

A parte mais complicada é instalar o Zend Debugger.

Baixe no site o arquivo ZendDebugger-5.2.14-cygwin_nt-i386.zip (versão q estou usando).

Descompacte e procure a subpasta “5_1_x_comp”, lá vc vai encontrar o arquivo ZendDebugger.dll.

Copie esse arquivo para a pasta “C:\xampplite\php\ext”.

Existe no Zip também um arquivo chamado “dummy.php” que você deve copiar para o document root do apache (”C:\xampplite\htdocs”).

É necessário alterar o arquivo php.ini. O arquivo que o xampplite utiliza fica na pasta “C:\xampplite\apache\bin\”. Não custa conferir.. crie um arquivo “info.php” com a famosa função php_info e, coloque no document root (”C:\xampplite\htdocs”) e rode para conferir (Loaded Configuration File).

No php.ini, adicione as seguintes linhas:

zend_extension_ts=”c:/xampplite/php/ext/ZendDebugger.dll”
zend_debugger.allow_hosts=127.0.0.1/32, 192.168.1.0/16, 10.1.1.0/16
zend_debugger.expose_remotely=always

a primeira roda a extensão do Zend, a segunda diz quais faixas de IP poderão executar o debug e, a terceira permite

procure no php.ini as seguintes instruções só para conferir se estão assim:

implicit_flush = On

Devem estar comentadas as linhas abaixo:

;extension=php_xdebug.dll

;extension=php_dbg.dll

feito isso, pare o Apache e inicie-o novamente.

é pra estar tudo certo.. na sua página “info.php” já vai aparecer o logo Zend indicando que o debugger rodou (vc lerá algo como Zend Debugger v….)

Agora, a parte fácil.

Vá para o Eclise e, crie seu projeto PHP.

Em seguida, você deverá criar uma opção de Debug para esse projeto. clique no pequeno inseto que está na barra de tarefas do Eclipse (ignore no meu screen abaixo as opções… são as que eu já tinha criado…) e escolha a opção “Open Debug Dialog…”

Na janela a seguir, você deverá preenche:

– o Nome dessa nova opção de Debug que você está criando

– Escolher o tipo de servidor de Debug (Xdebug ou Zend debugger)

– Indicar o arquivo inicial que o depurador irá rastrear.

Feito isso, mande aplicar.

Ao clicar novamente no inseto, já vai aparecer essa opcão que você acabou de salvar.

Para experimentar basta clicar na sua configuração. O Eclipse irá abrir o seu navegador padrão e, abrirá a perspectiva PHP Debug, com diversas informações sobre a página que vc acabou de executar.

Se você tiver colocado algum breakpoint no código, a execução pára até que você mande continuar (dê um F8).


Incrível não?

:-)

é isso…

Bem vindo ao mundo do Software Livre que nos enche de emoção e gratidão por esses heróis que criam ferramentas como estas… de graça!

Bom trabalho!

Categorias:Debugger, Eclipse, PHP, Windows, XAMPP, Zend

Netbeans PHP IDE no Ubuntu

respirando novos ares fui conferir o projeto da Sun para PHP.

A IDE NetBeans, conhecida mundialmente como IDE para Java, está, a exemplo do Eclipse, bebendo em outras águas… já suporta as linguagens Ruby, C/C++ e PHP além do Java, naturalmente.

O download da versão 6.5 (beta) está disponível neste link. Um breve orverview dos recursos dessa versão estão aqui.

O tamanho é um diferencial positivo, são apenas ~ 21 MB. Outra coisa que me chamou muito a atenção foi a velocidade para abrir a IDE.. impressionantes 3~4s no meu notebook (Centrino Duo 2.2Ghz, 2 GB de RAM).

Os recursos são compatíveis com o Eclipse PDT, inclusive com possibilidade de debug de código com xdebug.

Mais um recursos interessante é o client SVN embutido. Funcionou mto bem.

Uma excelente fonte de consulta é o weblog do Netbeans for PHP. Está disponível ali uma coleção já considerável de tutoriais e artigos sobre a nova ferramenta. A séria que destaco abaxo é bem interessante para os programadores PHP que estão iniciando no Ubuntu. Ensina a configuração básica de um ambiente de programação PHP + MySQL + NetBeans PHP IDE.

é isso.

estou testando e gostando! ;-)

Categorias:Netbeans, PHP, Ubuntu