Não é possível encontrar `a2dissite` e `a2ensite` após compilar `apache2` a partir do código-fonte no Mint17

Não é possível encontrar `a2dissite` e `a2ensite` após compilar `apache2` a partir do código-fonte no Mint17

Depois de construirservidor http apache2da fonte (2.4.23) Não tenho os comandos a2dissitee a2ensite.

Configurar foi:

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

Quando corro:

whereis apache2

Eu recebo:

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

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

Informações de versão para fonte:

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

Versão Linux:

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

Responder1

Suponho que você construiu a partir da fonte disponível na Apache Software Foundation. Oa2en... scripts (e a configuração de suporte) são específicos do Debian; você encontrará o código-fonte no correspondenteRepositório Debian.

Sua melhor aposta para construir o httpdservidor a partir do código-fonte e ainda poder usar a2ensiteetc. é 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 compilar apache2; em seguida dget, baixa e extrai o pacote fonte, dpkg-buildpackageconstrói-o e produz uma série de .debpacotes que você pode instalar manualmente usando dpkgnormalmente.

Se a build-deplinha não funcionar, o seguinte é equivalente para 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

Responder2

Não faça links simbólicos para /usr/bin. Essa é uma ideia extremamente ruim e você não deve fazê-lo.

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

/usr/localexiste para fornecer um local para instalar software compilado localmente. Normalmente, você forneceria /usr/localum prefixo, em vez de /usr/local/apache2. (A propósito, um prefixo é o prefixo do caminho bin, do caminho da biblioteca, etc. Por exemplo, as ferramentas de linha de comando do Apache entrariam $PREFIX/bin, suas bibliotecas entrariam $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 $PATHsimplesmente de "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 isso, suspeito que você ainda não encontrará a2ensiteoua2dissite . Se bem me lembro, ambos os comandos foram adicionados por desenvolvedores Debian e depois herdados de lá pelo Mint. Portanto, eles não estão incluídos no código-fonte upstream do Apache. Stephen Kittexcelente respostalhe dirá como obter esses comandos.

informação relacionada