Não é possível encontrar 'a2dissite' e 'a2ensite' depois de criar 'apache2' a partir da fonte no Mint17

0

Depois de criar servidor http apache2 a partir da fonte ( 2.4.23 ) Eu não tenho os comandos a2dissite e a2ensite .

Configure foi:

./configure --with-included-apr --prefix=/usr/local/apache2

Quando eu corro:

whereis apache2

Eu recebo:

apache2: /etc/apache2 /usr/local/apache2

Mas which apache2 não mostra nada, talvez seja necessário algum link simbólico para /usr/bin ? http://localhost está funcionando bem.

Informações da versão da fonte:

/usr/local/apache2/bin/apachectl -v Server version: Apache/2.4.23 (Unix) Server built: Nov 1 2016 22:52:26

Versão do Linux:

linux mint 17
3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 
    
por d2048 01.11.2016 / 22:18

2 respostas

3

Suponho que você tenha criado a partir da fonte disponível na Apache Software Foundation. Os scripts a2en... (e a configuração de suporte) são específicos do Debian; você encontrará o código fonte no repositório Debian correspondente.

Sua melhor aposta para construir o servidor httpd a partir do código-fonte e ainda ser capaz de usar a2ensite etc. é usar o pacote fonte Debian:

sudo apt-get install devscripts dpkg-dev build-essential
sudo apt-get build-dep apache2
dget http://httpredir.debian.org/debian/pool/main/a/apache2/apache2_2.4.23-5.dsc
cd apache2-2.4.23
dpkg-buildpackage -us -uc

Os dois primeiros comandos instalam os pacotes necessários para criar apache2 ; então dget baixa e extrai o pacote fonte, e dpkg-buildpackage constrói e produz uma série de .deb pacotes que você pode instalar manualmente usando dpkg como de costume.

Se a linha build-dep não funcionar, o seguinte equivale a apache2 :

sudo apt-get install debhelper lsb-release libaprutil1-dev libapr1-dev libpcre3-dev zlib1g-dev libnghttp2-dev libssl-dev perl liblua5.2-dev libxml2-dev autotools-dev gawk dh-systemd
    
por 01.11.2016 / 23:27
0

Não crie links simbólicos para /usr/bin . Essa é uma ideia extremamente ruim e você não deve fazer isso.

Por quê? Porque a maior parte de /usr , incluindo /usr/bin , é reservada para o gerenciador de pacotes. Qualquer coisa que não seja um gerenciador de pacotes, incluindo você, não deve tocar nas coisas de lá.

/usr/local existe para fornecer um local para instalar o software compilado localmente. Normalmente, você forneceria /usr/local como um prefixo, em vez de /usr/local/apache2 . (A propósito, um prefixo é o prefixo do caminho bin, o caminho da biblioteca, etc. Então, por exemplo, as ferramentas de linha de comando do Apache iriam em $PREFIX/bin , suas bibliotecas iriam em $PREFIX/lib/apache2 , etc.)

A solução para o seu problema é adicionar /usr/local/apache2/bin à lista de caminhos que seu shell usa para encontrar binários. Isso geralmente é chamado de $PATH ou simplesmente "seu caminho" e pode ser alterado com um comando como:

export PATH="/usr/local/apache2/bin:$PATH"

Você pode colocar isso em um dos arquivos de inicialização do seu shell para torná-lo permanente.

Dito isto, suspeito que você ainda não encontre a2ensite ou a2dissite . Se bem me lembro, ambos os comandos foram adicionados por desenvolvedores Debian e depois herdados de lá pelo Mint. Portanto, eles não são incluídos no código-fonte do Apache upstream. A resposta excelente do Stephen Kitt lhe dirá como obter esses comandos.

    
por 01.11.2016 / 23:28