Activar mi sitio localmente

Resuelto
Peyi04 Mensajes publicados 55 Estado Miembro -  
mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   -
Hola,

Espero que te encuentres bien. Soy principiante en Linux y para mejorar he creado una máquina virtual. He creado un sitio virtual, así como las diferentes configuraciones del vhost.

Pero cuando escribo el comando
a2ensite
para activar el sitio,
bash
me responde: Comando no encontrado.

Gracias por tu ayuda.

1 respuesta

  1. mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 940
     
    Hola,

    Necesitaríamos que nos aclares cómo instalaste tu servidor web
    apache2
    (el comando
    a2ensite
    es específico de
    apache2
    para las distribuciones derivadas de Debian, como Ubuntu y Mint), y si estás identificado como root al momento de ejecutarlo.

    Instalación LAMP en Debian

    En Debian, una instalación LAMP (Linux Apache MySQL PHP) se realiza de la siguiente manera, como root:

    apt update apt install apache2 default-mysql-server libapache2-mod-php ls /etc/apache2/mods-available/php* # para ver las versiones de PHP disponibles a2enmod php7.4 # a adaptar systemctl apache2 restart


    Comando no encontrado y variable de entorno PATH

    Un comando no se encuentra por potencialmente dos razones (no exclusivas):
    • el comando está ausente del sistema, porque el paquete que lo proporciona no está instalado;
    • el comando está en un directorio que está ausente de tu variable de entorno PATH, que especifica en qué directorios se buscan los ejecutables (por lo tanto, los comandos).


    Para recordar, en Linux, los archivos están organizados de acuerdo con el FHS. En particular:
    • Los binarios que sirven para administrar la máquina están localizados en
      /sbin
      ,
      /usr/sbin
      (y para instalaciones no estándar en
      /usr/local/sbin
      ).
    • Los binarios de usuarios están localizados en
      /bin
      ,
      /usr/bin
      o
      /usr/local/bin
      .


    Si haces
    echo $PATH
    , por defecto, los directorios
    /sbin
    ,
    /usr/bin
    ,
    /usr/local/sbin
    están presentes únicamente si estás identificado como root, pero no si estás identificado como usuario. Esto explica por qué no se encuentran si estás identificado como usuario.

    El comando
    whereis
    permite localizar en qué directorio está ubicado un ejecutable.

    Ejemplo :

    (mando@antarctic) (~) $ whereis a2ensite
    a2ensite: /usr/sbin/a2ensite /usr/share/man/man8/a2ensite.8.gz


    Por supuesto, nada impide que un nombre ejecutable figure en varios directorios de tu PATH. En este caso, tu shell tomará el primero encontrado, como muestra el comando
    which a2ensite
    (si no encuentra ninguno, tu shell responderá comando no encontrado).

    Cualquiera que sea el perfil que utilices, hay que entender que la variable de entorno
    PATH
    solo se solicita si la ruta hacia el ejecutable no está especificada. Esto significa que podrías perfectamente ejecutar
    /usr/sbin/a2ensite mon_site
    como usuario (pero entonces tendrás un permiso denegado).

    Si el comando que deseo ejecutar no está instalado, ¿cómo determinar qué paquete instalar?

    En Debian y las distribuciones que derivan de ella (Ubuntu, Mint…) puedes instalar
    apt-file
    :

    sudo apt update
    sudo apt install apt-file
    sudo apt-file update


    ... y luego usarlo de la siguiente manera:

    apt-file search a2ensite | grep "bin/a2ensite$"


    Ejemplo :

    (mando@silk) (~) $ apt-file search a2ensite | grep "bin/a2ensite$"
    apache2: /usr/sbin/a2ensite


    Aquí vemos que solo se necesita instalar el paquete
    apache2
    para disponer del comando
    a2ensite
    :

    sudo apt install apache2


    Buena suerte
    0