Webdesign no Linux Parte 4: Rodando um servidor Apache com PHP e MySQL
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 por alguma Distribuição Linux
, mas não conhecem as opções de programas para desenvolvimento nativas.
Os temas abordados até agora foram:
- Programas de Desenho Vetorial
- Programas de Edição de Tratamento Imagens
- Programas de Edição de Código
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 é 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:
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:
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:
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:
sudo apt-get install php4 php5
Para testar a instalação do PHP, crie um arquivo qualquer na pasta /var/www:
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:
<?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, 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:
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:
sudo apt-get install mysql-server-5.0 mysql-client
Depois, reinicie o Apache:
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:
sudo gedit /usr/bin/service
Então, quando o editor abrir, copie e cole as linhas abaixo:
#!/bin/bash
/usr/sbin/service
if [ $USER != "root" ]
then
echo "É necessário privilégios administrativos para rodar $0"
exit
fiif [ $# -lt 2 ]
then
echo "Uso: $0 service_name stop/start/restart/status"
exit
fiset -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:
sudo chmod +x /usr/bin/service
Pronto. Agora, sempre que você quiser alterar o status de um serviço pelo terminal, basta digitar:
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:
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:
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:
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:
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:
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.