Hoy vamos a ver como instalar Laravel partiendo de la imagen creada en Crear contenedor Docker con CentOS7/Nginx/MariaDB y MultiPHP que vimos hace un par de semanas. A partir de esa imagen vamos a instalar y configurar un nuevo proyecto en Laravel dando de alta un host virtual en Nginx.
Contents
Una de las ventajas de docker es el poder crear, usar y descartar los contenedores facilmente, si queremos facilitar aun mas podemos usar el siguiente script, podes ejecutar lo siguiente
sudo touch /usr/sbin/newdock sudo chmod +x /usr/sbin/newdock sudo nano /usr/sbin/newdock
Luego guardamos el siguiente contenido en el archivo newdock
#!/bin/bash mkdir -p $2/{html,mysql,backup,disk,nginx} docker run -it --privileged --hostname="server" -e "container=docker" --cap-add SYS_ADMIN \ --tmpfs /run -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -p 22:22 -p 80:80 -p 3306:3306 \ -v "$2/html:/var/www/html" \ -v "$2/nginx:/etc/nginx/conf.d" \ -v "$2/mysql/:/var/lib/mysql" \ -v "$2/backup/:/backup" \ -v "$2/disk/:/mnt/disk" \ --name $1 "alvarodeleon/centos7-nginx-multiphp" "/usr/sbin/init"
Usando el script anterior, ejecutamos:
sudo newdock ContenedorDocker /ruta/ProyectoLaravel
Ingresamos con el usuario root y password docker y primero ejecutamos mysql_repair
#Configuramos la versión 7.0 de PHP setphp 70 #Luego hacemos cd /var/www/html #A través de composer creamos el proyecto que #para este ejemplo llamaremos ProyectoLaravel composer create-project --prefer-dist laravel/laravel ProyectoLaravel
Ahora podemos configurar un dominio por ejemplo laravel.lan para poder ingresar desde nuestro navegador, para eso podemos modificar el archivo /etc/hosts de nuestro PC si utilizamos Linux y agregamos la siguiente línea
127.0.0.1 laravel.lan www.laravel.lan
Obiamente podemos colocar el nombre que queramos, no solo laravel.lan.
Si tienen Windows pueden seguir esta guía Cómo usar el archivo hosts de nuestro sistema operativo
Aquí vamos a configurar Nginx y a especificar una versión de PHP
Para eso debemos ir en nuestra PC a /ruta/ProyectoLaravel/nginx/ o a la ruta que le hayamos dado por supuesto, también podemos ir al directorio /etc/nginx/conf.d desde dentro de nuestro docker y allí guardamos con el siguiente contenido un archivo llamado laravel.lan.conf o con cualquier nombre siempre y cuando termine con .conf
En el archivo solo debemos corregir el dominio y el nombre del proyecto.
server { listen 80; listen [::]:80; server_name laravel.lan; root /var/www/html/ProyectoLaravel/public; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri =404; #PHP 5.4 #fastcgi_pass 127.0.0.1:9054; #PHP 5.5 #fastcgi_pass 127.0.0.1:9055; #PHP 5.6 #fastcgi_pass 127.0.0.1:9056; #PHP 7.0 fastcgi_pass 127.0.0.1:9070; #PHP 7.1 #fastcgi_pass 127.0.0.1:9071; #PHP 7.2 #fastcgi_pass 127.0.0.1:9072; #PHP 7.3 #fastcgi_pass 127.0.0.1:9073; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_param PHP_VALUE " memory_limit=512M; upload_max_filesize=5M; display_errors=On; error_reporting=E_ALL; max_execution_time=3600; "; } location ~ /\.ht { deny all; } }
Luego de esto desde dentro de docker ejecutamos para asegurarnos que no tengamos problemas de lectura entre docker y nuestra PC
chmod 777 -R /etc/nginx/conf.d/ chmod 777 -R /var/www/html/ service nginx restart
Nos debería aparecer la siguiente pantalla aunque también nos pueden aparecer errores que te ayudare a resolver en el siguiente punto
Lo mas probable es que deban ejecutar lo siguiente
touch /var/www/html/ProyectoLaravel/storage/logs/laravel.log chmod 777 /var/www/html/ProyectoLaravel/storage/logs/laravel.log mkdir -p /var/www/html/ProyectoLaravel/storage/framework/views/ chmod 777 /var/www/html/ProyectoLaravel/storage/framework/views/
Igualmente deben asegurarse que existan los siguientes directorios
bootstrap/cache/ storage/framework storage/framework/views storage/framework/sessions storage/framework/cache
Si crean alguno luego denle permisos 777 igual que en el paso anterior.
Igualmente pueden haber más razones para que de error y si al ingresar en nuestro navegador obtenemos un error 500 pueden revisar este excelente artículo sobre Error 500 en Laravel escrito por Sabrina, una guru en Laravel de primer nivel.
Ella tiene la terrible mala suerte de ser persona a la que molesto siempre con alguna que otra consulta, que por cierto está inaugurando su nuevo blog sabrinadls.com que pueden visitar.
Si tienes alguna duda deja tu consulta en los comentarios.
Administrador de Sistemas, Programador, Docente y ahora resulta que también Blogger (peor es ser tictoker). Más de 20 años de experiencia en computación atendiendo nabos y resolviendo problemas que sino fuera por estos nabos no habrían ocurrido en primer lugar. Escribo más que nada sobre tecnología y herramientas en general además de algunos artículos con opiniones tan subjetivas como irrelevantes, así que si no te gustan mejor madura.
Normalmente, a las estadísticas del blog no le presto demasiada atención, sin embargo, trabajando en…
La idea principal detrás de este blog es marca personal, el blog es para centralizar…
El migrar el disco duro es bastante sencillo como se verá a continuación, la principal…
Cuando se trata de virtualización en el escritorio, una de las primeras opciones son sin…
Siempre he sido un ferviente defensor de una conexión por cable UTP para trabajar por…
Al fin pude recuperar alvarodeleon.com, no es que lo hubiera perdido, fue peor, lo deje…