Parte 1: Laravel 7, XAMPP | Fedora 32

2 comentarios

Cada uno puede hacerlo de la manera más conveniente posible, recordar que éstos son ejemplos básicos, se puede tomar el código y mejorarlo, están en todo su derecho hacerlo. Tomar en cuenta la seguridad, las mejores prácticas, etc.

Inicio

El siguiente artículo está enfocado para desarrolladores web que se están iniciando con laravel, o bien quieran a aprender a configurarlo en entornos de prueba utilizando las siguientes características:

  • Distro Linux Fedora 32 como sistema operativo
  • XAMPP como servidor web php/apache
  • Laravel como framework de desarrollo php

Muchos quizás dirán que por qué ese?, que existen mejores opciones, o X razón, sea cual sea su razón no usarlo, está bien, es su decisión, habrá usuarios o personas que quieran o sientan la curiosidad de utilizarlo o configurarlo, por lo tanto aquí lo dejo.

Además, como ya dije, son entornos desarrollo en modo debug, o development, no pruducción, por lo tanto son fáciles de instalar y mantener, sobre todo si no se cuenta con una infraestructura o hardware de tipo servidor para hacer una instalación más compleja.

¿Qué es XAMPP?

XAMPP es una distribución de Apache completamente gratuita y fácil de instalar que contiene MariaDB, PHP y Perl. El paquete de instalación de XAMPP ha sido diseñado para ser increíblemente fácil de instalar y usar.

Es la mejor opción para iniciarse en el desarrollo web con php, bases de datos, etc, en su lugar pueden utilizar otras opción, al final de cuentas, sólo es eso, opciones.

El proceso de instalación lo realicé por separado, así que para que lo puedan revisar, seguir el siguiente post.
https://blog.linuxitos.com/instalar-xampp-7-4-5-fedora-32

¿Qué es Laravel?

Laravel es uno de los frameworks de código abierto más fáciles de asimilar para PHP. Es simple, muy potente y tiene una interfaz elegante y divertida de usar. Fue creado en 2011 y tiene una gran influencia de frameworks como Ruby on Rails, Sinatra y ASP.NET MVC, Codeigniter, entre otros.

Instalación de composer

Composer es un manejador de paquetes para PHP que proporciona un estándar para administrar, descargar e instalar dependencias y librerías. Similar a NPM en Node.js y Bundler en Ruby, Composer es la solución ideal cuando trabajamos en proyectos complejos que dependen de múltiples fuentes de instalación. En lugar de tener que descargar cada dependencia de forma manual, Composer hace esto de forma automática por nosotros.

Instalar el comando composer y dependencia:

sudo dnf install composer

Primer proyecto Laravel 7

En éste post, la versión de laravel es la 7, por lo tanto usaremos la última versión disponible en la página oficial. Y realizaremos las siguientes acciones

  • Configurar entorno con xampp
  • Iniciar proyecto laravel
  • Configurar arrancado archivos
  • Configurar URL
  • Permisos a directorios
  • Visualizar nuestro primer sitio con laravel

1.- Creando proyecto

Recomendaciones:
a) Crear un enlace de la carpeta htdocs de la ruta /opt/lamp/ a la carpeta del personal de fedora con el nombre de www, ésto para facilitar el acceso a los archivos.

sudo ln -s /opt/lampp/htdocs /home/nombre-usuario/www

b) Crear dentro de la carpeta www que ahora está en la carpeta personal un subdirectorio con el nombre devs, o bien algún otro nombre que elijan, y aquí en ésta carpeta estarán todos los directorios de los proyectos que realicen:

sudo mkdir ~/www/devs

c) Es necesario asignar los permisos a los directorios de escritura y asignación de grupo de propietarios, para que el usuario pueda modificar el contenido de las carpetas. Hacerlo de ésta forma, no entrará en conflicto con los permisos requeridos por xampp.

sudo chmod 775 -R ~/www/devs
sudo chown -R daemon:nombre-usuario ~/www/devs

Ahora sí, a crear el proyecto, y recordar que aplicar los permisos correctos en los directorios permitirá tener un control sobre quiénes acceden o modifican dichos archivos, sobre todo ésto es una buena práctica cuando el proyecto está puesto en producción.

Creación proyecto Laravel

La creación de un proyecto es mediante línea de comandos, en éste caso, abrimos la terminal y nos ubicamos en la ruta ~/www/devs

cd ~/www/devs

Una vez ahí, ejecutar el siguiente comando:

composer create-project --prefer-dist laravel/laravel laravel-crud-four

En la ruta en la que estamos, se creará un proyecto de nombre laravel-crud-four éste último es el nombre del proyecto, es posible modificarlo más a adelante, así que no pasa nada si se equivocan.

Comenzará la descarga de archivos y dependencias:

Si todo fue bien, ahora en el directorio habrá una carpeta con el proyecto creado.

Configurando .env

En el archivo .env se configuran los parámetros del proyecto, como son la url, contraseñas de bases de datos, configuración del mail cuando éste se utilice, las contraseñas y tokens de la app, además, aquí también se indica si el desarrollo está en producción o en desarrollo, eso es algo muy importante de especificar.

Antes de poder modificar dichos archivos, es necesario asignar los permisos a la proyecto creado:

sudo chmod 775 -R ~/www/devs/laravel-crud-four
sudo chown -R daemon:linuxitos laravel-crud-four

Si por alguna razón, éstos permisos están mal, cuando intenten acceder desde el navegador, les marcará error de permisos y no mostrará nada.

Abrir el archivo .env el cual viene oculto dentro de la carpeta del proyecto y modificar algunas opciones, como son el nombre del proyecto, la url, y cuando se requiera, se configurará la base de datos, por ahora sólo el nombre del proyecto, y la url, la cual tendrá la siguiente estructura, considerando que hayan seguido los pasos de éste artículo.

gedit ~/www/devs/laravel-crud-four/.env
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:B5cvxTOnubaRpfawg3xvfVi1PB5Ur/3i+zLdFIFRD7g=
APP_DEBUG=true
APP_URL=http://localhost/devs/laravel-crud-four/

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

Acceso web

Una vez que se haya modificado a la url correcta, ahora procedemos a abrirlo en un navegador http://localhost/devs/laravel-crud-four/ y aparecerá lo siguiente:

Ésto debido a que laravel requiere que iniciemos un servicio llamado artisan que lo incluye en su carpeta, ejecutamos el siguiente comando:

php artisan serve

Y ahora abrir en el navegador la url http://127.0.0.1:8000

Eliminando public y no usar artisan serve

Para efectos de desarrollo y pruebas, a veces es molesto estar iniciando y sobre todo, manejar laravel desde la ip del servidor, por lo tanto, lo que se puede hacer es un cambios para poder acceder a la url de manera directa sin tener que lanzar el servicio cada vez que haya cambios.

Paso 1:

Copiar los archivos index.php y .htaccess de la carptea public y pegarlos en la raíz del proyecto.

Abrir el archivo index.php y modificar lo siguiente:

/*De ésto*/

require __DIR__.'/../vendor/autoload.php';

$app = require_once __DIR__.'/bootstrap/app.php';

/*a ésto*/

require __DIR__.'/../vendor/autoload.php';

$app = require_once __DIR__.'/bootstrap/app.php';

Paso 2:

Abrir el archivo Config/app.php y modificar la siguiente línea

/*De ésto*/
'asset_url' => env('ASSET_URL', null),

/*A ésto*/
'asset_url' => "http://localhost/devs/laravel-crud-four/public",

Y ahora abrir directamente la url en el navegador:

Así, aunque ejecuten la ip del servidor, la url, incluso con la opción de public, abrirá el proyecto.

Archivos del proyecto disponibles en:

https://github.com/jesusferm/laravel-crud-four

Adicional:

Un punto muy importante es comenzar con las buenas prácticas, por lo que es necesario añadir al final de archivo .htaccess las siguientes instrucciones, las cuales evitan el acceso al archivo .env, claro que esas acciones se deben de prever con mayor seguridad, pero ésto puede ser un buen comienzo.

<Files .env>
order allow,deny
Deny from all
</Files>

Y eso sería todo, en un siguiente post, comenzaré con la configuración a base de datos, vistas, controladores, rutas, etc.

Comentarios:

  • Frederick Juárez
    hace 2 meses
    Excelente post Fernando, estaré al pendiente de las siguientes publicaciones. Muchas gracias ;-)
Redes sociales
Accesos directos