Marcus VBP

Desenvolvimento de Interfaces WEB

Comentários recentes

Webdesign no Linux Parte 4: Rodando um servidor Apache com PHP e MySQL

30 MAR 2007

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

RSS dos coment?ios deste post

18 Comentários:

imagem de Marcelo_Amaral (a.k.a K1LL -9)

1. Marcelo_Amaral (a.k.a K1LL -9)*

Disse em sex, 06/04/2007 - 05:20

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.

imagem de Luciano

2. Luciano*

Disse em ter, 15/05/2007 - 14:13

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

imagem de Web Design no Linux: Download de palestra em PDF | Marcus VB

3. Web Design no Linux: Download de palestra em PDF | Marcus VB*

Disse em ter, 27/11/2007 - 05:56
[...] escrevi uma série de artigos sobre o assunto (1, 2, 3, 4, e 5) e acredito que a palestra do colega serve muito bem de complemento aos artigos e [...]
imagem de fechaTag &amp;amp;raquo; A experiência de uso Linux - XML, XHTML

4. fechaTag &amp;raquo; A experiência de uso Linux - XML, XHTML*

Disse em sex, 21/12/2007 - 10:31
[...] Rodando um servidor Apache com PHP e MySQL [...]
imagem de danilo

5. danilo*

Disse em dom, 04/05/2008 - 13:34

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?

imagem de Marcus VBP

6. Marcus VBP

Disse em seg, 05/05/2008 - 10:08

Danilo, experimenta fazer isso.

imagem de Rafael

7. Rafael*

Disse em qua, 07/05/2008 - 03:23

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

imagem de Marcus VBP

8. Marcus VBP

Disse em qua, 07/05/2008 - 08:32

Rafael, verifique o se o caminho está correto no mapeamento. O caminho não pode ser /rafael/index.html, e sim /home/rafael/index.html.

imagem de Rafael

9. Rafael*

Disse em qua, 07/05/2008 - 13:40

assim?

Alias /Rafael /home/Rafael/www/

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

imagem de Rafael

10. Rafael*

Disse em qua, 07/05/2008 - 13:58

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

imagem de Marcus VBP

11. Marcus VBP

Disse em qui, 08/05/2008 - 07:23

Rafael, está correto.

Tipo, algumas coisas ficaram diferentes na última versão do Ubuntu (se é esta que você está usando), e eu não atualizei o tutorial.

Mas você também pode fazer o seguinte: em vez de mapear o Apache para fora de /var/www você pode criar um link simbólico para alguma pasta que esteja dentro do seu home.

tenta fazer o seguinte:

sudo ln -s ~/www /var/www/Rafael

Isso vai criar um atalho para www dentro da pasta /var/www, e o nome deste atalho é Rafael.

imagem de Márcio

12. Márcio*

Disse em qui, 03/07/2008 - 10:47

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.

imagem de Marcus VBP

13. Marcus VBP

Disse em qui, 03/07/2008 - 11:55

cara, talvez o problema seja porque você tá fazendo assim:

$variavel = 'd'água';

experimenta escrevê-las assim:

$variavel = "d'água";

Outra forma seria tentar utilizar um caractere de escape, assim:

$variavel 'd\'água';

Mas lembrando, não testei nenhuma destas duas soluções, mas eu acho que uma delas deve funcionar.

imagem de andredj

14. andredj*

Disse em sab, 28/02/2009 - 20:43

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á.

imagem de Marcus VBP

15. Marcus VBP

Disse em dom, 01/03/2009 - 11:09

Cara, você vai ter que usar linha de comando para isso. Será algo do tipo:

mysql -u USUARIO -pSENHA -h SERVIDOR NOME_DO_BANCO < ARQUIVO.SQL

imagem de andredj

16. andredj*

Disse em seg, 02/03/2009 - 12:48

obrigado

imagem de Paulo

17. Paulo*

Disse em qua, 13/05/2009 - 18:45

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!

imagem de Marcus VBP

18. Marcus VBP

Disse em qua, 13/05/2009 - 18:54

Paulo, voce vai criar seu banco de dados atraves do phpmyadmin, uma interface do MySQL feita em PHP. você vai instalá-la através do comando de terminarl sudo apt-get install phpmyadmin ou simplesmente procure pelo programa no Synaptics. Após a instalação, acesse http://localhost/phpmyadmin e crie seus bancos de dados.

Você não precisa se preocupar com o local físico onde os bancos de dados são salvos, isso é trabalho para o MySQL.

Enviar novo comentário

O conteúdo deste campo é privado não será exibido publicamente.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Você pode citar outras contribuições usando marcações [quote].
  • Endereços de páginas de internet e emails viram links automaticamente.
  • Linhas e parágrafos quebram automaticamente.

copyright © Marcus VBP, Todos os direitos reservados

Permitida a cópia desde que citado a fonte. [Política de Privacidade]

Powered by Drupal CMS.