Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

linux:artigos:apache-completo_php_ssl [13/01/2015 10:44] (atual)
Linha 1: Linha 1:
 +~~NOTOC~~
 +====== Instalando e configurando Apache2 com suporte PHP e SSL ======
 +
 +===== Instalando os pacotes =====
 +
 +Primeiramente vamos instalar os pacotes necessários
 +
 +<​code>​
 +root@debian:​~#​ aptitude install apache2 apache2-utils libapache2-mod-php5
 +root@debian:​~#​ aptitude install php5 php5-cgi php5-gd php5-snmp php-pear
 +</​code>​
 +
 +===== Configurando o Apache2 =====
 +
 +No Debian GNU/Linux, a configuração do apache é extremamente enxuta, não havendo, no meu ponto de vista, realizar quqlquer alteração no arquivo //​**apache2.conf**//​. As alterações ficarão por conta dos domínios virtuais que veremos mais adiante.
 +
 +===== Domínios Virtuais =====
 +
 +<​code>​
 +root@debian:​~#​ cd /​etc/​apache2/​sites-available
 +root@debian:/​etc/​apache2/​sites-available#​ ls
 +
 +default
 +</​code>​
 +
 +Note que o único arquivo que vem configurado por padrão é o arquivo //​**default**//​. No Debian GNU/Linux, existe um link simbólico que é criado em //​**/​etc/​apache2/​sites-enabled**//​ que habilita/​desabilita os domínios virtuais do apache2.
 +
 +<​code>​
 +root@debian:/​etc/​apache2/​sites-available#​ ls -l ../​sites-enabled/​
 +
 +total 0
 +lrwxrwxrwx 1 root root 36 2009-02-09 05:57 000-default -> /​etc/​apache2/​sites-available/​default
 +
 +</​code>​
 +
 +Nesse ponto, vamos desabilitar o ambiente //default// que o apache2 cria na instalação e criar o(s) nosso(s) próprio(s) ​ .
 +
 +<​code>​
 +root@debian:/​etc/​apache2/​sites-available#​ a2dissite default
 +Site default disabled.
 +Run '/​etc/​init.d/​apache2 reload'​ to activate new configuration!
 +</​code>​
 +
 +<​code>​
 +root@debian:/​etc/​apache2/​sites-available#​ ls -l ../​sites-enabled/​
 +total 0
 +</​code>​
 +
 +Note que o apache2 pede para realizar um //reload// no serviço, mas não precisamos realizar isso agora, pois ainda iremos fazer mais alterações no ambiente.
 +
 +O passo agora é criar o(s) domínio(s) virtual(is) desejados.
 +
 +<​code>​
 +root@debian:/​etc/​apache2/​sites-available#​ vi www.dominio.com.br
 +
 +<​VirtualHost www.dominio.com.br:​80>​
 +        ServerAdmin webmaster@dominio.com.br
 +        ServerName www.dominio.com.br
 +        ServerAlias www.dominio.com.br
 +
 +        DocumentRoot /​var/​www/​site
 +        <​Directory /​var/​www/​site>​
 +                Options -Indexes FollowSymLinks MultiViews
 +                AllowOverride All
 +                Order allow,deny
 +                allow from all
 +        </​Directory>​
 +
 +        ScriptAlias /cgi-bin/ /​var/​www/​site/​cgi-bin/​
 +        <​Directory "/​var/​www/​cgi-bin">​
 +                AllowOverride None
 +                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
 +                Order allow,deny
 +                Allow from all
 +        </​Directory>​
 +
 +        ErrorLog /​var/​log/​apache2/​error.log
 +
 +        # Possible values include: debug, info, notice, warn, error, crit,
 +        # alert, emerg.
 +        LogLevel warn
 +
 +        CustomLog /​var/​log/​apache2/​access.log combined
 +        ServerSignature On
 +</​VirtualHost>​
 +</​code>​
 +
 +**Obs.:** Um modelo de arquivo para domínio virtual pode ser baixado em [[http://​downloads.fabriciovc.eti.br/​apache/​]].
 +
 +**Nota:** Para outros domínios virtuais, apenas crie um arquivo igual ao apresentado para cada domínio virtual desejado.
 +
 +Em seguida cadastre o IP que será utilizado pelo domínio que está sendo confurado.
 +
 +<​code>​
 +root@debian:/​etc/​apache2/​sites-available#​ vi ../​httpd.conf
 +
 +NameVirtualHost 72.233.116.82:​80
 +</​code>​
 +
 +Não podemos esquecer de ativar o domínio recem configurado.
 +
 +<​code>​
 +root@debian:/​etc/​apache2/​sites-available#​ a2ensite www.dominio.com.br
 +Enabling site www.dominio.com.br.
 +Run '/​etc/​init.d/​apache2 reload'​ to activate new configuration!
 +</​code>​
 +
 +<​code>​
 +root@debian::/​etc/​apache2/​sites-available#​ l ../​sites-enabled/​
 +total 0
 +lrwxrwxrwx 1 root root 49 2009-02-13 12:13 www.dominio.com.br -> /​etc/​apache2/​sites-available/​www.dominio.com.br
 +</​code>​
 +
 +Também precisamos acertar o arquivo //​**ports.conf**//​ pois não estamos usando a configuração default.
 +
 +<​code>​
 +root@debian:/​etc/​apache2/​sites-available#​ vi ../​ports.conf
 +
 +#​NameVirtualHost *:80
 +Listen 80
 +
 +<​IfModule mod_ssl.c>​
 +    # SSL name based virtual hosts are not yet supported, therefore no
 +    # NameVirtualHost statement here
 +    Listen 443
 +</​IfModule>​
 +</​code>​
 +
 +E para finalizar, reinicie o serviço do apache2.
 +
 +<​code>​
 +root@debian:/​etc/​apache2/​sites-available#​ /​etc/​init.d/​apache2 stop
 +root@debian:/​etc/​apache2/​sites-available#​ /​etc/​init.d/​apache2 start
 +</​code>​
 +
 +===== Configurando o suporte a SSL =====
 +
 +Primeiramente precisamos habilitar o módulo SSL.
 +
 +<​code>​
 +root@debian:​~#​ a2enmod ssl
 +
 +Enabling module ssl.
 +
 +Run '/​etc/​init.d/​apache2 restart'​ to activate new configuration!
 +</​code>​
 +
 +==== Gerando o certificado ====
 +
 +O próximo passo, é gerar a chave privada(.key),​ a requisição de certificado(.csr) e o certificado(.crt) para o funcionamento do apache com criptografia.
 +
 +<​code>​
 +root@debian:​~#​ mkdir /​etc/​apache2/​ssl
 +root@debian:​~#​ cd /​etc/​apache2/​ssl
 +root@debian:/​etc/​apache2/​ssl#​ openssl genrsa -out dominio.com.br.key 1024
 +root@debian:/​etc/​apache2/​ssl#​ openssl req -new -key dominio.com.br.key -out dominio.com.br.csr
 +root@debian:/​etc/​apache2/​ssl#​ openssl x509 -req -days 3650 -in dominio.com.br.csr -signkey dominio.com.br.key -out dominio.com.br.crt
 +</​code>​
 +
 +==== Configurando o apache ====
 +
 +Editando os arquivos de configuração.
 +
 +<​code>​
 +root@debian:​~#​ vi /​etc/​apache2/​ports.conf
 +
 +#​NameVirtualHost *:80
 +Listen 80
 +
 +<​IfModule mod_ssl.c>​
 +    # SSL name based virtual hosts are not yet supported, therefore no
 +    # NameVirtualHost statement here
 +    Listen 443
 +</​IfModule>​
 +</​code>​
 +
 +<​code>​
 +root@debian:​~#​ vi /​etc/​apache2/​httpd.conf
 +
 +NameVirtualHost 72.233.116.82:​80
 +NameVirtualHost 72.233.116.82:​443
 +</​code>​
 +
 +<​code>​
 +root@debian:​~#​ cd /​etc/​apache2/​sites-available
 +root@debian:/​etc/​apache2/​sites-available#​ vi www.dominio.com.br
 +
 +<​VirtualHost www.dominio.com.br:​80>​
 +        ServerAdmin webmaster@dominio.com.br
 +        ServerName www.dominio.com.br
 +        ServerAlias www.dominio.com.br
 +
 +        DocumentRoot /​var/​www/​site
 +        <​Directory /​var/​www/​site>​
 +                Options -Indexes FollowSymLinks MultiViews
 +                AllowOverride All
 +                Order allow,deny
 +                allow from all
 +        </​Directory>​
 +
 +        ScriptAlias /cgi-bin/ /​var/​www/​site/​cgi-bin/​
 +        <​Directory "/​var/​www/​cgi-bin">​
 +                AllowOverride None
 +                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
 +                Order allow,deny
 +                Allow from all
 +        </​Directory>​
 +
 +        ErrorLog /​var/​log/​apache2/​error.log
 +
 +        # Possible values include: debug, info, notice, warn, error, crit,
 +        # alert, emerg.
 +        LogLevel warn
 +
 +        CustomLog /​var/​log/​apache2/​access.log combined
 +        ServerSignature On
 +</​VirtualHost>​
 +
 +<​VirtualHost www.dominio.com.br:​443>​
 +        ServerAdmin webmaster@dominio.com.br
 +        ServerName www.dominio.com.br
 +        ServerAlias www.dominio.com.br
 +
 +        DocumentRoot /​var/​www/​site
 +        <​Directory /​var/​www/​site>​
 +                Options -Indexes FollowSymLinks MultiViews
 +                AllowOverride All
 +                Order allow,deny
 +                allow from all
 +        </​Directory>​
 +
 + SSLEngine on
 +
 + SSLCertificateFile /​etc/​apache2/​ssl/​dominio.com.br.crt
 + SSLCertificateKeyFile /​etc/​apache2/​ssl/​dominio.com.br.key
 +
 +        ScriptAlias /cgi-bin/ /​var/​www/​site/​cgi-bin/​
 +        <​Directory "/​var/​www/​cgi-bin">​
 +                AllowOverride None
 +                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
 +                Order allow,deny
 +                Allow from all
 +        </​Directory>​
 +
 +        ErrorLog /​var/​log/​apache2/​error.log
 +
 +        # Possible values include: debug, info, notice, warn, error, crit,
 +        # alert, emerg.
 +        LogLevel warn
 +
 +        CustomLog /​var/​log/​apache2/​access.log combined
 +        ServerSignature On
 +</​VirtualHost>​
 +</​code>​
 +
 +Reinicie o serviço apache.
 +
 +<​code>​
 +root@debian:​~#​ /​etc/​init.d/​apache2 stop
 +root@debian:​~#​ /​etc/​init.d/​apache2 start
 +</​code>​
 +
 +----
 +<​html>​
 +<a href="​javascript:​window.history.go(-1)">​Voltar</​a>​
 +</​html>​
  
linux/artigos/apache-completo_php_ssl.txt · Última modificação: 13/01/2015 10:44 (edição externa)