sexta-feira, 8 de janeiro de 2010

Servidor web com CentOS + Apache

Introdução

Nesse breve artigo vamos abordar a instalação e configuração do Apache no CentOS e mais algumas funcionalidades indispensáveis nos atuais servidores web. 

Apesar de já haver muito material a respeito, uma simples busca no Google já retorna vários textos, resolvi escrever sobre isso por ser algo simples que às vezes foge da memória, tendo esse texto publicado fica mais fácil de consultar posteriormente e também por não ter encontrado aqui no VOL nenhum texto semelhante. 

Para iniciarmos, vamos colocar aqui algumas descrições básicas, porque sempre tem algum marinheiro de primeira viagem. 

CentOS é uma distribuição Linux de classe Enterprise derivada de códigos fonte gratuitamente distribuídos pela Red Hat Enterprise Linux e mantida pelo CentOS Project. 

A numeração das versões é baseada na numeração do Red Hat Enterprise Linux. Por exemplo, o CentOS 4 é baseado no Red Hat Enterprise Linux 4. A diferença básica entre um e outro é o fornecimento de suporte pago na aquisição de um Red Hat Enterprise Linux. Funcionalmente, pode-se considerar os sistemas clones. 

CentOS proporciona um grande acesso aos softwares padrão da indústria, incluindo total compatibilidade com os pacotes de softwares preparados especificamente para os sistemas da Red Hat Enterprise Linux. Isso lhe dá o mesmo nível de segurança e suporte, através de updates, que outras soluções Linux Enterprise, porém sem custo. 

Suporta tanto ambientes de servidores para aplicações de missão crítica quanto ambientes de estações de trabalho e ainda possui uma versão Live CD. 

CentOS possui numerosas vantagens, incluindo: uma comunidade ativa e crescente, um rápido desenvolvimento e teste de pacotes, uma extensa rede para downloads, desenvolvedores acessíveis, múltiplos canais de suporte incluindo suporte em português e suporte comercial através de parceiros. 

Fonte: http://pt.wikipedia.org/wiki/Centos 

O servidor Apache (ou Servidor HTTP Apache, em inglês: Apache HTTP Server, ou simplesmente: Apache) é o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications). Numa pesquisa realizada em dezembro de 2007[1], foi constatado que a utilização do Apache representa 47.20% dos servidores ativos no mundo. 

É a principal tecnologia da Apache Software Foundation, responsável por mais de uma dezena de projetos envolvendo tecnologias de transmissão via web, processamento de dados e execução de aplicativos distribuídos. 

O servidor é compatível com o protocolo HTTP versão 1.1[2]. Suas funcionalidades são mantidas através de uma estrutura de módulos, permitindo inclusive que o usuário escreva seus próprios módulos - utilizando a API do software. 

É disponibilizado em versões para os sistemas Windows, Novell Netware, OS/2 e diversos outros do padrão POSIX (Unix, Linux, FreeBSD, etc). 

Fonte: http://pt.wikipedia.org/wiki/Servidor_Apache 

PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor") é uma linguagem de programação de computadores interpretada, livre e muito utilizada para gerar conteúdo dinâmico na World Wide Web, como por exemplo a Wikipédia. 

Fonte: http://pt.wikipedia.org/wiki/php 

O MySQL é um sistema de gerenciamento de banco de dados (SGBD) que utiliza a linguagem SQL (Structured Query Language - Linguagem de Consulta Estruturada) como interface. É atualmente um dos bancos de dados mais populares, com mais de 10 milhões de instalações pelo mundo. 

Fonte: http://pt.wikipedia.org/wiki/mysql 

 

Instalação e configuração

Agora vamos colocar a mão na massa. 

Caso você esteja montando um servidor do zero, quero dizer, desde o inicio, pode seguir o seguinte artigo para a instalação do CentOS: Instalação do CentOS-5.3 

E então depois de instalado, faça a atualização do sistema: 

# yum update -y 

E aí pode esperar um pouco, pois no momento que estou escrevendo esse texto a versão atual é a 5.4 e já existe em torno de 40MB de atualização. Caso você tenha instalado uma versão mais antiga, como 5.2 ou 5.3 a quantidade de atualizações pode ser um pouco maior. 

Depois de atualizado e reiniciado, vamos instalar os pacotes para o servidor. 

# yum install httpd mysql-server php-mysql php php-cli php-gd php- xml php-mbstring php-mcrypt php-mhash php-common php-ncurses 

Nesse único comando ele já deve instalar tudo que precisamos para o servidor padrão Apache + PHP + MySQL. 

Então nesse ponto, confirme e aguarde, são em torno de 23MB para baixar e instalar. 

Agora vamos configurar. 

Primeiro vamos já deixar configurado para que no boot da maquina o apache o MySQL seja iniciados, para tal use o comando: 

# ntsysv 

Depois disso selecione as opções: 

[*] httpd 
[*] mysqld 

E pronto. Dessa forma, sempre que a máquina for reiniciada os dois vão subir. 

Agora vamos configurar o MySQL. 

# service mysqld start 

Com isso ele já faz todo o procedimento de criar as tabelas, dar permissão e tudo mais. Agora é preciso setar uma senha para o root, faremos da seguinte forma: 

# /usr/bin/mysqladmin -u root password 'mysqlpass' 

Prontinho, MySQL configurado e com a senha setada. Para testar, faça: 

# mysql -u root -p 

Insira a senha, se entrar é porque está ok. 

Agora vamos configurar o Apache. 

Primeiro inicie o Apache: 

# service httpd start 

Agora crie o arquivo phpinfo para testar o PHP: 

# echo "<?php phpinfo(); ?>" > /var/www/html/info.php 

Então acesse o endereço: http://ip-do-servidor/info.php 

E pronto, nem precisamos configurar nada, mas caso precise fazer alguma configuração específica entre no diretório /etc/httpd/ e dentro dele existem os diretórios conf e conf.d, que são onde ficam as configurações. O conf.d armazena a configuração dos módulos adicionados no Apache e o conf é onde fica a própria configuração do servidor. 

Só um lembrete, se não conseguir acessar o IP do servidor via browser, edite o arquivo: 

/etc/sysconfig/iptables 

E adicione a seguinte linha: 

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

E depois rode o comando: 

# iptables-restore /etc/sysconfig/iptables 

E pronto, vai conseguir acessar e por aqui encerramos a configuração do apache com PHP e MySQL. 

Bem simples, não? 

Bônus: phpMyAdmin

PhpMyAdmin é um programa de computadordesenvolvido em PHP para administração do MySQL pela internet. A partir deste sistema é possível criar e remover bases de dados, criar, remover e alterar tabelas, inserir, remover e editar campos, executar códigos SQL e manipular campos chaves. 

Fonte: http://pt.wikipedia.org/wiki/Phpmyadmin 

Para instalar o phpMyAdmin vamos utilizar um repositório adicional no yum, o rpmforge. Para isso faça os seguintes passos. 

Baixe ele no seguinte endereço:https://rpmrepo.org/RPMforge/Using 

# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm 
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm 

Agora vamos instalar o phpMyAdmin: 

# yum install phpmyadmin 
 

Agora edite o arquivo config.inc.php da seguinte forma: 

# vi /usr/share/phpmyadmin/config.inc.php 

E altere a variável: 

$cfg['blowfish_secret'] = ''; 

Para algo semelhante a isso: 

$cfg['blowfish_secret'] = 'sdfakdEW234dswfesDfescVcvxDefsddd';

Podendo ser qualquer sequência de letras e números. 

Agora edite o arquivo /etc/httpd/conf.d/phpmyadmin.conf e deixe ele da seguinte forma: 

#
# Web application to manage MySQL
#


<Directory "/usr/share/phpmyadmin">
  Order Deny,Allow
#  Deny from all
  Allow from all
</Directory>

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

Dessa forma todos poderão acessar o phpmyadmin. Caso queira deixar liberado apenas para um ip. Descomente o Deny from all e altere o Allow para "Allow from ip-desejado" e daí apenas esse ip terá acesso ao phpmyadmin. 

Depois disso reinicie o Apache: 

# service httpd restart 

E agora vamos acessar o phpmyadmin: http://ip-do-servidor/phpmyadmin 

E pronto, seu phpmyadmin está instalado e configurado. 

Conclusão

Bom, espero que esse artigo possa ajudar os iniciantes que estão precisando montar algo semelhante. 

Qualquer dúvida ou sugestão estou a disposição. 

E esse artigo eu gostaria de oferecer para o pessoal do meu antigo trampo, o pessoal lá da G8, o Thiago Roberth, o Clayton, o Marcão, o Rui, o Gustavo, o Joerlei e o pessoal da técnica que vive dando trabalho pra instalar internet na casa da gente... um Salve "proceis". 

Referências:

 
 

 

0 comentários :

Enviar um comentário