¿Cómo configurar Apache?

Apache


Me gustaría empezar ahora una serie de tutoriales de Apache, este tutorial vamos a empezar desde el principio aunque en otros hilos ya hayamos visto como se instala.
En este hilo vamos a ver:

Primeros pasos


Apache es un servidor web HTTP de código abierto, para plataformas que implementan el protocolo HTTP.
Para instalarlo solo deberemos abrir nuestro terminal e introducir el comando:
apt-get install apache2
Una vez instalado lo podemos comprobar abriendo nuestro navegador e introduciendo en la barra de navegacion:
127.0.0.1
O también:
localhost
Una vez introducido esto deberia apareceros la página de apache.
Si no os saliese y os dijese que no encuentra la dirección, probad a reiniciar el servicio de apache.
systemctl restart apache2
Ahora todos los proyectos web que tengamos lo podemos dejar dentro del directorio: /var/www/html

Módulos


Ya tenemos apache instalado y funcionando, una de los puntos fuertes de apache es que es altamente configurable mediante módulos.
Podría hacer una lista de sus módulos, pero solo haría una lista interminable, para ahorraros el mal trago solo os diré que si queréis ver los módulos que podéis activar/desactivar solo debéis introducir:
cd /etc/apache2/mods-available
ls -l
Ya tenéis un rato para entreteneros, hay algunos muy interesantes como por ejemplo:
  • mod_rewrite: Sirve para la reescritura de las direcciones.
  • mod_php: Acepta páginas dinámicas PHP.
  • mod_python: Al igual que el anterior pero con Python.
  • mod_userdir: Este lo vamos a ver a continuación.
Para activar un módulo solo debemos ejecutar el comando:
a2enmod [módulo que queremos activar]
En mi caso voy a haceros un pequeño tutorial del módulo userdir, para ello introduzco:
a2enmod userdir
Una vez activado si nos fijamos, por consola nos dicen que reiniciemos el servicio de apache para que funcionen los cambios que hemos hecho.
Asi que ejecutamos:
systemctl restart apache2
Para comprobar que el módulo se ha activado correctamente, vamos al directorio /etc/apache2/mods-enabled y allí introducimos el comando: ls -l y deberá aparecer lo siguiente:
Si nos fijamos vemos que al final está el módulo userdir activado.
Aquí os pongo la imagen de los módulos activos antes de usar el comando a2enmod.
Así es más fácil ver la diferencia entre cuando estaba desactivado y cuando lo hemos activado.
Para desactivar algún modulo activado, solo deberemos poner:
a2dismod [módulo que queráis desactivar]
Al igual que al activar un módulo debemos reiniciar, cuando desactivemos alguno también.

mod_userdir


Ahora imaginemos que tenemos un VPS y tenemos un grupo de usuarios, ¿hay alguna forma de que cada usuario tenga su proyecto en un directorio de su home?
Si la hay, para eso está el modulo user_dir con esto conseguimos que los usuarios tenga en su directorio una carpeta llamada public_html y allí puedan poner su proyecto.
Ahora os preguntareis y bueno si todos usan el mismo servidor apache, al poner la dirección IP del servidor saldrá el index.html que hay en el directorio /var/www/html
Si, teneis razón pero para ello lo que debemos hacer es introducir detrás de la IP "/~[nombre del usuario]".
IMPORTANTE*: recuerda poner la ~ antes del nombre, si no no aparecerá nada.
Soy más partidario de aprender con ejemplos prácticos, que con teoria.
Para esta actividad vamos a crear un usuario en el VPS, al que llamaremos Enrique.
Como root usamos el comando:
useradd -m -s /bin/bash Enrique
Vamos paso a paso, useradd añade el usuario al sistema, -m crea su directorio home (algo muy importante), -s le especificammos la shell del usuario y por último el nombre del usuario, en mi caso Enrique.
Si todo ha ido bien, siendo aun root, nos vamos al directorio /home y al hacer un ls -l, debe aparecernos el directorio del usuario que hemos creado.
Creadle una contraseña con el comando passwd [nombre del usuario].
Una vez hecho esto, cambiamos el usuario root por el usuario que hemos creado con el comando:
su [nombre del usuario]
En nuestro pequeño tutorial: su Enrique
OJO*: Como estábamos como root, al usar el comando su, no nos pide contraseña, si estuviésemos logueado como otro usuario si que lo haria.
Ahora como el usuario Enrique, vamos a crear el directorio public_html para ello usamos:
mkdir $HOME/public_html
Muy importante hacerlo con el usuario al que queramos crearle el directorio, porque si lo hacemos root lo creara al directorio home de root.
El anterior comando hace lo siguiente: mkdir, obviamente, crea un directorio, $HOME, es una variable del sistema que se refiere al directorio home del usuario que usa el comando, y bueno public_html el nombre del directorio.
Ahora si queréis podéis cambiar los permisos, como medida de seguridad por ejemplo: chmod 0755 public_html, con esto damos todos los permisos al usuario que ha creado el directorio y solo permisos de lectura y ejecución a los usuarios del mismo grupo y a los otros usuarios.
Bien, pues ya esta todo listo, todo lo que el usuario ponga en ese directorio se podrá visualizar, gracias al servidor apache.
Como podéis ver en la imagen, he entrado en la URL de mi VPS y le he añadido "/~Enrique", como mi directorio está vacío no sale nada, pero si tuviesemos otros directorios o archivos saldría una lista de todos ellos y si quisiésemos alguna medida de seguridad podríamos poner un index.html para que no se viesen los archivos.
Con esto doy por terminado este pequeño tutorial, espero que os haya servido, cualquier duda dejádmelo en los comentarios y vosotros que ¿cómo configurais vuestro apache?

Comentarios

Entradas populares