Como instalar o Apache 2.2 em uma distro do Ubuntu que não o possui nos repositórios.
Requisitos
Você precisa ter o pacote build-essentials instalado para fazer isso.
~# sudo apt-get install build-essential
Para dar ao Apache a capacidade de comprimir a saída para navegadores que o suportam, você precisa instalar o zlib. Faça o download da versão atual do zlip Hompage (zlib-1.2.11.tar.gz até a escrita), extraia-o, navegue até o pasta extraída, compilação e instalação.
wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar -xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure --prefix=/usr/local
make
sudo make install
Instale o Apache 2.2
Faça o download da versão atual da Página de download do Apache (httpd-2.2.32.tar.gz a partir de escrevendo), extraia, navegue até a pasta extraída, construa e instale.
wget http://www-eu.apache.org/dist/httpd/httpd-2.2.32.tar.gz
tar -xvf httpd-2.2.32.tar.gz
cd httpd-2.2.32/
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-deflate --enable-proxy --enable-proxy-balancer --enable-proxy-http
make
sudo make install
Iniciar o Apache:
sudo /usr/local/apache2/bin/apachectl start
Verifique se tudo está OK
Navegue até o link em seu navegador, onde você verá uma mensagem dizendo: "Funciona!".
Alternativamente, você pode fazer isso via terminal:
wget -qO- http://localhost | grep "It works!"
Qual deve ser algo assim no terminal:
<html><body><h1>It works!</h1></body></html>
Faça o Apache iniciar no momento da inicialização
sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apachectl
sudo chmod +x /etc/init.d/apachectl
sudo sed -i '2i #\n### BEGIN INIT INFO\n# Provides: apache2\n# Required-Start: $remote_fs\n# Required-Stop: $remote_fs\n# Default-Start: 2 3 4 5\n# Default-Stop: 0 1 6\n# Description: apache2\n# Short-Description: The Apache webserver\n### END INIT INFO' /etc/init.d/apachectl
sudo /usr/sbin/update-rc.d apachectl defaults
Dica: você pode chamar o apachectl com apachectl do serviço sudo agora.
Apache seguro
sudo service apachectl stop
sudo adduser --system apache
sed -i -e 's/User daemon/User apache/g' /usr/local/apache2/conf/httpd.conf
sed -i -e 's/Group daemon/Group nogroup/g' /usr/local/apache2/conf/httpd.conf
sudo service apachectl start
Verifique as novas configurações
ps -aux | grep httpd
Se a saída do terminal do último comando mostrar algumas linhas que começam com "apache", então tudo está OK.
Configure seu site (s)
Se você quiser configurar seu apache para apenas um site, basta editar o httpd.conf
nano /usr/local/apache2/conf/httpd.conf
Os parâmetros essenciais que você pode querer modificar são:
ServerName www.example.com:80
DocumentRoot "/usr/local/apache2/htdocs"
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Se você quiser configurar mais de um site, dê uma olhada no httpd-vhosts.conf
nano /usr/local/apache2/conf/extra/httpd-vhosts.conf
Você terá que adicionar um < Diretório > seção dentro do < VirtualHost > semelhante ao acima, mas para a raiz do documento do VitualHost. Por exemplo:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
<Directory "/usr/local/apache2/docs/dummy-host.example.com">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>