Manual apache2
Version
Para verificar la versión de Apache en Linux, puedes utilizar los siguientes comandos en la terminal, dependiendo de la distribución que estés utilizando:
- En distribuciones basadas en Debian/Ubuntu (como Ubuntu, Debian y sus derivados):
- Para verificar la versión de Apache con el comando
apache2
:
- Para verificar la versión de Apache con el comando
$ apache2 -v
- También puedes usar el comando
apachectl
$ sudo apachectl -v
Esto proporcionará la misma información sobre la versión de Apache.
- Si deseas ver qué módulos están compilados en Apache, ejecuta
$ apache2 -l
Para obtener detalles desde el administrador de paquetes (usando el comando apt
):
$ apt info apache2
2. En distribuciones basadas en RHEL/Fedora/CentOS (como Fedora, CentOS, AlmaLinux y Rocky Linux):
$ httpd -v
Instalacion
Con Debian / Ubuntu, la instalación de Apache es muy sencilla. Basta con ejecutar la orden:
# apt-get install apache2
Arranque y Parada
Apache se ejecuta como un servicio en segundo plano (daemon). Para arrancarlo basta con ejecutar una de las órdenes:
# service apache2 start o # systemctl start apache2
Y para detenerlo:
# service apache2 stop o # systemctl stop apache2
Echándole un vistazo al script (/etc/init.d/apache2) verás que el comando que realmente arranca y detiene Apache es apache2ctl. Consultando la página de manual (man apache2ctl) verás que tiene muchas más opciones que start y stop.
También podemos reiniciar el servicio si ya está en funcionamiento y deseamos que cargue nuevos módulos por ejemplo:
# service apache2 restart o # systemctl restart apache2
Si hemos habilitado nuevos contenidos para que sean accesibles podemos recargarlos con:
# service apache2 reload o # systemctl reload apache2
Finalmente podemos ver si el servidor está en funcionamiento con:
# service apache2 status o # systemctl status apache2
Podemos validar si la sintaxis es correcta de los ficheros de configuración con:
# apachectl configtest
Configuración
La configuración de Debian / Ubuntu, por defecto, incluye:
Los archivos de configuración de Apache en /etc/apache2
El directorio raíz para los documentos en /var/www
Los directorios /etc/apache2/sites-available
y /etc/apache2/sites-enabled
son parte de la configuración del servidor web Apache y se utilizan para gestionar múltiples sitios o dominios en un solo servidor:
/etc/apache2/sites-available
:- Este directorio contiene archivos de configuración para sitios disponibles en tu servidor Apache.
- Cada archivo de configuración dentro de esta carpeta representa un sitio web específico.
- Aquí es donde creas y editas los archivos de configuración para tus diferentes sitios.
- Por ejemplo, si tienes tres sitios web (sitio1, sitio2 y sitio3), tendrías tres archivos de configuración en este directorio:
sitio1.conf
,sitio2.conf
ysitio3.conf
. - Estos archivos contienen información como la ubicación de los archivos del sitio, las directivas de seguridad, las reglas de redirección, etc.
/etc/apache2/sites-enabled
:- Este directorio contiene enlaces simbólicos a los archivos de configuración de los sitios que están habilitados.
- Cuando habilitas un sitio (usando el comando
a2ensite
), se crea un enlace simbólico desde aquí al archivo correspondiente ensites-available
. - Los sitios habilitados son aquellos que Apache cargará y servirá cuando el servidor se inicie o se reinicie.
- Por ejemplo, si habilitas
sitio1.conf
, se creará un enlace simbólico ensites-enabled
que apunta al archivositio1.conf
ensites-available
.
- Comandos relacionados:
a2ensite
: Este comando se utiliza para habilitar un sitio. Por ejemplo, para habilitarsitio1.conf
, ejecutarías:sudo a2ensite sitio1
a2dissite
: Este comando se utiliza para deshabilitar un sitio. Por ejemplo, para deshabilitarsitio2.conf
, ejecutarías:sudo a2dissite sitio2
- Después de usar estos comandos, asegúrate de recargar o reiniciar Apache para que los cambios surtan efecto:
sudo systemctl reload apache2
En resumen, estos directorios te permiten organizar y administrar fácilmente múltiples sitios web en un servidor Apache. Puedes crear y editar archivos de configuración en sites-available
, habilitarlos con a2ensite
y luego recargar Apache para aplicar los cambios
Servidor básico:
El fichero de configuración de Apache que Debian / Ubuntu instala por defecto (/etc/apache2/apache2.conf), aunque es muy bueno, es también muy complicado y no nos sirve para explicar los conceptos más elementales de Apache, además en las últimas versiones algunos parámetros de la configuración básica han pasado a establecerse en ficheros de configuración, en la configuración de los módulos que las aplican o en los ficheros de configuración de las Web.
#Fichero de Configuración SENCILLO (/etc/apache2/apache2.conf)
#Directorio con los ficheros de configuración de Apache
ServerRoot "/etc/apache2"
#Directorio raíz de los documentos publicados
DocumentRoot "/var/www"
#Fichero en el que se guarda el número del proceso Apache
PidFile /var/run/apache2/apache2.pid
#Usuario y grupo con los que se ejecutará Apache
User www-data
Group www-data
#Fichero de log para los errores
ErrorLog /var/log/apache2/error.log
#Incluye los módulos habilitados en nuestro servidor
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
IncludeOptional conf-enabled/*.conf
#Incluye la config. de puertos en los que escucha el servidor
Include ports.conf
#Incluye las Web habilitadas en nuestro servidor
IncludeOptional sites-enabled/*.conf
Archivo /etc/apache2/mods-enabled/dir.conf:
#Lista de ficheros que pueden servir como índices de directorio
DirectoryIndex index.html index.htm
mods-enabled/mime.conf:
#Fichero con la lista de tipos mime
TypesConfig /etc/mime.types
Archivo /etc/apache2/sites-available/nombre_web.conf:
#Nombre con el que el Servidor se conoce a sí mismo
ServerName www.depinfo.iesjc
#Directorio raíz de los documentos publicados en esta web
DocumentRoot /var/www/depinfo
ports.conf:
#Puerto en el que escuchará Apache
Listen 80
En el contenido anterior:
- Los ficheros de configuración son de texto plano.
- Cada línea contiene una directiva de configuración.
- Las líneas que empiezan por # son comentarios.
Directivas Básicas
ServerName
Establece el nombre con el que el servidor se conoce a sí mismo. Esta directiva se utiliza para las redirecciones. Es decir, cuando Apache le tiene que indicar al cliente (el navegador) otra dirección a la que tiene que ir.
Es importante que ese nombre se pueda resolver por DNS. De lo contrario el cliente no podrá acceder a la página redireccionada.
ServerRoot
Establece el directorio en el que se encuentran los ficheros de configuración de Apache. Y si Apache no conoce el directorio de configuración, ¿cómo puede acceder a éste fichero de configuración? La respuesta a esta paradoja es que Apache puede arrancarse pasándole como parámetro un fichero de configuración. Pero puede ocurrir que en el fichero de configuración hagamos referencia a otros ficheros que deben incluirse.
DocumentRoot
Establece el directorio en el que se encuentran los ficheros que Apache servirá a los clientes (páginas HTML, scripts PHP, CGIs, etc.). Cada servidor virtual tiene el su directorio definido con esta directiva.
PidFile
Establece el fichero en el que se guardará el número del proceso de Apache. Este fichero es el que se lee cuando hay que parar/matar el proceso.
User
Establece el usuario con el que se ejecutará Apache. Bueno, realmente el proceso Apache se ejecuta como root, porque normalmente tiene que abrir un socket de escucha para el puerto 80 y, en POSIX, sólo root puede abrir puertos por debajo del 1000. Sin embargo, tras arrancar ese primer proceso como root, Apache crea varios procesos hijos que se ejecutan
con el usuario establecido en esta directiva (www-data en Debian). Estos procesos serán quienes realmente atenderán las peticiones de los usuarios.
Group
Establece el grupo con el que se ejecutará Apache (sus procesos de escucha).
ErrorLog
Establece el fichero de log de errores de Apache. En este fichero se registrarán los fallos de acceso, intentos de acceso a recursos sin autorización, páginas no encontradas, etc.
Listen
Establece la dirección IP y el puerto en el que escuchará Apache. Por defecto, Apache escuchará en todas las direcciones IP habilitadas en la máquina. Se define en el fichero ports.conf.
DirectoryIndex
Establece los nombres de ficheros que servirán como índices al acceder a un directorio sin indicar ningún recurso concreto. Así, si un usuario solicita www.miweb.org/dir1/ Apache buscará en ese directorio ficheros con el nombre indicado en esta directiva para servirlos.
TypesConfig
Establece el fichero con la lista de tipos Mime. Los tipos Mime constituyen un estándar que relaciona tipos de ficheros con sus extensiones y le permiten a Apache informar al navegador del tipo de fichero que le está entregando. Así, el navegador decide cómo presentarlo (mostrando una página web, ejecutando un plugin, guardándolo en disco…)
Activar espacio web para usuarios del sistema
Apache dispone de un módulo que permite a los usuarios del sistema tener su página web en el servidor, pero con la ventaja que el espacio disponible para albergar esta página se encuentra dentro del directorio personal de cada usuario, de forma que cada uno puede administrarse su propia página sin tener que tener más privilegios. Para habilitar el módulo se tiene que ejecutar:
$sudo a2enmod userdir
Una vez el módulo está habilitado, cualquier usuario puede poner su página web dentro del directorio public_html en su directorio personal (/home/nombre_usuario/public_html).
Normalmente esta carpeta no estará creada, pero puede crearla el propio usuario, sólo tiene que tener en cuenta el darle permisos para que sea accesible. Lo mejor sería darle los permisos 755 para que el usuario pudiera hacer modificaciones y el resto sólo pudiera acceder para ver los objetos almacenados.
Los objetos que hay dentro de esta carpeta y que formarán la página web (documentos html, imágenes, vídeos…) deberían tener los permisos 644 porqué, a diferencia del directorio que los contiene, no necesitan el permiso de ejecución. Evidentemente si se tienen subdirectorios también necesitarán este permiso x.
Como el resto de ubicaciones, Apache intentará mostrar la página llamada index, así que si esta pagina existe, para mostrarla, sólo se tiene que poner en el navegador la URL:
http://direccion_servidor/~nombre_usuario
Servidor Configurado por Directorios
En el servidor sencillo que acabamos de ver, la configuración es la misma para todos los documentos que estemos publicando. En algunos casos puede interesarnos tener configuraciones diferentes para distintos directorios e incluso para distintos ficheros. Para eso, podemos utilizar un fichero de configuración como el siguiente:
#Fichero de Configuración POR BLOQUES
ServerName "www.depinfo.iesjc"
ServerRoot "/etc/apache2"
DocumentRoot "/var/www"
PidFile /var/run/apache2/apache2.pid
User www-data
Group www-data
ErrorLog /var/log/apache2/error.log
Listen 80
TypesConfig /etc/mime.types
#Establecemos la configuración de cada directorio
<Directory "/var/www">
#No permitimos los índices automáticos en ningún sitio (salvo
#los que permitamos explícitamente)
Options -Indexes
</Directory>
<Directory "/var/www/descargas">
#En este directorio, permitimos índices automáticos, pero no
#permitimos enlaces simbólicos
Options +Indexes -FollowSymLinks
#No permitimos a nadie acceder a los ficheros .htaccess de este
#directorio
<Files .htaccess>
order allow,deny
deny from all
</Files>
</Directory>
<Location /server-status>
#En esta dirección, mostramos información sobre el estado del
#servidor
SetHandler server-status
</Location>
Directivas para la Configuración por Bloques
Al aplicar configuraciones diferentes por directorio, por fichero o por localización, decimos que estamos aplicando “Configuración por Bloques”. Hemos utilizado las siguientes directivas:
<Directory>
Indica que el bloque de configuración que abarca (entre y ) se aplica al directorio indicado y a sus subdirectorios. También hay una directiva que permite utilizar expresiones regulares. Así, un mismo bloque de configuración puede aplicarse a varios directorios.
Options
Modifica las opciones que se aplican a un directorio. Las opciones se añaden (con +) o se quitan (con -) respecto a las que en ese momento se aplican sobre el directorio. Mediante esta directiva pueden añadirse/quitarse las siguientes opciones:
All, ExecCGI, FollowSymLinks, Includes, IncludesNOEXEC, Indexes, Multiviews y SymLinksIfOwnerMatch.
<File>
Indica que el bloque de configuración que abarca (entre <File> y </File>) se aplicará a los ficheros cuyo nombre coincida con el indicado. También hay una directiva <FileMatch> que permite utilizar expresiones regulares. Así, un mismo bloque de configuración puede aplicarse a varios ficheros.
<Location>
Indica que el bloque de configuración que abarca (entre <Location> y </Location> ) se aplicará a las localizaciones que coincidan con la indicada. La “localización” es la dirección que solicita el cliente. Fíjate que no es lo mismo que el sistema de ficheros (sobre el que trabajan <Directory> y <File>). Utilizando redirecciones y alias es posible que un cliente solicite una determinada “localización” y que la página que se le entregue tenga un path completamente distinto al que él especificó. También hay una directiva <LocationMatch> que permite utilizar expresiones regulares. Así, un mismo bloque de configuración puede aplicarse a varias localizaciones.
SetHandler
Establece el manejador que se utilizará para atender las peticiones a un directorio, a un tipo de ficheros o a una localización. Un «handler» es una representación interna de Apache de una acción que se va a ejecutar cuando hay una llamada a un fichero. Generalmente, los ficheros tienen handlers implícitos, basados en el tipo de fichero de que se trata. Normalmente, todos los ficheros son simplemente servidos por el servidor, pero algunos tipos de ficheros se tratan de forma diferente. Los posibles handlers son: default-handler, send-as-is, cgi-script, imap-file, server-info, server-status y type-map.
Servidores Virtuales
Tener todo un servidor Apache para atender sólo un sitio web es una pérdida de recursos. Apache es capaz de atender, desde una sola máquina a todo un conjunto de sitios web. Es decir, podemos servir al mismo tiempo peticiones para www.depinfo.iesjc , www.depadm.iesjc, profes.iesjc , alumnes.iesjc…
Esto se hace utilizando “Servidores virtuales”.
Servidores Virtuales por IP
Supongamos en primer lugar, que nuestro servidor atiende dos direcciones IP y que asignamos cada una de ellas a un sitio web. El fichero de configuración sería el siguiente y estaría ubicado en: /etc/apache2/sitesavailable/nombre_web.conf
#Fichero de Configuración para HOSTS VIRTUALES POR IP
ServerRoot "/etc/apache2"
DocumentRoot "/var/www"
PidFile /var/run/apache2/apache2.pid
User www-data
Group www-data
ErrorLog /var/log/apache2/error.log
TypesConfig /etc/mime.types
#Establecemos la configuración para cada Host Virtual
<VirtualHost 192.168.2.166>
#Cada uno tiene su nombre
ServerName www.depinfo.iesjc
DocumentRoot /var/www/depinfo
#Dividimos los ficheros de log
ErrorLog /tmp/www1_ERROR.log
TransferLog /tmp/www1_ACCESS.log
</VirtualHost>
<VirtualHost 192.168.2.200>
ServerName www2.depinfo.iesjc
DocumentRoot /var/www/depinfo2
ErrorLog /tmp/www2_ERROR.log
TransferLog /tmp/www2_ACCESS.log
</VirtualHost>
Servidores Virtuales por Puerto
Hagamos lo mismo, pero en una de las direcciones IP, utilicemos dos puertos TCP/IP distintos para atender dos sitios diferentes. En el fichero /etc/apache2/ports.conf debemos añadir: Listen 8080 para que el servidor también escuche en este nuevo puerto. El fichero de configuración sería el siguiente, con la misma ubicación que en el caso anterior:
#Fichero de Configuración para HOSTS VIRTUALES POR IP Y PUERTO
ServerRoot "/etc/apache2"
DocumentRoot "/var/www"
PidFile /var/run/apache2/apache2.pid
User www-data
Group www-data
ErrorLog /var/log/apache2/error.log
TypesConfig /etc/mime.types
#Indicamos el puerto de cada sitio web
<VirtualHost 192.168.2.166:80>
ServerName www.depinfo.iesjc
DocumentRoot /var/www/depinfo
ErrorLog /tmp/www1_ERROR.log
TransferLog /tmp/www1_ACCESS.log
</VirtualHost>
<VirtualHost 192.168.2.166:8080>
ServerName profes.depinfo.iesjc
DocumentRoot /var/www/profes
ErrorLog /tmp/profes_ERROR.log
TransferLog /tmp/profes_ACCESS.log
</VirtualHost>
<VirtualHost 192.168.2.200>
ServerName www2.depinfo.iesjc
DocumentRoot /var/www/depinfo2
ErrorLog /tmp/www2_ERROR.log
TransferLog /tmp/www2_ACCESS.log
</VirtualHost>
Servidores Virtuales por Nombre
Y ahora, configuremos el servidor utilizando los nombres de cada sitio web:
El fichero de configuración sería el siguiente, con la misma ubicación que en el caso anterior:
#Fichero de Configuración para HOSTS VIRTUALES POR NOMBRE
ServerRoot "/etc/apache2"
DocumentRoot "/var/www"
PidFile /var/run/apache2/apache2.pid
User www-data
Group www-data
ErrorLog /var/log/apache2/error.log
TypesConfig /etc/mime.types
#La configuración de hosts virtuales por nombre se aplica a las
#peticiones recibidas en esta IP
NameVirtualHost 192.168.2.166
#Configuramos haciendo referencia a cada sitio por su nombre
<VirtualHost www.depinfo.iesjc>
ServerName www.depinfo.iesjc
ServerName www.depinfo.iesjc
DocumentRoot/var/www/depinfo
ErrorLog /tmp/www1_ERROR.log
TransferLog /tmp/www1_ACCESS.log
</VirtualHost>
<VirtualHost www2.depinfo.iesjc>
ServerName www2.depinfo.iesjc
DocumentRoot /var/www/depinfo2
ErrorLog /tmp/www2_ERROR.log
TransferLog /tmp/www2_ACCESS.log
</VirtualHost>
Servidores Virtuales por Nombre, IP y Puerto
Para completar el ejemplo, configuramos el servidor utilizando todas las opciones:
#Fichero de Configuración para Hosts Virtuales
ServerRoot "/etc/apache2"
DocumentRoot "/var/www"
PidFile /var/run/apache2/apache2.pid
User www-data
Group www-data
ErrorLog /var/log/apache2/error.log
TypesConfig /etc/mime.types
NameVirtualHost 192.168.2.166
<VirtualHost www.depinfp.iesjc>
ServerName www.depinfo.iesjc
DocumentRoot /var/www/depinfo
ErrorLog /tmp/depinfo_ERROR.log
TransferLog /tmp/depinfo_ACCESS.log
</VirtualHost>
<VirtualHost www2.depinfo.iesjc>
ServerName www2.depinfo.iesjc
DocumentRoot /var/www/depinfo2
ErrorLog /tmp/depinfo2_ERROR.log
TransferLog /tmp/depinfo2_ACCESS.log
</VirtualHost>
<VirtualHost 192.168.2.200:80>
ServerName www2.depinfo.iesjc
DocumentRoot /var/www/depinfo2
ErrorLog /tmp/depinfo2_ERROR.log
TransferLog /tmp/depinfo2_ACCESS.log
</VirtualHost>
<VirtualHost 192.168.2.200:8080>
ServerName profes.depinfo.iesjc
DocumentRoot /var/www/profes
ErrorLog /tmp/profes_intranet_ERROR.log
TransferLog /tmp/profes_intranet_ACCESS.log
</VirtualHost>
Servidores Virtuales Dinámicos
Pero… ¿qué pasa si tenemos que configurar decenas, cientos o incluso miles de sitios web tal y como ocurre en un ISP? Para eso tenemos la opción de Hosts Virtuales Dinámicos. Debemos cargar el módulo: # a2enmod vhost_alias
Veamos un ejemplo:
#Fichero de Configuración para Hosts Virtuales Dinámicos
ServerName "iesjc"
ServerRoot "/etc/apache2"
DocumentRoot "/var/www"
PidFile /var/run/apache2/apache2.pid
User www-data
Group www-data
ErrorLog /var/log/apache2/error.log
TypesConfig /etc/mime.types
ErrorLog /tmp/iesjc_ERROR.log
#Le indicamos a Apache que utilice como nombre (ServerName) el de la petición recibida
UseCanonicalName Off
#Establecemos el DocumentRoot para cada sitio web que atendemos.
VirtualDocumentRoot /var/www/%1.0
Pero, si tenemos muchos sitios web, también puede ser útil que cada uno de ellos tenga su propio fichero de configuración (ya le daremos permiso a sus administradores para que lo gestionen ellos mismos). Esto podemos conseguirlo cargando todos los ficheros de configuración de los sitios virtuales desde un directorio.
Podríamos hacerlo utilizando la siguiente línea en el fichero de configuración de Apache:
Include /etc/apache2/sites-enabled/[^.#]*
Esta directiva incluye en el fichero de configuración todos los ficheros que encuentre en el directorio indicado.
Directivas para la Configuración de Servidores Virtuales
Veamos las directivas que hemos utilizado:
<VirtualHost>
Indica que el bloque de configuración que abarca (entre y ) se aplica al sitio web indicado. Cada host virtual se puede identificar por IP, IP:Puerto o por nombre.
NameVirtualHost
Establece la dirección IP sobre la que se configurarán hosts virtuales.
VirtualDocumentRoot
Establece dinámicamente la raíz de los documentos (DocumentRoot) para los hosts virtuales. Para establecer el nombre del directorio usa % que hace referencia al nombre que estamos para acceder a nuestro servidor y el número que va con el % indica que parte de este nombre se usa para identificar su directorio:
%0 se usa todo el nombre, por tanto si nuestra web se identifica por www.depinfo.iesjc, el directorio raíz será /var/www/www.depinfo.iesjc/
%1 toma la primera parte del nombre, www y el directorio raíz estaría en /var/www/www
%2 toma la segunda parte.
La lista siguiente muestra el funcionamiento ya que se pueden realizar combinaciones:
%% inserta un %
%p inserta el número de port del servidor virtual
%N.M donde N indica la parte del nombre y M indica cuantos caracteres se toman de él.
El valor para N:
0 el nombre completo → %0
1 la primera parte → %1
2 la segunda parte → %2
-1 la última parte → %-1
-2 la penúltima parte → %-2
2+ la segunda y todas las partes subsecuentes → %2+
-2+ la penúltima y todas las partes precedentes → %-2+
1+ and -1+ lo mismo que cero 0
UseCanonicalName
Establece de qué forma conocerá Apache su propio nombre (para las redirecciones).
TransferLog
Establece el fichero de log de acceso de Apache.En este fichero se registrarán los accesos a las páginas servidas por Apache.
Configuración de Apache2 con modulo UserDir
Userdir es un modulo de apache que hace posible que todos los usuarios con acceso a un servidor tengan una carpeta llamada public_html en la cual puedan alojar sus páginas y archivos.
La habilitación es super sencilla.
Instalando el Módulo
Asumiendo que tenemos Apache2 instalado ejecutamos:
sudo a2enmod userdir
Si el servidor no reinicia automáticamente lo reiniciamos de manera manual.
sudo /etc/init.d/apache2 restart
Probando la configuración.
Simplemente vamos al HOME de algún usuario y creamos la carpeta public_html y seteamos los permisos.
mkdir public_html
chmod 0755 public_html
Para acceder vamos a la dirección ip del servido ( o el dominio ) y agregamos /~USUARIO. Si tenemos un usuario llamado pepegrillo vamos a la dirección:http://MIDIRECCION/~pepegrillo
Creando la carpeta public_html de manera automática.
Para la creación automática de la carpeta public_html al momento de crear el usuario, simplemente agregamos la nueva carpeta a la dirección /etc/skel. En mi caso además quiero que estás carpetas sean manejadas por el servidor de apache, por lo que le daré la propiedad de la carpeta.
mkdir public_html
chmod 0755 public_html
chown www-data public_html
De esta forma cada vez que se cree un usuario este estará listo para utilizar su carpeta public_html.
OJO, si el servidor Apache2 también utiliza php, y la dirección del usuario no los ejecuta, es debido a que está deshabilitada esta opción en el archivo /etc/apache2/mods-enabled/php5.conf. Esta configuración simplemente se comenta para que funcione.
El archivo quedaría así:
SetHandler application/x-httpd-php
SetHandler application/x-httpd-php-source
# To re-enable php in user directories comment the following lines
# (from to .) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#
#
# php_admin_value engine Off
#
#
Eso debería ser todo.
Interfaz Gráfica de Apache
Cómo instalar la interfaz gráfica de Apache en Ubuntu 18.04 LTS
Apache GUI es una herramienta gratuita y de código abierto basada en Java que puede utilizarse para gestionar y configurar el servidor web Apache a través del navegador web. Está especialmente diseñada para quienes buscan una cómoda interfaz gráfica (GUI) para configurar los servidores Apache.
Características de la GUI de Apache
- Editar, buscar y validar tus configuraciones.
- Iniciar, detener y reiniciar el servicio de Apache.
- Ver, instalar y eliminar módulos de Apache.
- Editar tus documentos web a través del navegador web utilizando el editor en línea.
- Probar la configuración del servidor en busca de errores.
Requisitos
- Un servidor con Ubuntu 18.04.
- Un usuario no root con privilegios sudo.
Instalar Java
ApacheGUI está escrito en Java, por lo que tendrás que instalarlo primero. Puedes instalar Java con el siguiente comando:
sudo apt-get install default-jre -y
Una vez instalado Java. Puedes verificar la versión de Java con el siguiente comando:
java -version
Salida:
openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2, mixed mode)
Instalar el servidor LAMP
A continuación, instala el servidor web Apache y MariaDB con el siguiente comando
sudo apt-get install apache2 mariadb-server -y
Instala PHP con el siguiente comando:
sudo apt-get install php7.2 php7.2-mysql libapache2-mod-php7.2 -y
A continuación, inicia el servicio de Apache y MariaDB y haz que se inicien al arrancar con el siguiente comando:
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mariadb
Instalar ApacheGUI
En primer lugar, tendrás que descargar la última versión de ApacheGUI en tu sistema. Puedes descargarla con el siguiente comando:
sudo mkdir /usr/local/apachegui
sudo cd /usr/local/apachegui
sudo wget https://excellmedia.dl.sourceforge.net/project/apachegui/1.12-Linux-Solaris-Mac/ApacheGUI-1.12.0.tar.gz
A continuación, extrae el archivo descargado con el siguiente comando:
sudo tar -xvzf ApacheGUI-1.12.0.tar.gz
A continuación, cambia el directorio al ApacheGUI e inicia el script de instalación con el siguiente comando
sudo cd ApacheGUI/bin
sudo ./run.sh
Tu ApacheGUI está ahora iniciando y escuchando en el puerto 9999.
A continuación, abre tu navegador web y escribe la URL http://your-server-ip:9999/ApacheGUI. Serás redirigido a la siguiente página:
Aquí, selecciona el método de instalación del servidor web Apache, y luego haz clic en el botón Aceptar. Deberías ver la siguiente página:
Aquí, proporciona tus credenciales de usuario administrador y haz clic en el botón Enviar. Deberías ver el panel de control de ApacheGUI en la siguiente página:
Para detener el servidor Apache GUI, ejecuta:
sudo ./stop.sh
Me parece un post magnífico. Porque no lo completas.