En este tutorial, Instalaremos Laravel en Ubuntu 26.04 con Nginx, PHP-FPM, Composer, configuraremos los permisos correctos de Laravel, verificación HTTP y un paso HTTPS opcional con respaldo de dominio.
1. Instalar Nginx yPHP-FPM
Instalando Nginx, PHP 8.5-FPM, Composer, y las extensiones de PHP que Laravel necesita en Ubuntu 26.04
sudo apt install -y nginx \
php8.5-fpm php8.5-cli php8.5-common \
php8.5-curl php8.5-mbstring php8.5-xml \
php8.5-bcmath php8.5-zip php8.5-mysql \
php8.5-intl composer php8.5-sqlite3
Activar Nginx y PHP-FPM:
sudo systemctl enable nginx
sudo systemctl enable php8.5-fpm
sudo systemctl start nginx
sudo systemctl start php8.5-fpm
2. Crear la aplicación Laravel
Crea una nueva aplicación Laravel en /var/www/laravel
sudo mkdir -p /var/www/laravelNos movemos al directorio que creamos anteriormente:
sudo chown -R "$USER":www-data /var/www/laravel
cd /var/www/laravelCreamos un nuevo proyecto de Laravel:
composer create-project laravel/laravel .Verificamos la instalación de Larevel:
php artisan --versionLa salida sera algo como: Laravel Framework 13.x.x
Configuramos los permisos sin usar chmod 777:
sudo chown -R "$USER":www-data /var/www/laravel3. Configurando Nginx para Laravel
sudo chmod -R ug+rwX storage bootstrap/cache database
sudo find storage bootstrap/cache database -type d -exec chmod g+s {} \;
Configura el servidor Nginx para que sirva Laravel desde el directorio público y pase las solicitudes PHP a PHP-FPM.
Laravel debe servirse desde el directorio público. No configure Nginx para que apunte a /var/www/laravel, ya que la raíz del proyecto contiene archivos privados como .env, archivos de configuración, almacenamiento, registros y código de la aplicación.
Cree el bloque del servidor Nginx. Para realizar pruebas HTTP por IP, configure APP_HOST con la IP de su máquina:
APP_HOST="TU_IP"
APP_DIR="/var/www/laravel"
creamos el archivo de configuración de Nginx:
sudo tee /etc/nginx/sites-available/laravel > /dev/null <<NGINX
server {
listen 80;
listen [::]:80;
server_name ${APP_HOST};
root ${APP_DIR}/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
location / {
try_files \$uri \$uri/ /index.php?\$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ ^/index\.php(/|$) {
fastcgi_pass unix:/run/php/php8.5-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name;
include fastcgi_params;
fastcgi_hide_header X-Powered-By;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
NGINX
Desactivando la configuración de Nginx predeterminado y activando la de Laravel:
sudo rm -f /etc/nginx/sites-enabled/default
sudo ln -sfn /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/laravel
Probar la configuración de Nginix:
sudo nginx -t
Salida del anterior comando esperada:
syntax is okReload Nginx:
test is successful
sudo systemctl reload nginxAbre la url en tu navegador:
http://TU_IP
Resultado esperado: la página de bienvenida de Laravel se carga a través de Nginx y PHP-FPM.
Fuentes:
Comentarios
Publicar un comentario