Chegamos a mais uma edição da série de artigos sobre webdesign no Linux.

Estes artigos são voltados aos desenvolvedores que têm vontade de experimentar ou mesmo trocar o seu Sistema Operacional Windows[bb] por alguma Distribuição Linux[bb], mas não conhecem as opções de programas para desenvolvimento nativas.

Os temas abordados até agora foram:

Neste artigo, abordarei como rodar o Servidor Apache no Ubuntu Linux, juntamente com o suporte à PHP e também à bancos de Dados MySQL.

A Distribuição utilizada é a Ubuntu 6.10, mas este tutorial pode ser facilmente adaptado à a qualquer Distribuição baseada no Debian, com o APT instalado.

O Servidor Apache

Uma das grandes vantagens do Servidor Apache[bb] é o suporte a uma grande gama de linguagens de programação, além de, claro, a facilidade de instalação (especialmente em um sistema Debian Like).

Instalar o Apache 2 no Ubuntu é muito simples. Você pode digitar a seguinte linha no terminal:

citação:

sudo apt-get install apache2

Será necessário digitar sua senha de administrador.

Você também pode abri o gerenciador de pacotes Synaptic e procurar por "Apache2".

Pronto, seu Apache já está instalado e funcional!

Instalando o PHP

Escolhi o PHP pela sua popularidade, mas o Apache possui módulos para rodar várias linguagens, como Python ou mesmo asp.net.

Para instalar o PHP, basta digitar no terminal:

citação:

sudo apt-get install php4

Será necessário digitar sua senha de administrador. Depois disso, você terá que reinicializar o Apache, com o seguinte comando:

citação:

sudo /etc/init.d/apache2 restart

Se você quiser trabalhar com PHP 5, basta trocar o 4 de "php4". Você também pode instalar o PHP 5 juntamente com o 4, que não dá conflito. Basta adicionar "php5" na linha cima, separando as palavras por pacote:

citação:

sudo apt-get install php4 php5

Para testar a instalação do PHP, crie um arquivo qualquer na pasta /var/www:

citação:

sudo gedit /var/www/teste.php

Observe que é necessário criar o arquivo como root, pois estamos criando e editando um arquivo fora da sua pasta home. Não tema, logo darei uma dica de como contornar isso. Agora inclua a seguinte linha no arquivo:

citação:

<?php phpinfo(); ?>

Agora abra seu navegador e digite http://localhost/teste.php. Se o PHP estiver instalado corretamente, e se você tiver reinicializado o Apache como informei acima, esta página deverá mostrar a informação do PHP (versão, versão do apache, etc).

Outras linguagens

Você pode adicionar o suporte a outras linguagens no Apache, só precisa baixar os módulos referentes às linguagens em questão. Se você quer rodar "Python":http://pt.wikipedia.org/wiki/Python, vá no seu Synaptic e procure por "apache2 python", e instale as bibliotecas referentes ao suporte à Python (libapache2-mod-python2.4). Se você quer suporte a Ruby, repita a operação de busca acima, trocando "python" por "ruby".

Existe também o suporte à páginas asp.net[bb], que, apesar de não ser completo, pode ser um quebra galho. Procure por "Apache2 mono" no Synaptic ;).

Lembre-se que é necessário reiniciar o Apache sempre que o suporte a uma nova linguagem for instalado.

Instalando o Banco de Dados MySQL

O banco de dados MySQL é um dos bancos de dados mais populares do mundo, e também é o mais utilizado na internet. Para instalar o suporte ao banco de dados, simplesmente digite no terminal:

citação:

sudo apt-get install libapache2-mod-auth-mysql php4-mysql

Se você usar o PHP 5, já sabe o que fazer, basta trocar o 4 acima por 5. ;)

Instale também o MySQL Server e o MySQL Client:

citação:

sudo apt-get install mysql-server-5.0 mysql-client

Depois, reinicie o Apache:

citação:

sudo /etc/init.d/apache2 restart

Pronto, se tudo correu certo, estará tudo instalado e configurado, pronto para ser usado ;).

Dicas

Selecionei algumas dicas abaixo que facilitarão ainda mais a vida de vocês! :-)

h4. Parando/Iniciando/Reiniciando Serviços de Maneira Fácil

Não sei quanto a vocês, mas eu nunca me lembro o caminho da pasta onde ficam os serviços (que é /etc/init.d). É claro que, no Gnome você pode parar/iniciar/reiniciar facilmente serviços no menu, acessando Sistema > Administração > Serviços. Mas também é possível adicionar facilidade também ao terminal, através de um Shell Script.

O primeiro passo é criar um arquivo na pasta /usr/bin/. Abra o terminal e digite:

citação:

sudo gedit /usr/bin/service

Então, quando o editor abrir, copie e cole as linhas abaixo:

citação:

#!/bin/bash

/usr/sbin/service

if [ $USER != "root" ]
then
echo "É necessário privilégios administrativos para rodar $0"
exit
fi

if [ $# -lt 2 ]
then
echo "Uso: $0 service_name stop/start/restart/status"
exit
fi

set -e
/etc/init.d/$1 $2

Salve o arquivo. Ainda no terminal, dê permissões para execução ao arquivo service, com o seguinte comando:

citação:

sudo chmod +x /usr/bin/service

Pronto. Agora, sempre que você quiser alterar o status de um serviço pelo terminal, basta digitar:

citação:

sudo service nomedoservico start

Troque este "start" por "stop" (se você quiser parar um serviço, óbvio) ou "restart" (para reiniciar um serviço).

Fonte da dica: "Novell Cool Solutions":http://www.novell.com/coolsolutions/tip/15907.html.

Colocando sites na sua própria pasta Home

Como vimos, as páginas no Apache ficam armazenadas na pasta /var/www/. Para armazenar arquivos nesta pasta é necessário ter privilégios de root.

Vejo muitas pessoas mudando a permissão da pasta padrão www do Apache para poder gravar nessa pasta, contudo, não é a forma ideal para se fazer isso.

O ideal é mapear as URLs para fora de www, e é isso que vou ensinar agora.

O primeiro passo é ir no seu diretório Home e criar uma pasta onde vai ficar seus sites. Ela pode ter qualquer nome, mas vamos assumir que esta pasta vai se chamar www.

O segundo passo é abrir o terminal e pedir para editar o arquivo alias do Apache:

citação:

sudo gedit /etc/apache2/conf.d/alias

Para o segundo passo, vamos supor que seu nome de usuário seja Bob. Agora Bob, copie e cole as linhas abaixo dentro do arquivo alias:

citação:

Alias /Bob /home/Bob/www/

<Directory /home/Bob/www/>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Pronto. Para finalizar, reinicie o Apache. Se você seguiu minha dica anterior, basta digitar:

citação:

sudo service apache2 restart

Agora qualquer arquivo salvo na pasta /home/Bob/www/ vai ser considerado como se estivesse na pasta /var/www/Bob.

Para acessar os arquivos que estão dentro da sua pasta www, basta digitar http://localhost/Bob.

Fonte: Wiki do Ubuntu 6.06

Aumentando a memória reservada ao PHP.

Por padrão, o PHP vem com uma memória reservada para execução de scripts relativamente. Pode ser que alguns scripts excedam este limite. Mas aumentá-lo é relativamente simples. Vamos considerar que você está usando o PHP 5.

Abra o terminal e digite:

citação:

sudo gedit /etc/php5/apache2/php.ini

Agora pressione ctrl+f e faça uma busca por "memory_limit". Altere o valor 8M para outro à sua escolha. Estou usando 64M e não tenho problemas com pouca memória para scripts.

Salve o arquivo, feche-o e reinicie o Apache.

Resolvendo o problema de acentuação no Apache

Sempre que você salvar uma página como ISO-8859-1 ou mesmo UTF-8, você irá notar que os acentos e caracteres especiais serão substituídos por pequenas interrogações pretas ou caracteres estranhos.

Uma forma de resolver isso é voltar lá para o inicio do desenvolvimento web, e utilizar entities ou codificação ASCII.

Ou você pode alterar o charset padrão do Apache, que é muito mais simples.

Abra o terminal, e digite:

citação:

sudo gedit /etc/apache2/apache2.conf

Agora, faça uma busca por "AddDefaultCharset". Você verá que esta linha tem um "#" no início. Isto significa que ela está comentada. Descomente-a, depois salve o arquivo e reinicie o Apache.

Pronto, isso deve resolver todos os problemas de acentuação, basta lembrar sempre de salvar os arquivos como ISO-8859-1 ou ISO-8859-15, que é a codificação para idiomas latinos.

Conclusão

Chegamos ao final de mais um artigo, o mais prático da série até agora. Como vimos, é estupidamente simples configurar um servidor AMP no Ubuntu. Espero que tenham gostado do mesmo e que ele seja bastante útil.

Qualquer dúvida, crítica, elegio ou sugestão, usem os comentários do post ;).

Nos vemos no próximo e último artigo.

Veja também

Comentários

Marcelo_Amaral ...

Excelente sua série de artigos, gostaria de frisar que em debian-likes existe nativo o comando "invoke-rc.d" no lugar do comando "service" usado em Red Hat, Mandriva, talves no Suse e outros.

Luciano

Gostaria de saber se é possível conseguir a ajuda de vocês para resolver meu problema.
Instalei um servidor UBUNTU junto com apache2, php5 e mysql (conforme indicado em um de seus artigos).
Estou conseguindo executar normalmente as páginas PHTML, mas quando passo uma variável para outra página esta não entende a variável.
Ex: ao chamar a página status.phtml, que está no diretório /var/www/luciano, da máquina mateus (IP rede interna 10.59.13.61) passo a variável "arq" conforme descrito abaixo:

"http://mateus/luciano/status.phtml?arq=teste"

infelizmente na execução da página status.phtml a variável "arq" aparece com valor nulo ... logo a página é executada normalmente, mas não consigo utilizar a variável "arq", importantíssima, pois definirá qual máquina remota que estou verificando o status.

Estou disconfiando de arquivos de configuração do apache2 que não estaria entendendo que a extensão PHTML deve ser executada como script (e então considerar a variável). Infelizmente não estou sabendo configurar estes, caso seja este realmente o problema

Desde já agradeço a atenção e espero que possam me ajudar!
Que Deus os abençoe!
Luciano

Web Design no L...
fechaTag &amp;r...
danilo

otimo pra instala apache+php e mysql parabens
soh que me deparei com problema... mysql sem senha.. ai fui muda senha mudei e bugo td..
ai fui reinstala e nao dava ai removi as pasta mysql e dizia q ja tava instalado aa bugo td
como tiro o mysql e instalo de volta usando uma senha X?

Rafael

Olá Marcus!

Com excessão do arquivo de configuração pra gerenciar o serviço apache, fiz tudo como você disse, porém não consigo testar minhas páginas php, configurei o alias, só que da uma mensagem de erro no navegador:

Forbidden

You don't have permission to access /rafael/index.html on this server.
Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5 with Suhosin-Patch Server at localhost Port 80

Rafael

assim?

Alias /Rafael /home/Rafael/www/

Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

Rafael

com as tags claro, q não aparecem no navegador

Márcio

Tenho um problema e gostaria de saber se vocês podem me ajudar.
Tenho um site que funciona em PHP4 tudo ia bem até que foi migrado para PHP5 agora não consigo realizar atualizações de dados ou inserções pois não aceita palavras com caracter apóstrofe (d’agua, Mc’Dowell etc...).
Estou usando conjunto de caracteres no Banco de dados tipo :
varchar(100) - latin1_swedish_ci e texto - latin1_swedish_ci

E nos formulários uso

e

Agradeço a atenção.

andredj

tenho um forum e preciso restaurar um banco de dados mysql
acredito que o processo seja parecido com o de criação,
porem quero importar o BD (500mb, logo nao pode ser via phpmyadm).

Obrigado desde já.

andredj

obrigado

Paulo

Muito bom esse seu tutorial
mas eu to com um problema. sou novo no mundo linux e tambem em php e mysql. a questão é que eu gostaria de saber em que pasta eu posso salvar o banco de dados e como eu uso o assistente de criação de banco de dados no linux. no windows eu sei mas aqui estou totalmente perdido.. sabe mentalidade windows.... desde já eu agradeço!

Marcelinha

Ótimo tutorial, estou acompanhado e está sendo de grande valia, obrigado :D

Visitem Marcelinha

Anônimo

Me ajudou muito heim. Parabéns.

Anônimo

Valeu cumpadi!

cris

Boa!!!

Alexandre

explicação rápida e eficaz... Vlw

Comentar