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-o, 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 no 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>
Crie um "serviço" para o Apache2
sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache22
sudo chmod +x /etc/init.d/apache22
Dica: você pode chamar o apachectl com o sudo service apache22 agora.
Faça o Apache iniciar no momento da inicialização
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/apache22
sudo /usr/sbin/update-rc.d apache22 defaults
Apache seguro
sudo service apache22 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 apache22 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/httpd.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>