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:
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.
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!
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).
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.
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 ;).
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
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:
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.
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
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.
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.
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.
copyright © Marcus VBP, Todos os direitos reservados
Permitida a cópia desde que citado a fonte. [Política de Privacidade]
Powered by Drupal CMS.
1. Marcelo_Amaral (a.k.a K1LL -9)*
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.
2. 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
3. Web Design no Linux: Download de palestra em PDF | Marcus VB*
4. fechaTag &raquo; A experiência de uso Linux - XML, XHTML*
5. 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?
6. Marcus VBP
Danilo, experimenta fazer isso.
7. 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
8. Marcus VBP
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.
9. Rafael*
assim?
Alias /Rafael /home/Rafael/www/
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
10. Rafael*
com as tags claro, q não aparecem no navegador
11. Marcus VBP
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.
12. 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.
13. Marcus VBP
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.
Enviar novo comentário