Acabo de terminar un curso donde instala todo a pie, es decir, aparte php, composer, base de datos y gestor, un solo relajo para preparar el entorno de desarrollo... Y aquí lo hiciste de una manera super sencilla y fácil de entender, gracias por el video y definitivamente necesitamos un curso de Laravel en tu canal, gracias por el video.
Hoy nuevamente volviendo a la programación después de casi 6 años. Impregnándome de nuevas tecnologías y conocimientos, muchas gracias por tu inducción. Saludos!
@@DespiertaTuPoder369 es una disposición del framework, lo mandas a la public, sin embargo puedes hacer lo siguiente para dejarlo en la raíz Para configurar un proyecto Laravel para que se muestre en la raíz del dominio en lugar de en la carpeta `public`, hay varias formas de hacerlo. Aquí te dejo los pasos para dos métodos comunes: configurando el servidor web y usando un archivo `.htaccess`. ### Método 1: Configurar el Servidor Web #### En Apache 1. **Mover el contenido de `public` a la raíz del proyecto:** - Mueve el contenido de la carpeta `public` a la raíz del proyecto. - Elimina la carpeta `public`. 2. **Actualizar `index.php`:** - Abre el archivo `index.php` y cambia las rutas de las siguientes líneas: ```php require __DIR__.'/../vendor/autoload.php'; $app = require_once __DIR__.'/../bootstrap/app.php'; ``` A: ```php require __DIR__.'/vendor/autoload.php'; $app = require_once __DIR__.'/bootstrap/app.php'; ``` 3. **Actualizar las rutas de los assets:** - Si tienes referencias a archivos CSS, JS, o imágenes en tus vistas, asegúrate de actualizar las rutas para que apunten correctamente a su nueva ubicación. #### En Nginx 1. **Configurar el bloque del servidor:** - Abre el archivo de configuración del servidor (`/etc/nginx/sites-available/tu-sitio` o similar). - Configura la raíz del servidor para que apunte a la carpeta `public`: ```nginx server { listen 80; server_name tu-dominio.com; root /ruta/a/tu/proyecto/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } } ``` ### Método 2: Usar un archivo `.htaccess` Si estás usando Apache, puedes modificar el archivo `.htaccess` para redirigir todas las solicitudes a la carpeta `public`. 1. **Crear o editar el archivo `.htaccess` en la raíz del proyecto:** - Crea un archivo `.htaccess` en la raíz del proyecto si no existe. - Agrega las siguientes líneas: ```apache RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] ``` ### Nota Importante Mover el contenido de la carpeta `public` a la raíz del proyecto puede tener implicaciones de seguridad, ya que expone archivos que deberían estar protegidos. Asegúrate de restringir el acceso a estos archivos en la configuración del servidor web o usando reglas `.htaccess`. ### Alternativa: Configuración de un Virtual Host en Apache Otra opción es configurar un Virtual Host que apunte directamente a la carpeta `public`: 1. **Editar el archivo de configuración del Virtual Host:** - Abre el archivo de configuración del Virtual Host (`/etc/apache2/sites-available/000-default.conf` o similar). - Configura la ruta `DocumentRoot` para que apunte a la carpeta `public`: ```apache ServerAdmin webmaster@localhost DocumentRoot /ruta/a/tu/proyecto/public Options Indexes FollowSymLinks AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ``` 2. **Habilitar el nuevo Virtual Host:** - Guarda los cambios y reinicia Apache: ```bash sudo service apache2 restart ``` Siguiendo uno de estos métodos, podrás mostrar tu proyecto Laravel en la raíz del dominio en lugar de en la carpeta `public`.
@@MauricioSevillaBritto con el metodo 1 funciona, pero no puedo ejecutar livewire, no funciona los eventos, solo funciona cuando levanto el sistema con php artisan serve, péro si lo ejecuta desde localhost no funciona los eventos liwere
@@DespiertaTuPoder369 prueba instalándolo desde consola con composer require livewire/livewire Tienes que incluir los sript de livewire resources/views/layouts/app.blade.php También puedes verificar que la directiva de Livewire está presente en tu vista Asegúrate de usar la directiva @livewire correctamente en tus vistas. Por ejemplo, si tienes un componente Livewire llamado counter, inclúyelo de esta manera: html @livewire('counter') Debes publicar los assets de Livewire A veces es útil publicar los assets de Livewire. Puedes hacerlo ejecutando el siguiente comando: en bash lo siguiente: php artisan livewire:publish --assets Puedes verificar la configuración de tu archivo de rutas Asegúrate de que las rutas de tu aplicación están configuradas correctamente. Si usas Livewire en una SPA (Single Page Application), asegúrate de tener configurada correctamente la ruta principal. No está de más revisar la consola del navegador Abre la consola del navegador (F12 o Ctrl+Shift+I en la mayoría de los navegadores) y verifica si hay errores relacionados con Livewire. Esto te puede dar una pista adicional sobre qué está mal. Por último podrías asegurarte de que livewire.js se esté cargando Verifica que el archivo livewire.js se esté cargando correctamente. Puedes hacerlo revisando la consola del navegador para ver si hay errores 404 o problemas de carga relacionados con el archivo livewire.js. Ejemplo completo de una vista con Livewire: blade
Document @livewireStyles @yield('content') @livewireScripts Y en tu vista específica, puedes usar tu componente Livewire así: blade @extends('layouts.app') @section('content') @livewire('counter') @endsection Me avisas si sigues teniendo errores, también te puedo ayudar a desarrollar a medida las modificaciones o implementaciones con las que estás teniendo inconvenientes.
Acabo de terminar un curso donde instala todo a pie, es decir, aparte php, composer, base de datos y gestor, un solo relajo para preparar el entorno de desarrollo... Y aquí lo hiciste de una manera super sencilla y fácil de entender, gracias por el video y definitivamente necesitamos un curso de Laravel en tu canal, gracias por el video.
Saludos y muchas gracias por tu buena energía
Hoy nuevamente volviendo a la programación después de casi 6 años. Impregnándome de nuevas tecnologías y conocimientos, muchas gracias por tu inducción. Saludos!
Saludos David, un placer !!
Excelente video, un curso de Laravel por tu parte sería genial, aprenderíamos bastante
Saludos y muy buena idea, te comento si me animo!!
¡Este vídeo me ha ayudado mucho en mi proyecto! Comentario para el algoritmo
muchísimas gracias por tu comenario !!
gracias Mauricio, me sirvió de mucho tu explicación
Excelente, me alegra mucho que te haya gustado !!
Gente no se olviden reiniciar despues de instalar compouser
Saludos 🖐️
no me sale instalar con composer bro ayuda.
El sistema no te reconoce la instalación reinicia y si te persiste el fallo re intenta la instalación
como hago para acceder a la url sin public?
@@DespiertaTuPoder369 es una disposición del framework, lo mandas a la public, sin embargo puedes hacer lo siguiente para dejarlo en la raíz
Para configurar un proyecto Laravel para que se muestre en la raíz del dominio en lugar de en la carpeta `public`, hay varias formas de hacerlo. Aquí te dejo los pasos para dos métodos comunes: configurando el servidor web y usando un archivo `.htaccess`.
### Método 1: Configurar el Servidor Web
#### En Apache
1. **Mover el contenido de `public` a la raíz del proyecto:**
- Mueve el contenido de la carpeta `public` a la raíz del proyecto.
- Elimina la carpeta `public`.
2. **Actualizar `index.php`:**
- Abre el archivo `index.php` y cambia las rutas de las siguientes líneas:
```php
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
```
A:
```php
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
```
3. **Actualizar las rutas de los assets:**
- Si tienes referencias a archivos CSS, JS, o imágenes en tus vistas, asegúrate de actualizar las rutas para que apunten correctamente a su nueva ubicación.
#### En Nginx
1. **Configurar el bloque del servidor:**
- Abre el archivo de configuración del servidor (`/etc/nginx/sites-available/tu-sitio` o similar).
- Configura la raíz del servidor para que apunte a la carpeta `public`:
```nginx
server {
listen 80;
server_name tu-dominio.com;
root /ruta/a/tu/proyecto/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
```
### Método 2: Usar un archivo `.htaccess`
Si estás usando Apache, puedes modificar el archivo `.htaccess` para redirigir todas las solicitudes a la carpeta `public`.
1. **Crear o editar el archivo `.htaccess` en la raíz del proyecto:**
- Crea un archivo `.htaccess` en la raíz del proyecto si no existe.
- Agrega las siguientes líneas:
```apache
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
```
### Nota Importante
Mover el contenido de la carpeta `public` a la raíz del proyecto puede tener implicaciones de seguridad, ya que expone archivos que deberían estar protegidos. Asegúrate de restringir el acceso a estos archivos en la configuración del servidor web o usando reglas `.htaccess`.
### Alternativa: Configuración de un Virtual Host en Apache
Otra opción es configurar un Virtual Host que apunte directamente a la carpeta `public`:
1. **Editar el archivo de configuración del Virtual Host:**
- Abre el archivo de configuración del Virtual Host (`/etc/apache2/sites-available/000-default.conf` o similar).
- Configura la ruta `DocumentRoot` para que apunte a la carpeta `public`:
```apache
ServerAdmin webmaster@localhost
DocumentRoot /ruta/a/tu/proyecto/public
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
```
2. **Habilitar el nuevo Virtual Host:**
- Guarda los cambios y reinicia Apache:
```bash
sudo service apache2 restart
```
Siguiendo uno de estos métodos, podrás mostrar tu proyecto Laravel en la raíz del dominio en lugar de en la carpeta `public`.
@@MauricioSevillaBritto con el metodo 1 funciona, pero no puedo ejecutar livewire, no funciona los eventos, solo funciona cuando levanto el sistema con php artisan serve, péro si lo ejecuta desde localhost no funciona los eventos liwere
Uncaught ReferenceError: Livewire is not defined
@@DespiertaTuPoder369 prueba instalándolo desde consola con
composer require livewire/livewire
Tienes que incluir los sript de livewire
resources/views/layouts/app.blade.php
También puedes verificar que la directiva de Livewire está presente en tu vista
Asegúrate de usar la directiva @livewire correctamente en tus vistas. Por ejemplo, si tienes un componente Livewire llamado counter, inclúyelo de esta manera:
html
@livewire('counter')
Debes publicar los assets de Livewire
A veces es útil publicar los assets de Livewire. Puedes hacerlo ejecutando el siguiente comando:
en bash lo siguiente:
php artisan livewire:publish --assets
Puedes verificar la configuración de tu archivo de rutas
Asegúrate de que las rutas de tu aplicación están configuradas correctamente.
Si usas Livewire en una SPA (Single Page Application), asegúrate de tener configurada correctamente la ruta principal.
No está de más revisar la consola del navegador
Abre la consola del navegador (F12 o Ctrl+Shift+I en la mayoría de los navegadores) y verifica si hay errores relacionados con Livewire. Esto te puede dar una pista adicional sobre qué está mal.
Por último podrías asegurarte de que livewire.js se esté cargando
Verifica que el archivo livewire.js se esté cargando correctamente. Puedes hacerlo revisando la consola del navegador para ver si hay errores 404 o problemas de carga relacionados con el archivo livewire.js.
Ejemplo completo de una vista con Livewire:
blade
Document
@livewireStyles
@yield('content')
@livewireScripts
Y en tu vista específica, puedes usar tu componente Livewire así:
blade
@extends('layouts.app')
@section('content')
@livewire('counter')
@endsection
Me avisas si sigues teniendo errores, también te puedo ayudar a desarrollar a medida las modificaciones o implementaciones con las que estás teniendo inconvenientes.