Início > PHP, Programação, Ubuntu > Artigo 1 – Programando em Linux

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!)

  1. Nenhum comentário ainda.
  1. 01/02/2011 às 8:08

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: