Apache 2.2.13
Inicialmente, como instalei o
Slackware 12 CD1 Full, provavelmente ele já deve ter instalado um servidor
Apache, devemos mudar o script de iniciação do serviço para iniciar o Apache correto, que é este que foi compilado a alguns passos atrás. Segue abaixo o código do script.
Crie e edite o arquivo que será o script de iniciação do serviço do Apache:
# touch /etc/rc.d/rc.httpd
Edite-o com o conteúdo abaixo, mesmo que arquivo já exista:
# vi /etc/rc.d/rc.httpd
#!/bin/sh
#
# /etc/rc.d/rc.httpd
#
# Start/stop/restart
# the Apache (httpd) web server.
#
# To make Apache start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.httpd
#
# For information on these options, "man apachectl".
case "$1" in
'start')
/usr/local/apache2/bin/apachectl -k start
;;
'stop')
/usr/local/apache2/bin/apachectl -k stop
killall httpd
rm -f /var/run/httpd/*.pid
;;
'restart')
/usr/local/apache2/bin/apachectl -k restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
;;
esac
Saia do arquivo e o salve com a sequência de teclas:
Esc :wq!
Dê permissão de execução ao script:
# chmod +x /etc/rc.d/rc.httpd
Configurando arquivo principal do Apache:
# vi /usr/local/apache2/conf/httpd.conf
Confira se os módulos abaixo estão no arquivo:
LoadModule php5_module modules/libphp5.so
AddHandler php5-script .php
AddType text/html .php
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
Troque o usuário do serviço de:
User daemon
Group daemon
Para:
User apache
Group apache
Coloque um e-mail de preferência no parâmetro:
ServerAdmin email@exemplo.com.br
Localize o parâmetro:
DirectoryIndex index.html
e o altere para:
DirectoryIndex index.html index.php
Inclua as linhas abaixo no final do arquivo para que o módulo ssl seja carregado na porta default (443):
<IfModule mod_ssl.c>
Listen 443
</IfModule>
Os demais parâmetros do arquivo eu deixei default, pois não vou utilizar o diretório raiz do servidor (DocumentRoot "/usr/local/apache2/htdocs"), o que vou fazer é configurar um virtualhost para hospedar o Nagios, tendo em vista que preciso de mais de um site funcionando neste servidor.
NOTA: Inclusive eu costumo remover qualquer tipo de index do diretório raiz, caso queira fazer o mesmo é só rodar este comando:
# rm /usr/local/apache2/htdocs/index*
Virtualhost
Com o virtualhost conseguimos hospedar mais de um site no servidor com apenas um endereço IP, ou seja, o Apache passa a tratar o cabeçalho dos web sites direcionando assim as requisições para o site em que o cliente está tentando acessar.
Não vou entrar muito em detalhes quanto ao conceito e as possíveis configurações deste recurso, porém é sempre bom lembrar que melhores esclarecimentos estão disponíveis no
site dos desenvolvedores do Apache.
Abaixo segue a configuração de um virtualhost que utilizaremos para testar as configurações do Apache e do PHP funcionando em https.
Inicialmente definimos um nome para o nosso virtualhost, geralmente se coloca o IP onde o site será publicado seguido da porta em que o site funcionará (HTTP = porta 80 e HTTPS = porta 443):
NameVirtualHost ip.ip.ip.ip:443
Logo depois vêm as configurações dos sites:
<VirtualHost ip.ip.ip.ip:443>
ServerName nagios.exemplo.com.br:443
DocumentRoot /var/www/nagios
<Directory "/var/www/nagios">
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
SSLEngine on
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
SSLCertificateFile "/etc/ssl/certs/nagios.exemplo.com.br.crt"
SSLCertificateKeyFile "/etc/ssl/private/nome_chave.key"
</VirtualHost>
Posteriormente iremos reconfigurar este virtualhost para o funcionamento do Nagios, de momento o utilizaremos apenas para testar o funcionamento do Apache e do PHP.
Assim finalizamos as configurações no arquivo de configurações do Apache, salve o arquivo através do comando:
Esc + :wq!
No nosso virtualhost configuramos seu diretório raiz para /var/www/nagios, tendo em vista que este diretório ainda não existe, devemos criá-lo com o comando abaixo:
# mkdir /var/www/nagios
Para saber se está tudo funcionando, criaremos o arquivo conforme abaixo:
# touch /var/www/nagios/info.php
Edite este arquivo com o seguinte comando:
# echo "<?php phpinfo(); ?>" > /var/www/nagios/info.php
Agora é iniciar o servidor Apache conforme o script que criamos no início das configurações.
# /etc/rc.d/rc.httpd start
Confira se as portas do serviços estão abertas:
# nmap -sS localhost
Resultado:
Interesting ports on localhost (127.0.0.1):
Not shown: 1692 closed ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
Realize um teste no site através do seu browser:
https://nagios.exemplo.com.br/info.php
Deverá aparecer uma página com as informações do PHP que instalamos 5.2.10.
NOTA: Lembro que por se tratar de um certificado criado por nosso servidor, o mesmo não possui confiança perante a web, ou seja, o browser avisará sobre a integridade do certificado e devemos selecionar a opção que confie no mesmo.
O site deverá ser acessado através deste nome, pois de acordo com os recursos do virtualhost, o Apache passará a tratar o cabeçalho e só direcionará os acessos a pasta deste site se a requisição for com destino ao mesmo, ou seja, https://nagios.exemplo.com.br ou o que você configurou no virtualhost.
Adicione uma entrada em seu DNS apontando o nome que você cadastrou no virtualhost (ServerName nagios.exemplo.com.br:443) para o IP do servidor que você configurou também no virtualhost (NameVirtualHost ip.ip.ip.ip:443).