En el siguiente artículo vamos a echar un vistazo a Laravel y su instalación en Ubuntu. Se trata de un framework para PHP de código abierto muy popular. Está destinado a facilitar el desarrollo de aplicaciones. Si estás buscando un nuevo marco de PHP para desarrollar tus proyectos, debes probar Laravel.
Laravel es un framework de aplicaciones web con una sintaxis expresiva y elegante que hará del del desarrollo una experiencia agradable y creativa. Laravel intenta facilitar el desarrollo de las tareas comunes utilizadas en la mayoría de los proyectos web, como la autenticación, el enrutamiento, las sesiones y el almacenamiento en caché.
Este framework tiene como objetivo hacer que el proceso de desarrollo sea agradable para el desarrollador sin sacrificar la funcionalidad de la aplicación. Laravel es accesible y proporciona potentes herramientas necesarias para aplicaciones grandes y robustas. Nos va a proporcionar contenedores de control, un sistema de migración expresivo y un soporte de prueba de unidades estrechamente integrado que nos brindarán las herramientas que cualquiera necesitará para construir la aplicación que se le haya encomendado.
Antes de empezar, siempre es una buena idea asegurarse de que las fuentes y el software existentes en nuestro equipo estén actualizados. En la terminal (Ctrl+Alt+T) escribiremos:
sudo apt-get update && sudo apt-get upgrade
He de decir que con lo que aquí voy a escribir, he instalado este framework en Ubuntu 16.04, 17.10 y 18.04. Antes de empezar con la instalación de Laravel, necesitaremos instalar otros componentes que son esenciales.
Instalar PHP 7.1
El siguiente paso es instalar PHP junto con varios paquetes adicionales que resultan útiles si vas a trabajar con Laravel. En la terminal (Ctrl+Alt+T) escribiremos:
sudo add-apt-repository ppa:ondrej/php sudo apt-get update && sudo apt-get install php7.1 php7.1-mcrypt php7.1-xml php7.1-gd php7.1-opcache php7.1-mbstring
Aunque el propio repositorio de Ubuntu tiene disponible PHP, me parece mejor idea agregar un repositorio de terceros aquí porque se actualiza con más frecuencia. Se puede omitir ese paso y utilizar la versión de Ubuntu, si eso es lo que prefieres.
Instalar Apache
Es hora de instalar el servidor Apache. También necesitaríamos instalar el paquete libapache2-mod-php7.1 para conectar Apache con PHP.
sudo apt-get install apache2 libapache2-mod-php7.1
Instalar Laravel
Antes de profundizar en la instalación, será necesario que se instale el control de versiones de Git.
Para instalar Laravel, primero tenemos que instalar Composer. Esta una herramienta para la administración de dependencias en PHP que permitirá empaquetar todas las bibliotecas requeridas asociadas. Para instalar Laravel y todas sus dependencias, se requiere Composer. Para instalar esta herramienta, en la terminal (Ctrl+Alt+T) tendremos que escribir los siguiente comandos (Ctrl+Alt+T):
cd /tmp curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
El comando curl descarga el paquete composer.phar a nuestro directorio /tmp. Pero como nos interesaría más que composer se ejecutase globalmente, debemos moverlo al directorio /usr/local/bin. Terminado todo esto, ahora podemos ejecutar composer desde cualquier lugar de nuestro sistema operativo.
Para instalar Laravel, nos dirigiremos al directorio público html de tu sistema. Como estamos en Ubuntu y usando Apache, lo instalaremos en el directorio /var/www/html.
cd /var/www/html sudo composer create-project laravel/laravel tu-proyecto - -prefer-dist
El comando anterior creará el directorio «tu-proyecto» con la instalación de Laravel. Composer usa git para descargar e instalar todos los paquetes y módulos que Laravel requiere para funcionar.
Configurando Apache
Ahora que hemos instalado Laravel, pasamos a configurar el servidor web Apache.
El siguiente paso es otorgar los permisos adecuados al directorio del proyecto. Para esto, necesitamos habilitar el acceso al grupo www-data y otorgarle permisos de escritura al directorio de almacenamiento. En la terminal (Ctrl+Alt+T) escribiremos:
sudo chgrp -R www-data /var/www/html/tu-proyecto sudo chmod -R 775 /var/www/html/tu-proyecto/storage
Ahora nos dirigiremos al directorio /etc/apache2/sites-available y utilizaremos el siguiente comando para crear un archivo de configuración para nuestra instalación de Laravel:
cd /etc/apache2/sites-available sudo nano laravel.conf
Cuando se abra nano agregaremos el siguiente contenido al archivo. Habrá que reemplazar tudominio.tld con el nombre de dominio de tu sitio web dentro del archivo. También habrá que cambiar el nombre del proyecto por el que hemos creado anteriormente. En caso de usarlo en local, escribe localhost.tld.
<VirtualHost *:80> ServerName tudominio.tld ServerAdmin webmaster@localhost DocumentRoot /var/www/html/tu-proyecto/public <Directory /var/www/html/tu-proyecto> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Ahora tenemos que habilitar este archivo .conf recién creado. También tendremos que deshabilitar el archivo .conf predeterminado que se instala con la instalación de Apache. Además, debemos habilitar mod_rewrite para que los enlaces permanentes puedan funcionar correctamente.
sudo a2dissite 000-default.conf && sudo a2ensite laravel.conf && sudo a2enmod rewrite
Y terminamos reiniciando apache con:
sudo service apache2 restart
Con esto, tu instalación de Laravel ahora está completa. Visita la dirección IP o el nombre de dominio de tu servidor con un navegador web (en mi caso, http://localhost). Si todo ha ido bien, verás la página predeterminada de Laravel, desde la que podrás acceder a la documentación de este framework y demás opciones.
Muy bien hasta aquí;
cd /tmp
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Donde ya no sirvió
¿Por qué ya no sirvió a partir de ahí? ¿Qué error te muestra?
Todo iba bien hasta este punto
sudo composer create-project laravel/laravel tu-proyecto – -prefer-dist
En el cual sale el siguiente error:
Do not run Composer as root/super user! See https://getcomposer.org/root for details
[Symfony\Component\Console\Exception\RuntimeException]
The «-p» option does not exist.
Ejecútalo sin sudo.
El problema es que hay una falla en el comando. Hay que juntar los 2 «-» ya que si no lo agarra como un «-p». Espero que sirva el comentario, así conseguí que funcionara.
Yo tengo una duda, todo me sirvio, todo, me abre Laravel, pero quiero crear otro proyecto, lo unico que hice fue hacer todo desde crear el proyecto con composer y lo nombre LARAVEL_2 (el primero proyecto que cree fue LARAVEL), este proyecto en la misma ruta /var/www/html que en el primer proyecto creado, todo va bien hasta que llego a la parte que creo es donde me da problemas, que es en el archivo de configuracion del virtual host
Para el primer proyecto lo tengo asi:
ServerName localhost.tld
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/LARAVEL/public
AllowOverride All
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Y todo salio perfectamente, pero cuando hago para el segundo proyecto, lo tengo asi:
ServerName homestead.test
ServerAdmin micorreo@hotmail.com
DocumentRoot /var/www/html/LARAVEL_2/public
AllowOverride All
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Ejecuto los siguientes comandos, sin tener ningun problema hasta finalizar con reiniciar apache, el problema esta es que ahora no puedo entrar al primer proyecto poniendo localhost en mi laptop, ni mucho menos a homestead.test que es donde segun con ese nombre es como yo puedo acceder a mi proyecto, entonces ¿como puedo resolver esto?
Este articulo fue de mucha ayuda, solo que quise hacer algo mas, y me salio un poco mal
Edita el archivo /etc/hosts y en una nueva linea agrega:
127.0.0.1 homestead.test
reinicia apache y escribe en el navegador:
http://homestead.test
hola quiero saber si funciona en ubuntu 20.04lts pues instale y me pide que falta algunas dependencias como: Your requirements could not be resolved to an installable set of packages.
laravel/framework v7.9.2 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
por favor ayuda
A pesar de que este tutorial parece ser de hace varios años, me ha funcionado en pleno 2022 en Ubuntu Jammy Jellyfish.
Muy buen trabajo Damián 🙂