Arquivo do blog

terça-feira, 30 de agosto de 2011

Instalando o Servidor Apache no Linux Debian

Instalando o Servidor Apache no Linux

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.

Nenhum comentário:

Postar um comentário