No puedo encontrar `a2dissite` y `a2ensite` después de compilar `apache2` desde el código fuente en Mint17

No puedo encontrar `a2dissite` y `a2ensite` después de compilar `apache2` desde el código fuente en Mint17

Después de construirservidor http apache2de la fuente (2.4.23) No tengo los comandos a2dissitey a2ensite.

Configurar fue:

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

Cuando corro:

whereis apache2

Yo obtengo:

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

Pero which apache2no muestra nada, ¿tal vez sea necesario algún enlace simbólico /usr/bin? http://localhostestá funcionando bien.

Información de versión de la fuente:

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

Versión de Linux:

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

Respuesta1

Supongo que lo construyó a partir de la fuente disponible en Apache Software Foundation. Los a2en...scripts (y la configuración de soporte) son específicos de Debian; Encontrarás el código fuente en el correspondiente.repositorio debian.

Su mejor opción para construir el httpdservidor desde el código fuente y aún poder usarlo a2ensite, etc. es usar el paquete fuente de 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

Los dos primeros comandos instalan los paquetes necesarios para compilar apache2; luego dgetdescarga y extrae el paquete fuente, dpkg-buildpackagelo compila y produce una serie de .debpaquetes que puede instalar manualmente dpkgcomo de costumbre.

Si la build-deplínea no funciona, lo siguiente es equivalente 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

Respuesta2

No enlace simbólicamente cosas a /usr/bin. Esa es una muy mala idea y no deberías hacerlo.

¿Por qué? Porque la mayor parte de /usr, incluido /usr/bin, está reservado para el administrador de paquetes. Cualquier cosa que no sea un administrador de paquetes, incluido usted, no debería tocar cosas allí.

/usr/localexiste para proporcionar un lugar para instalar software compilado localmente. Normalmente, lo proporcionarías /usr/localcomo prefijo, en lugar de /usr/local/apache2. (Un prefijo, por cierto, es el prefijo de la ruta del contenedor, la ruta de la biblioteca, etc. Entonces, por ejemplo, las herramientas de línea de comandos de Apache entrarían $PREFIX/bin, sus bibliotecas entrarían $PREFIX/lib/apache2, etc.)

La solución a su problema es agregarlo /usr/local/apache2/bina la lista de rutas que usa su shell para encontrar archivos binarios. Esto generalmente se conoce como $PATH"tu ruta" o simplemente "tu ruta" y se puede cambiar con un comando como:

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

Puedes ponerlo en uno de los archivos de inicio de tu shell para hacerlo permanente.

Dicho todo esto, sospecho que todavía no encontrarás a2ensiteo a2dissite. Si mal no recuerdo, ambos comandos fueron agregados por los desarrolladores de Debian y luego heredados desde allí por Mint. Por lo tanto, no están incluidos en el código fuente de Apache. Stephen Kittexcelente respuestale dirá cómo obtener estos comandos.

información relacionada