Hoje irei mostrar como instalar o Servidor Apache para poder hospedar sites com páginas web desenvolvida em HTML e PHP no GNU/Linux.
Instalando o Apache
Debian/Ubuntu
# apt-get install apache2root@cesar.augustus.nom.br's
Fedora/CentOS
# yum install httpdroot@cesar.augustus.nom.br'sApós a instalação, inicie o Apache e coloque para iniciar durante o boot:
# service httpd start # chkconfig httpd onroot@cesar.augustus.nom.br's
Slackware
Baixe o pacote do Apache, suas dependências e instale:
- ftp://ftp.slackware-brasil.com.br/slackware(...)/n/httpd-2.2.10-i486-1.tgz
- ftp://ftp.slackware-brasil.com.br/slackware(...)/l/apr-1.3.3-i486-1.tgz
- ftp://ftp.slackware-brasil.com.br/slackware(...)/l/apr-util-1.3.4-i486-1.tgz
# installpkg apr-1.3.3-i486-1.tgz # installpkg apr-util-1.3.4-i486-1.tgz # installpkg httpd-2.2.10-i486-1.tgzroot@cesar.augustus.nom.br'sApós a instalação feita, coloque o Apache para iniciar durante o boot e inicie:
# chmod +x /etc/rc.d/rc.httpd # apachectl startroot@cesar.augustus.nom.br's
Configurando o Apache
Vamos fazer umas configurações no Apache conforme o necessário.
Debian/Ubuntu
O diretório "/etc/apache2" é onde fica os arquivos de configuração. Para mudar a porta do servidor, modifique no arquivo "ports.conf" as seguintes linhas abaixo:
NameVirtualHost *:80 Listen 80Salve o arquivo e recarregue as configurações no servidor:
# /etc/init.d/apache2 reloadroot@cesar.augustus.nom.br's
Fedora/CentOS
O diretório "/etc/httpd" é onde fica os arquivos de configuração. Todas as configurações são feitas no arquivo "httpd.conf" que fica no diretório "/etc/httpd/conf". Para mudar a porta do servidor, modifique a seguinte linha:
Listen 80Salve o arquivo e recarregue as configurações no servidor:
# service httpd reloadroot@cesar.augustus.nom.br's
Slackware
O diretório "/etc/httpd" é onde fica os arquivos de configuração. Para mudar a porta do servidor, modifique no arquivo "httpd.conf" a seguinte linha:
Listen 80Salve o arquivo e reinicie o servidor Apache:
# apachectl restartroot@cesar.augustus.nom.br's
Testando o Apache
Com o Apache instalado, acesse o endereço "http://localhost/" que será exibida uma página de teste para indicar que o servidor está funcionando.
Suporte a PHP
Para hospedar no Apache, páginas dinâmicas desenvolvida em PHP, é necessário instalar os módulos do PHP.
Instalando o PHP
Debian/Ubuntu
Instale o pacote do PHP e depois reinicie o Apache:
# apt-get install php5 # /etc/init.d/apache2 restartroot@cesar.augustus.nom.br's
Fedora/CentOS
Instale o pacote do PHP e depois reinicie o Apache:
# yum install php # service httpd restartroot@cesar.augustus.nom.br's
Slackware
Baixe o pacote do PHP e instale:
# installpkg php-5.2.8-i486-1.tgzroot@cesar.augustus.nom.br'sApós a instalação, para habilitar o PHP no Apache edite o arquivo "httpd.conf" descomentando a seguinte linha:
Include /etc/httpd/mod_php.confSalve o arquivo e reinicie o servidor Apache.
# apachectl restartroot@cesar.augustus.nom.br's
Módulos PHP
Na instalação do PHP é instalado apenas os seguintes módulos para o funcionamento do PHP:
- libapache2-mod-php: Permite que o Apache 2 "entenda" o PHP.
- php: Contém os arquivos binários e de configuração para utilização do PHP.
- common: Contém documentação e arquivos de exemplo.
- hash: Suporte a algoritmos hash como MD5 e SHA1.
Porém há diversos módulos para cada funcionalidade no PHP:
- cli: Fornece um interpretador de comando para testar Scripts PHP.
- curl: CURL é uma biblioteca para recuperar arquivos via FTP, GOPHER e HTTP.
- dev: Pacote contendo os arquivos fonte do PHP necessários para compilar módulos adicionais
- gd: Responsável por manipular arquivos PNG, JPEG, XPM e TTF diretamente de scripts PHP.
- imagick: Pacote que possibilita a manipulação de arquivos de imagem.
- imap: Pacote que permite suporte a IMAP.
- interbase: Responsável pela conexão ao banco de dados Interbase/Firebird.
- mcrypt: Suporta uma grande variedade de algoritmos de criptografia.
- memcache: Objeto de cache de memória. Muito útil para performance.
- mysql: Responsável pela conexão ao banco de dados MySQL.
- pear: É um repositório de código PHP focado na reutilização de código.
- pgsql: Responsável pela conexão ao banco de dados PostgreSQL.
- pspell: Checagem de ortografia. Vale a pena dar uma olhada no Aspell.
- recode: Permite a recodificação de caracteres.
- sybase: Responsável pela conexão ao banco de dados Sybase e Microsoft SQL Server.
- tidy: Permite limpar e manipular de arquivos HTML.
- xmlrpc: Basicamente utilizado para webservices, permite a comunicação entre processos.
- xsl: Permite transformar arquivos XML tanto em outro através de XSLT quanto HTML ou texto.
Para instalar os módulos descrito acima, segue abaixo o nome dos pacotes de cada módulo, respectivamente:
Debian/Ubuntu
# apt-get install php5-cli php5-curl php5-dev php5-gd php5-imagick php5-imap php5-interbase php5-mcrypt php5-memcache php5-mysql php-pear php5-pgsql php5-pspell php5-recode php5-sybase php5-tidy php5-xmlrpc php5-xslroot@cesar.augustus.nom.br's
Fedora/CentOS
# yum install php-cli php-curl php-devel php-gd php-pecl-imagick php-imap php-interbase php-mcrypt php-pecl-memcache php-mysql php-pear php-pgsql php-pspell php-recode php-mssql php-tidy php-xmlrpc php-xmlroot@cesar.augustus.nom.br's
Testando o PHP
Para verificar se o PHP está ativo no Apache, crie um arquivo com o nome "info.php" no diretório raiz do servidor Web:
- Debian/Ubuntu: "/var/www"
- Fedora/CentOS: "/var/www/html"
- Slackware: "/srv/httpd/htdocs"
E adicione as seguintes linhas abaixo:
<?php
phpinfo();
?>
Salve o arquivo, e acesse o endereço "http://localhost/info.php", que será exibida a página com os detalhes da configuração do PHP e módulos ativos.
Virtual Hosts
O Virtual Host permite hospedar diversos sites, com domínios ou subdomínios diferentes num único servidor web e com um único endereço IP.
Vamos criar dois sites com os seguintes domínios:
- website1.com.br
- website2.com.br
Crie um diretório para cada site no diretório raiz do servidor Web:
Debian/Ubuntu
# mkdir /var/www/website1 # mkdir /var/www/website2root@cesar.augustus.nom.br's
Fedora/CentOS
# mkdir /var/www/html/website1 # mkdir /var/www/html/website2root@cesar.augustus.nom.br's
Slackware
# mkdir /srv/httpd/htdocs/website1 # mkdir /srv/httpd/htdocs/website2root@cesar.augustus.nom.br's
Em cada diretório, crie dois subdiretórios com os seguintes nomes:
- public_html: é onde será armazenado as páginas do site que serão acessados.
- logs: é onde será armazenado os arquivos de Log de acesso.
Debian/Ubuntu
# mkdir /var/www/website1/public_html # mkdir /var/www/website2/public_html # mkdir /var/www/website1/logs # mkdir /var/www/website2/logsroot@cesar.augustus.nom.br's
Fedora/CentOS
# mkdir /var/www/html/website1/public_html # mkdir /var/www/html/website2/public_html # mkdir /var/www/html/website1/logs # mkdir /var/www/html/website2/logsroot@cesar.augustus.nom.br's
Slackware
# mkdir /srv/httpd/htdocs/website1/public_html # mkdir /srv/httpd/htdocs/website2/public_html # mkdir /srv/httpd/htdocs/website1/logs # mkdir /srv/httpd/htdocs/website2/logsroot@cesar.augustus.nom.br's
Agora vai configurar no Apache para adicionar os dois sites.
Debian/Ubuntu
Crie um arquivo para cada site no diretório "sites-available":
# touch /etc/apache2/sites-available/website1 # touch /etc/apache2/sites-available/website2root@cesar.augustus.nom.br'sAdicione no arquivo "website1" as seguintes linhas abaixo:
<VirtualHost *:80> ServerAdmin webmaster@website1.com.br DocumentRoot /var/www/website1/public_html ServerName website1.com.br ErrorLog /var/www/website1/logs/error.log CustomLog /var/www/website1/logs/access.log combined </VirtualHost>E adicione no arquivo "website2" as seguintes linhas abaixo:
<VirtualHost *:80> ServerAdmin webmaster@website2.com.br DocumentRoot /var/www/website2/public_html ServerName website2.com.br ErrorLog /var/www/website2/logs/error.log CustomLog /var/www/website2/logs/access.log combined </VirtualHost>Depois ative ambos os sites e recarregue as configurações no servidor:
# a2ensite website1 # a2ensite website2 # /etc/init.d/apache2 reloadroot@cesar.augustus.nom.br's
Fedora/CentOS
Edite o arquivo "/etc/httpd/conf/httpd.conf", descomentando a seguinte linha abaixo:
NameVirtualHost *:80E adicione no final do arquivo as seguintes linhas:
<VirtualHost *:80> ServerAdmin webmaster@website1.com.br DocumentRoot /var/www/html/website1/public_html ServerName website1.com.br ErrorLog /var/www/html/website1/logs/error.log CustomLog /var/www/html/website1/logs/access.log combined </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@website2.com.br DocumentRoot /var/www/html/website2/public_html ServerName website2.com.br ErrorLog /var/www/html/website2/logs/error.log CustomLog /var/www/html/website2/logs/access.log combined </VirtualHost>Depois de configurar, recarregue as configurações no servidor:
# service httpd reloadroot@cesar.augustus.nom.br's
Slackware
Edite o arquivo "/etc/httpd/httpd.conf", descomentando a seguinte linha abaixo:
Include /etc/httpd/extra/httpd-vhosts.confSalve o arquivo, abre o arquivo "/etc/httpd/extra/httpd-vhosts.conf" e adicione as seguintes linhas:
<VirtualHost *:80> ServerAdmin webmaster@website1.com.br DocumentRoot /srv/httpd/htdocs/website1/public_html ServerName website1.com.br ErrorLog /srv/httpd/htdocs/website1/logs/error.log CustomLog /srv/httpd/htdocs/website1/logs/access.log combined </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@website2.com.br DocumentRoot /srv/httpd/htdocs/website2/public_html ServerName website2.com.br ErrorLog /srv/httpd/htdocs/website2/logs/error.log CustomLog /srv/httpd/htdocs/website2/logs/access.log combined </VirtualHost>Depois de configurar, reinicie o servidor Apache:
# apachectl restartroot@cesar.augustus.nom.br's
Acessando os Sites
Crie uma página de teste para cada site, e salve com o nome "index.html" no subdiretório "public_html" de cada site.
Para poder acessar o site com o domínio, adicione no arquivo "/etc/hosts" o IP do servidor e o domínio:
127.0.0.1 website1.com.br 127.0.0.1 website2.com.br
Acesse os endereços "http://website1.com.br/" e "http://website2.com.br/", será exibido a página de teste que foi criada.
Pronto.

A obra Instalando o Servidor Apache no Linux de Cesar Augustus Silva foi licenciada com uma Licença Creative Commons - Atribuição - Partilha nos Mesmos Termos 3.0 Não Adaptada.
Permissões adicionais ao âmbito desta licença podem estar disponíveis em http://creativecommons.org/.
A aula ficou muito boa e fácil de compreender.
Parabéns, espero novas....
estou louco para colocar um servidor de web no ar, ainda nem sei como quem sabe esse num poderia ser o proximo tutorial. rsrsrs
Nunca tinha usado o Vim ( tive que apt-get, nao estava a funcionar), e adorei.
Será que podia fazer um video a explicar como configurar o Apache2 para que o pessoal de fora consiga aceder??
Estou usando No-IP por causa do IP dinamico.
Muito Bom video mesmo.
Espero ver mais tutorias como esse aqui.
Parabéns
Valeu
Constatinou
Valeu mesmo em, Muito OBRIGADOO!
Cara muito boa a dica. Me ajudou demais!
Parabéns.
Abraço
JD
Ps: Só tive q voltar o vídeo pq dormi no meio por causa da musica. rsrsrssr
ate pode complementar com >>
ServerAlias websitexx.com.br *.websitexx.com.br
valeu!!
Gostei muito dos tutoriais ajudou pacas ainda mais eu que so virgem na area, continue assim.
Minha duvida é igual ao do Anderson Nunes.
Quero acessar meu site que esta no Ubuntu de fora da minha rede.
Obrigado
cara qual é função do apache no meu servidor????
pesquisei e não achei mta coisa a respeito...só sei que é uma ferramenta mto usada..
abraço
sou meio tapado... não consigo fazer quase nada que tento "repetir" dos tutoriais e dicas...
O php nao funcionou... também não aceita o comando apache2 restar ou reload
mas valeu... o apache funcionou
(Debian sqeeze)
Muito legal teu blog. Muita informação atualizada, show.
Mas estou com um probleminha aqui. Fiz as configurações conforme explicado, estou usando uma máquina virtual no windows pelo VitualBox. Consigo acessar o host do apache normalmente mas não consigo acessar o host virtual. É como se o site tivesse fora do ar.
Pode me ajudar???
Parabéns César Augusto.
Você tem uma excelente didática para transmitir por escrito o conhecimento!
Desejo-lhe sucesso em todas as suas empreitadas!