Instalar LAMP o montar Servidor WEB Local en Ubuntu 16.04 Apache2, MYSQL, PHP7


Ultima Edición - Domingo Agosto 21 2016 16:59

Con la reciente salida de Ubuntu 16.04 LTS algunas cosas cambiaron y la instalación de un Servidor Web Local ha cambiado con respecto a la versión de paquetes y dependencias, los comandos no son los mismos de la siguiente entrada: LAMP o montar Servidor WEB Local en Ubuntu 15.10 Apache, MYSQL, PHP, si sigues los pasos de la entrada anterior puedes morir en el intento!

Se denomina "LAMP" a un grupo de software de código libre que se instala normalmente en conjunto para habilitar un servidor para alojar sitios y aplicaciones web dinámicas. Este término en realidad es un acrónimo que representa un sistema operativo Linux con un servidor Apache, el sitio de datos es almacenado en base de datos MySQL y el contenido dinámico es procesado con PHP.


Para los que trabajamos con alguna tecnología web, quizás, nos resulte mas fácil realizar nuestras tareas con nuestro propio servidor WEB local, sin tener que pagar de algún hosting o usar el ftp para poder modificar archivos. Como algunos sabemos existen varias alternativas para esto, como es;

WAMP que solo es para Windows
MAMP para Windows y Mac
XAMPP para Windows, Mac y Linux

 Estos programas son de los principales que conozco, que te facilitan las tareas para montar tu propio servidor web local con solo unos clics aunque alguno no son para Linux.

REQUISITOS PREVIOS

En esta guía, vamos a instalar LAMP en un servidor con Ubuntu 16.04. Por lo tanto instalar el sistema operativo Linux será nuestro primer requisito.

Antes de comenzar con esta guía, debes tener una cuenta que cada comando se hace con usuario root.

INSTALACIÓN

- Apache 2 - El servidor Web Apache es actualmente el más popular del mundo, lo que hace que sea una buena opción para montar nuestros sitios.


sudo apt install apache2
Al terminar comprobar que funciona, vamos a la siguiente dirección en el navegador: http://localhost


- PHP - Es el componente de nuestra configuración que procesará código para mostrar contenido dinámico. Puede ejecutar secuencias de comandos, conectarse a nuestras bases de datos MySQL para obtener información, y entregar el contenido procesado a nuestro servidor web para mostrarlo.

sudo apt install libapache2-mod-php php7.0-mbstring php-gettext
Podremos comprobar la version de php instalada con el siguiente comando: php -v



- MYSQL - Es un sistema de gestión de base de datos. Básicamente, se encarga de organizar y facilitar el acceso a las bases de datos donde nuestro sitio puede almacenar información.


sudo apt install mysql-server mysql-client libmysqlclient-dev

IMPORTANTE: En el proceso de instalación te pedirá escribir una nueva contraseña para el usuario root de MYSQL, se recomienda escribirla, por lo general uso root como contraseña por si se olvida.


phpMyAdmin (opcional) - Herramienta escrita en PHP con la intención de manejar la administración de MySQL a través de páginas web, utilizando Internet.

sudo apt install phpmyadmin

IMPORTANTE: 
1 - Preguntará para que servidor web configurar, elegir apache2 y continuar (para navegar entre las opciones usar TAB, para continuar solo da ENTER) . 
2 - Pregunta si queremos configurar la base de datos para phpMyAdmin con dbconfig-common y contestamos que . (presionar la tecla ENTER).
3 - En el siguiente paso se nos pregunta por la contraseña de root de MySQL. Esta contraseña ya existe porque la establecimos al instalar MySQL. La escribimos y pulsamos ENTER.

Al final creamos un enlace simbólico de la carpeta phpmyadmin en la ruta /var/www/html

sudo ln -s /usr/share/phpmyadmin /var/www/html


Si todos los comandos salieron bien, felicidades lo lograste, solo falta reiniciar el servidor apache desde la terminal con:

sudo service apache2 reload

 Podemos ir a la siguiente URL y podremos comprobar que nuestro servidor funciona: http://127.0.0.1http://localhost

También comprobamos el estado de phpmyadmin http://localhost/phpmyadmin, el usuario es root y la contraseña es la especificada al instalar MySQL




COMANDOS ÚTILES

Al instalar nuestro propio lamp no tendremos una interfaz con la cual podremos hacer varias tareas una de ellas reiniciar el servidor apache2 o cambiar la ruta por defecto donde estarán nuestros archivos html o php,  para esto la terminal sera nuestra gran amiga en esto :D

Reiniciar el servidor apache2:

sudo service apache2 restart


Iniciar el servidor apache2:

sudo service apache2 start


Parar el servidor apache2:

sudo service apache2 stop


CARPETA RAÍZ - DE PROYECTOS

¿Y ahora por donde empezar?, buena pregunta, todos los archivos que se visualizaran dentro del navegador en la dirección http://localhost por default se encuentran en la siguiente ruta: /var/www/html


Por defecto no tenemos permiso de escribir en esta ruta, para poder realizar cualquier cambio debemos dar permisos a esta carpeta con el comando:

sudo chmod 777 -R /var/www/html



CAMBIAR LA CARPETA RAIZ


Es normal que cualquier usuario quiera cambiar de /var/www/html a nuestro HOME (carpeta principal). Crearemos una carpeta llamada SITIOS en nuestro HOME:



Para cambiar la ruta debemos cambiar un fragmento de las lineas en los siguientes archivos:

- /etc/apache2/apache2.conf     - Linea 164




- /etc/apache2/sites-available/000-default.conf - Linea 12


cambiamos la ruta seleccionada en las imagenes por la ruta deseada en este caso seria /home/$HOME/Sitios. Para modificar estos archivos necesitamos hacerlo como super usuario, entonces abrimos gedit como superuaurio con:

sudo gedit

Solo arrastramos el archivo a gedit y modificamos, guardamos y reiniciamos apache.



FORBIDDEN

You don't have permission to access / on this server.
Si nos da el siguiente error al cambiar la raiz del localhost, significa que apache2 no puede acceder a esta ruta simplemente por que no tiene permisos o la ruta no existe.

Solo cambiamos los permisosa la carpeta nueva que especificamos con el siguiente comando:

sudo chmod 777 -R /home/sauza/Sitios







22 comentarios :

  1. Amigo, tengo 16.04 hice los pasos que mencionaste y al ingresar a http://localhost/phpmyadmin/
    me muestra el sitio totalmente desconfigurado.
    Que sugieres?

    ResponderEliminar
  2. Hola Jane Q, yo realize los pasos tal cual y me funciono a la perfección, si pùdieras ser mas especifica en cuanto a que esta "totalmente desconfigurado" creo que podriamos intentar ayudarte, saludos.

    ResponderEliminar
  3. no se ahora hare prueba, pero creo que falla php.
    hice el famoso help()

    ResponderEliminar
  4. Una preguntita, como hacer configuracion puertos, proxy, etc. nada de nada y aparentemente todo en orden. Te seria muy agradecido hace muy poco deje Windows. Gracias por adelantado.

    ResponderEliminar
  5. una pregunta a mi no me conecta con la base de datos ?? como haria me sale como si no estuviera conectando gracias

    ResponderEliminar
  6. Por lo que menciona en su comentario JANE Q, parece que me sucede lo mismo... Al ingresar a http://localhost/phpmyadmin/ no muestra la interfaz de la app, sólo me muestra el codigo php, como si se estuviera abriendo en un editor de codigo... no se ejecuta!

    ResponderEliminar
  7. y como le hago para que sea un servidor publico?

    ResponderEliminar
  8. Disculpa despues de instalar el apache2 pongo el localhost y aparece que no se puede conectar, si mepudieras ayudar con una solucion pls

    ResponderEliminar
  9. esto configuracion se puede hacer con ubuntu server o exclusiva de ubuntu

    ResponderEliminar
  10. A mi me pasa lo mismo que Jane , al abrir myphpadmin me sale error y pone que necesito una MySQL extensión.. Pero tenía otra pregunta hay muchas diferencias entre php7 y php5? Y como podría instalar el 5 en vez de el 7? Graacias

    ResponderEliminar
  11. Solo un apunte, en lugar de modificar los permisos y editar archivos de configuración, sería mejor crear los proyectos en tu carpeta local y simplemente hacerles un enlace simbólico de la misma forma que se hace aqui en la instalación de phpMyAdmin. De esta forma si tienes que reinstalar el sistema por alguna causa, tus proyectos estarían a salvo y solo tendrías que volver a crear el enlance simbólico.
    OJO: Esto solo es aconsejable cuando se tiene otra particion para /home (lo más recomendable)

    ResponderEliminar
  12. Por fin una buena página que funciona perfectamente como instalar LAMP. Hice todos lso apsos y no dio ningún error. Felicidades por hacer más facil esto para los que tenemos poca idea.

    ResponderEliminar
  13. Tengo un problema, cuando instalé mysql, en el apartado de contraseña, me decía que si no escribía nada, tomaba por defecto mi conraseña habitual. Ahora no puedo acceder a la página phpmyadmin. Debo desinstalar y empezar el proceso de nuevo? o existe alguna manera de arreglarlo ya habiendo llegado hasta acá? Muchas gracias de antemano.

    ResponderEliminar
  14. Hola exelente tutorial, pero como hago para subir entonces mi archivos, o cargar como pagina web.. Todo salió super pero entonces todos mis archivos html se abren es en mi equipo y me gustaria qe se cargaran como una pagina web (ejemplo.com ; ip.com) cosas asi entiendes?

    ResponderEliminar
  15. para los que no les muestra el phpmyadmin es porque no hicieron el enlace simbolico:
    Al final creamos un enlace simbólico de la carpeta phpmyadmin en la ruta /var/www/html

    sudo ln -s /usr/share/phpmyadmin /var/www/html

    ResponderEliminar
  16. muchas gracias Ivan Sauza, excelente tuto ayuda

    ResponderEliminar
  17. Perdona, pero permisos 777 !!!, para un directorio que esta expuesto en una pagina Web, estas poniendo en peligro la seguridad del cualquier pagina web y con recursividad, eso significa que 7-> lectura,escritura y ejecución al propietario, al grupo y a otros, te recomiendo que 777 no utilices lo optimo es ejecución y lectura pero escritura no hace falta

    igualmente !!! BUEN POST;)

    ResponderEliminar
  18. Habría que ser un verdadero tonto para poner permisos 777 en producción, esto solo lo ocupo para servidores locales :D saludos

    ResponderEliminar
  19. hice todos los pasos excepto lo ultimo de cambiar de carpeta para localhost.
    mi pregunta es cómo le hago para conectarme a la dirección 127.0.0.1 (la de localhost) desde otro dispositivo (pc, tablet, celular) y ver su contenido?

    ResponderEliminar
  20. @Diego WarpZone Solo tienes que ingresar la dirección IPv4 desde el navegador de otra PC y se visualizaráel contenido del localhost, aclaro que solo es para red local :D

    ResponderEliminar
  21. hola hice todos los pasos pero desde que checo mi localhost para ver apache me sale not found alguien ayudaaaaaaaaaaaaa!!!!!!!!!!!!!!!

    ResponderEliminar