Enlaces

9/3/15

Servidor Apache en Ubuntu y derivados (Instalación y configuración)

El servidor apache es el servidor web más usado en el mundo por su seguridad, utilidad, versatilidad y también por ser software libre ademas de ser un software gratuito, por esa razón he creado este tutorial para su instalación y configuración básica en Ubuntu Linux en donde funciona muy bien ya que es precisamente GNU/Linux el sistema operativo en donde se monta este servidor para aplicaciones reales.



Instalación

La instalación del servidor apache en Ubuntu se puede hacer por medio de la terminal o por medio del centro de software de Ubuntu.

Instalación por terminal.

Tan solo tienes que oprimir esta combinación de teclas: CTRL + ALT + T y escribir la siguiente orden:



luego de esto ingresa la clave de root o administrador, es decir la misma que creaste al momento de instalar el sistema.


La orden se muestra en la imagen tiene la siguiente explicación:


la primera palabra (sudo) es un comando usado para ejecutar procesos como root sin importar si el usuario en donde iniciados tiene o no permiso para ejecutar dicho proceso.

El comando apt-get hace referencia al sistema de paquetes usado en Ubuntu (apt) que se encarga de todas las tareas relacionadas con el software instalado en el sistema


El parámetro install nos indica que lo que queremos cambiar en el software del sistema es la instalación de un paquete, si quisiéras desinstalar algo puedes usar el comando remove

Por ultimo tenemos el nombre del paquete o los paquetes que queremos instalar.


Instalación por el centro de software de Ubuntu.

Este método es el mas sencillo aunque no siempre se puede instalar de esta manera especialmente en entornos donde no hay siquiera un entorno gráfico, pero para las personas que están aprendiendo este sistema es perfecto para comenzar.



Para iniciar el proceso de instalación basta con abrir el centro de software, buscar el paquete apache2 y oprimir el botón instalar.

Uso

Para saber si nuestro servidor funciona correctamente tenemos que abrir el navegador web y escribir como url:


http://localhost

o

http://127.0.0.1


En esta ultima opción puedes también la dirección ip de la maquina que estés usando.


Finalmente veras algo como esto:



Configuración del servidor apache.


Cuando hablamos de servidores generalmente su instalación y puesta en marcha es mucho más sencilla que su configuración es por esa razón que cualquier tutorial de instalación va acompañado del tutorial de configuración y esta no es la excepción.

Para configurar el servidor apache debes buscar los archivos destinados para ello, los cuales están en la carpeta /etc/apache2.




Reiniciar el servidor Apache


Cuando hacemos configuraciones al servidor apache es necesario reiniciar este para poder aplicar los cambios, para ellos vamos a usar un sencillo comando:

sudo service apache2 start

Para este comando también es posible cambiar el parámetro restart por stop y start para parar o arrancar apache respectivamente.

Es preciso destacar que podemos usar el parametro reload cuando es imposible recargar servidores con alto flujo de trafico.

Cambiar la raíz del directorio

Al instalar apache en ubuntu la carpeta en donde podemos ubicar los archivos que componen una pagina web es /var/www, pero por razones de facilidad hay muchas personas que cambian esta carpeta por una que este ubicada en la carpeta personal (home).



Debido a que los archivos que están dentro de la carpeta /etc/apache2 solo pueden ser editados por el usuario root tendremos que usar el comando sudo o gksu para poder configurar apache, para ello oprime la combinación de teclas.


ALT + F2 y escribe la orden:





Busca el archivo default el cual se encuentra ubicado en la carpeta /etc/apache2/sites/available.


Una vez que hayas abierto el abierto este archivo veras algo como esto:



Finalmente cambia las lineas en donde este escrito /var/www por la carpeta en donde quieras guardar tus archivos, por ejemplo /home/usuario/archivosweb.


Módulos de Apache.

Apache cuenta con módulos para aumentar su funcionalidad, entre los módulos mas usados de apache son:

  • mod_cband
  • mod_perl
  • mod_php
  • mod_python
  • mod_rexx
  • mod_ruby
  • mod_security


Algunos de estos módulos (y otros más) pueden encontrarse en la carpeta mods-available la cual contiene aquellos módulos que están disponibles para su uso y los módulos que están corriendo en el servidor pueden verse en la carpeta mods-enabled.

Crear un espacio de usuario.

En apache es posible crear un espacio web para cada usuario, es decir que podemos usar la carpeta personal de cada usuario para alojar por ejemplo archivos de una aplicación web.


Para ello debes activar el modulo usedir entrando a la carpeta mods-available y creando los enlaces simbólicos en la carpeta mods-enabled, esto lo haremos desde la terminal escribiendo el siguiente comando:

cd /etc/apache2/mods-available && sudo ln -s /etc/apache2/mods-available/userdir* .


Para acceder vía web a la página de un usuario, debes escribir esta dirección cambiando la palabra usuario por el nombre de usuario que tengas, por ejemplo http://localhost/~usuario/.



El carácter '~'comúnmente conocido como gusanillo y que se obtiene con Alt Gr + 4 sirve para indicar a apache que debe servir la página desde el home del usuario (en Linux el 'gusanillo' equivale a la carpeta home). Ejemplo, si hemos creado un usuario y éste ha creado la carpeta /home/usuario/public_html y ha copiado en ella su página web, desde cualquier PC de la red podremos acceder a dicha carpeta yendo a la dirección http://localhost/~usuario/. Para que la página aparezca automáticamente, es necesario crear un archivo llamado index.html.

41 comentarios:

  1. Muy buena información. Acabo de aplicar lo de cambiar la raíz del directorio, siempre terminaba dando permisos a la carpeta de www, pero me parece mas cómodo trabajar desde mi carpeta home.

    ResponderEliminar
  2. Hay una opcion mas comoda para habilitar y deshabilitar modulos en apache, y es usando la sentencia a2enmod para habilitar y a2dismod para deshabilitar.

    Un ejemplo.

    Si quisieramos habilitar userdirs usariamos el comando: sudo a2enmod userdir
    Si, por el contrario, quisieramos deshabilitarlo, lo hariamos con el comando: sudo a2dismod userdir

    ResponderEliminar
    Respuestas
    1. Muy bueno tu post, pude ver las páginas dentro de mi red. Pero cómo sigo para poder configurar y ver x Internet?

      Eliminar
    2. Hola

      para ver las paginas que creas en xampp desde cualquier dispositivo con conexion a internet necesitas conocer la ip real de tu pc, lo cual en ocaciones es complicado dependiendo de tu proveedor de internet sin embargo si la logras obtener basta con escribir en tu navegador http:// junto con tu ip.

      Ejemplo: http://200.35.96.10

      Saludos

      Eliminar
    3. Y en apache2, como le hago para ver por Internet el servidor creado a través de un celular o un pc conectado a la misma red?

      Eliminar
  3. muy buena información
    gracias me sirvió de mucho :)

    ResponderEliminar
  4. Estupendo Blog, me ha servido mucho pues he aprendido harto....!

    ResponderEliminar
  5. gracias, muy clara la información

    ResponderEliminar
  6. Muito obrigado pela aula. Muito didático. Parabéns.

    Gracias por la lección. Muy educativo. Enhorabuena.

    ResponderEliminar
  7. Se eu colocar uma pagina html dentro da pasta "WWW', qualquer pessoa na WEB poderá acessá-la ? Daria para responder no meu email (laertefavero@gmail.com) ? Obrigado.

    Si pongo una página HTML dentro de la "WWW", cualquier usuario de la web puede acceder a ella? Daria para responder a mi correo electrónico (laertefavero@gmail.com)? Gracias.

    ResponderEliminar
    Respuestas
    1. Hola

      Si, cualquier persona puede entrar a una pagina que crees en tu servidor apache pero no a través de una dirección web normal sino por medio de tu dirección IP.

      Saludos

      Eliminar
  8. Buena la información... pero tengo un problema, no me permite hacer ningún cambioen los archivos. Me dice que no tengo los permisos para eso...

    ¿cómo le hago para cambiar eso?

    ResponderEliminar
    Respuestas
    1. Debes de poner antes de nada "sudo" más el comando o si no entrar como super usuario "sudo -i"

      Eliminar
  9. Esto sucede debido a que no ingresaste la orden como super administrador.

    Para ingresar ordenes como administrador puedes escribir sudo antes del comando que quieras o escribiendo la orden:

    sudo su

    Saludos

    ResponderEliminar
  10. La instalación en Centos, Fedora, Red Hat, entre otros varia, aqui la explicación http://isyskernel.blogspot.com/2013/03/Instalar-httpd-Apache-2-GNU-Linux-CentOS-64.html

    ResponderEliminar
  11. Hola. buen manual de instalaci'on pero cual es la orden que debo de escribir despues de presionar alt + f2, porque yo no veo nada. Saludos

    ResponderEliminar
    Respuestas
    1. Hola

      Ya he corregido el tutorial, la orden que me faltaba era gksu gedit el cual te sirve para editar los archivos de configuración de apache.

      Saludos

      Eliminar
    2. amigo nececito saber como quitar la pagina que trae ubuntu yaracuy63@hotmail.com www.johamay.net.ve como vorrar para colocar las web

      Eliminar
    3. Hola

      Leyendo tu comentario lo que quieres hacer es cambiar la pagina principal de firefox o chrome. Si es así busca la opción preferencias en cualquiera de estos dos navegadores, luego busca página de inicio y cámbiala por la que desees.

      Saludos

      Eliminar
  12. Kuyne necesito contactar con usted, para preguntarle si puedo copiar algunas informaciones, de linux ya que e creado una pagina de actualizaciones, y algunas informacion de su Blog, me interesa, como no quiero tener problema si su informacion, a sido copiada le pido su permiso, colocando un Banner con su blog de enlace si no hay problema? espero su respuesta, nuestro correo es smartupdate@outlook.com soy usuario de Ubuntu.

    ResponderEliminar
  13. Hola, hise el cambio de directorio y si se pueden ver los archivos html pero en los php no se ejecuta el codigo php solo se ve el html, sabrias que mas debo hacer para que se ejecute el codigo php, tengo instalado el php5 y phpmyadmin, el phpmyadmin funciona sin problema.

    ResponderEliminar
    Respuestas
    1. Hola

      Revisa en el centro de software o en el gestor de paquetes synaptic que hayas instalado todos los modulos de php para apache, especialmente el paquete libapache2-mod-php5.

      Esto podría solucionar tu problema.

      Saludos

      Eliminar
    2. hola, el modulo si esta instalado, te envio imagenes https://www.dropbox.com/sh/yuym0vqq231fyl9/AAA3e5KE27KF_CtglGRqIKGBa#/
      en esta direccion veras 5 imagenes localhost esta en var/www y el sitio virtual esta dentro de mis carpetas personales.

      Eliminar
    3. Hola

      Te cuento que es difícil saber cual es tu problema debido a que puede tener varias causas,por lo que veo en las imágenes estas usando joomla por lo que te recomiendo que intentes estas soluciones:

      * Cambia los permisos de la carpeta htdocs, lo puedes hacer con el comando sudo cmhod 0777 -R /opt/lampp/htdocs

      * Revisa que mysql este trabajando correctamente y que tengas configurado correctamente la conexión de tu app con la base de datos.

      * Revisa que la versión de php que usas y sus módulos estén dentro de los requerimientos de funcionamiento de joomla o de las tecnologías que uses.

      Saludos

      Eliminar
  14. yo tengo mi apache instalado pero ahora instale framework yii para trabajar en php pero cuando lo compruebo en el explorador me dice not found ... alguien sabra porq?

    ResponderEliminar
    Respuestas
    1. Hola

      Siempre que trabajes con un framework en apache asegúrate de revisar los permisos de los archivos del framework después de copiarlos a la carpeta var/www o la que tu hayas configurado, también te recomiendo que trabajes con dominios virtuales de apache para que el framewirk cargue correctamente.

      Espero haberte ayduado.

      Saludos

      Eliminar
  15. Excelente explicación. Más tengo la duda en el caso de querer alojar 2 o más páginas, que debo hacer. Intente creando otro archivo en sites-available, pero no me resulto, ya que me mostro la página que había creado inicialmente.

    ResponderEliminar
  16. Estimados, estoy buscando la manera de ejecutar aplicaciones CGI usando al servidor Apache pero no he tenido éxito. Por favor si conocen alguna manera, tutorial, etc. les quedaré muy agradecido. Las CGI, están programadas en Perl.

    ResponderEliminar
  17. no me deja acceder a la página con mi usuario en el último paso

    ResponderEliminar
  18. Gracias por hacer que mi vida tenga sentido con apache todo es mejor.

    ResponderEliminar
  19. cuando inicio mi pc me salen un monton de letras en blanco parpadiando y al final dice: the apache error log may hace more information fail.
    Y no me deja iniciar. ayuda!!

    ResponderEliminar
  20. Hola! gracias por la info! me podan ayudar para armar un web service para correr apache Spark 1.5.0? no se ni como empezar

    ResponderEliminar
  21. buenas, segui los pasos descrito arriba, pero en mi carpeta de mods-available no aparecen los modulos, no se si es que ya es diferente por el tiempo que ha pasado o me falto instalar algo o hacer otro paso

    cabe destacar que estoy haciendo esto desde cero

    ResponderEliminar
  22. demasiado bueno... te pasaste amigo...

    ResponderEliminar
  23. hola amigo como se hace lo del espacio que se puede web o es interno me gustaria saber quier trasmirir videos desde ese como 1 tera si me pudes orientar un poco saludos

    ResponderEliminar

Comenta, no es necesario registrarse!