Como posso instalar o Apache com uma versão específica?

24

Por causa da atualização do Ubuntu, cometi o erro de atualizar o Apache 2.2 para o 2.4 - muitas coisas deram errado.

Não tenho ideia de como especificar a versão depois de apt-get remove apache2 . apt-get install apache2 sempre instala o 2.4.

Como posso fazer isso?

    
por Mithril 09.10.2013 / 07:55

5 respostas

20

Você precisa fazer o seguinte:

apt-cache showpkg <pachagename>

O comando acima exibirá a lista de versões disponíveis para este pacote. Em seguida, selecione a versão necessária e faça o seguinte.

apt-get install <packagename>=<complete version name>

Exemplo:

apt-cache showpkg apache2
apt-get install apache2=2.2.14-5ubuntu8.7
    
por 09.10.2013 / 08:17
4

Veja o howto do ubuntu em pinagem de pacotes :

Edite o arquivo /etc/apt/preferences

O arquivo de 'preferências' é onde a fixação real ocorre. Para fixar um pacote, defina seu Pin-Priority para um número maior. Aqui está um exemplo:

Package: apache2
Pin: release n=raring
Pin-Priority: 1000

Teste antes de executar apt-get update ou apt-get install com apt-cache policy apache2

Veja man apt_preferences para detalhes. Eu escolhi fixar o lançamento de raring porque desta forma você ainda obterá atualizações na ramificação 2.2.x. Não se esqueça de disponibilizar o pacote para o APT adicionando URLs do repositório raring .

Atualizar :

Como raring é EOL, você pode usar os pacotes precise ou raring arquivados do link .

Usar isso como /etc/apt/sources.list.d/raring.list permitirá que você instale pacotes antigos:

deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
    
por 09.10.2013 / 08:26
4

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>
    
por 31.05.2017 / 17:10
1

Você fez o upgrade do Ubuntu 13.04 para o 13.10? Não há como recuperar o Apache 2.2 sem sair dos repositórios de pacotes do Ubuntu. É melhor apenas consertar sua configuração do Apache para que ela funcione com o 2.4.

    
por 06.02.2014 / 21:41
1

Para instalar o apache2.2, use o seguinte processo:

Em uma distro posterior (por exemplo, 16.04), eu baixei o 2.2.31 do site Apache.

Eu criei usando a seguinte configuração:

./configure --enable-so --enable-ssl --with-included-apr --enable-mods-shared=all --enable-load-all-modules --enable-rewrite --enable-proxy --enable-proxy_connect --enable-proxy_http --enable-proxy_ajp --enable-authn_alias --with-npm=prefork --enable-proxy_balancer --enable-proxy_ftp --enable-cache --enable-suexec --enable-disk_cache  > conf.txt

Então, é claro, aprimorando os arquivos httpd.conf e ssl.conf.

Depois disso, apenas corro o ./httpd -k start

E funciona!

observe que eu adicionei o apache2.4 por meio do apt-get, mas nunca o removi. Isso significa que após o início do sistema, eu preciso matar o processo apache2. E então eu sou capaz de iniciar o apache2.2. Eu tive que instalar o apache2.4 para usar o apachectl mas depois o desbandei porque eu uso ./httpd

    
por 16.09.2016 / 11:59