Activar mi sitio localmente
Resuelto
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
Gracias por tu ayuda.
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
a2ensitepara activar el sitio,
bashme responde: Comando no encontrado.
Gracias por tu ayuda.
1 respuesta
-
Hola,
Necesitaríamos que nos aclares cómo instalaste tu servidor webapache2
(el comandoa2ensite
es específico deapache2
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 hacesecho $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 comandowhereis
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 comandowhich 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 entornoPATH
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 instalarapt-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 paqueteapache2
para disponer del comandoa2ensite
:
sudo apt install apache2
Buena suerte