DOMINGO, 16 DE MAIO DE 2010
Instalando o Servidor Apache no Linux
Postado por Cesar Augustus Silva às 18:19 49 Comentários

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

root@cesar.augustus.nom.br's
# apt-get install apache2

Fedora/CentOS

root@cesar.augustus.nom.br's
# yum install httpd

Após a instalação, inicie o Apache e coloque para iniciar durante o boot:

root@cesar.augustus.nom.br's
# service httpd start # chkconfig httpd on

Slackware

Baixe o pacote do Apache, suas dependências e instale:

root@cesar.augustus.nom.br's
# installpkg apr-1.3.3-i486-1.tgz # installpkg apr-util-1.3.4-i486-1.tgz # installpkg httpd-2.2.10-i486-1.tgz

Após a instalação feita, coloque o Apache para iniciar durante o boot e inicie:

root@cesar.augustus.nom.br's
# chmod +x /etc/rc.d/rc.httpd # apachectl start

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 80

Salve o arquivo e recarregue as configurações no servidor:

root@cesar.augustus.nom.br's
# /etc/init.d/apache2 reload

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 80

Salve o arquivo e recarregue as configurações no servidor:

root@cesar.augustus.nom.br's
# service httpd reload

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 80

Salve o arquivo e reinicie o servidor Apache:

root@cesar.augustus.nom.br's
# apachectl restart

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.

Figura: Página Teste do Apache

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:

root@cesar.augustus.nom.br's
# apt-get install php5 # /etc/init.d/apache2 restart

Fedora/CentOS

Instale o pacote do PHP e depois reinicie o Apache:

root@cesar.augustus.nom.br's
# yum install php # service httpd restart

Slackware

Baixe o pacote do PHP e instale:

root@cesar.augustus.nom.br's
# installpkg php-5.2.8-i486-1.tgz

Após a instalação, para habilitar o PHP no Apache edite o arquivo "httpd.conf" descomentando a seguinte linha:

Include /etc/httpd/mod_php.conf

Salve o arquivo e reinicie o servidor Apache.

root@cesar.augustus.nom.br's
# apachectl restart

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

root@cesar.augustus.nom.br's
# 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-xsl

Fedora/CentOS

root@cesar.augustus.nom.br's
# 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-xml

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.

Figura: Página Teste do PHP

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

root@cesar.augustus.nom.br's
# mkdir /var/www/website1 # mkdir /var/www/website2

Fedora/CentOS

root@cesar.augustus.nom.br's
# mkdir /var/www/html/website1 # mkdir /var/www/html/website2

Slackware

root@cesar.augustus.nom.br's
# mkdir /srv/httpd/htdocs/website1 # mkdir /srv/httpd/htdocs/website2

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

root@cesar.augustus.nom.br's
# mkdir /var/www/website1/public_html # mkdir /var/www/website2/public_html # mkdir /var/www/website1/logs # mkdir /var/www/website2/logs

Fedora/CentOS

root@cesar.augustus.nom.br's
# 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/logs

Slackware

root@cesar.augustus.nom.br's
# 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/logs

Agora vai configurar no Apache para adicionar os dois sites.

Debian/Ubuntu

Crie um arquivo para cada site no diretório "sites-available":

root@cesar.augustus.nom.br's
# touch /etc/apache2/sites-available/website1 # touch /etc/apache2/sites-available/website2

Adicione 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:

root@cesar.augustus.nom.br's
# a2ensite website1 # a2ensite website2 # /etc/init.d/apache2 reload

Fedora/CentOS

Edite o arquivo "/etc/httpd/conf/httpd.conf", descomentando a seguinte linha abaixo:

NameVirtualHost *:80

E 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:

root@cesar.augustus.nom.br's
# service httpd reload

Slackware

Edite o arquivo "/etc/httpd/httpd.conf", descomentando a seguinte linha abaixo:

Include /etc/httpd/extra/httpd-vhosts.conf

Salve 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:

root@cesar.augustus.nom.br's
# apachectl restart

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.

Licença Creative Commons
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/.
Resposta







* Campos obrigatórios