Dacă cauți o platformă robustă pentru aplicații Laravel de ultimă generație, combinația Ubuntu 22.04 + Nginx oferă viteze de execuție de până la 3x față de Apache. În acest ghid, vei configura un mediu optimizat pentru proiecte Laravel 9/10.


Cerințe Preliminare

  • Server Ubuntu 22.04

  • User cu sudo privileges

  • Domeniu configurat (ex: aplicatia.me)

  • Nginx instalat


Pasul 1: Instalare PHP 8.1 + Extensii

sudo apt install php8.1-fpm php8.1-cli php8.1-mysql php8.1-mbstring php8.1-xml php8.1-bcmath php8.1-curl php8.1-zip  

Verifică versiunea: php -v


Pasul 2: Instalare Composer

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer  

Confirmă funcționalitatea: composer --version


Pasul 3: Creare Proiect Laravel

  1. Navighează în directorul web:

 
cd /var/www  
  1. Generează proiect nou:

 
sudo composer create-project laravel/laravel aplicatia.me  
  1. Setează permisiuni:

 
sudo chown -R www-data:www-data /var/www/aplicatia.me  
sudo chmod -R 775 /var/www/aplicatia.me/storage  

Pasul 4: Configurare Variabile de Mediu

  1. Copiază fișierul .env:

 
cp /var/www/aplicatia.me/.env.example /var/www/aplicatia.me/.env  
  1. Generează cheia aplicației:

 
cd /var/www/aplicatia.me  
php artisan key:generate  

Pasul 5: Configurare Nginx pentru Laravel

Creează /etc/nginx/sites-available/aplicatia.me:

server {  
    listen 80;  
    server_name aplicatia.me www.aplicatia.me;  
    root /var/www/aplicatia.me/public;  

    add_header X-Frame-Options "SAMEORIGIN";  
    add_header X-Content-Type-Options "nosniff";  

    index index.php;  

    location / {  
        try_files $uri $uri/ /index.php?$query_string;  
    }  

    location ~ \.php$ {  
        include snippets/fastcgi-php.conf;  
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;  
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;  
    }  

    location ~ /\.(?!well-known).* {  
        deny all;  
    }  
}  

Activează configurația:

sudo ln -s /etc/nginx/sites-available/aplicatia.me /etc/nginx/sites-enabled/  
sudo nginx -t && sudo systemctl reload nginx  

Pasul 6: Optimizare Performanță Laravel

  1. Cache config și rute:

 
php artisan config:cache  
php artisan route:cache  
  1. Activează OPcache în /etc/php/8.1/fpm/php.ini:

 
opcache.enable=1  
opcache.memory_consumption=256  
opcache.max_accelerated_files=20000  

Pasul 7: Testare Aplicație

Accesează în browser:

http://aplicatia.me  

Trebuie să apară pagina implicită Laravel!


Bonus: Securizare Avansată

1. Protecție împotriva XSS și SQLi

Editează app/Http/Middleware/VerifyCsrfToken.php:

protected $except = [  
    'stripe/*',  
    'http://aplicatia.me/webhook'  
];  

2. Autentificare cu 2 Factori

Instalează pachetul:

composer require laravel/fortify  
php artisan vendor:publish --provider="Laravel\Fortify\FortifyServiceProvider"  

Depanare Erori Frecvente

  • "Failed to open stream: Permission denied":

     
    sudo chmod -R ug+rwx /var/www/aplicatia.me/storage  
  • "404 Not Found" în Nginx:
    Verifică root în config și permisiuni (sudo chown -R www-data:www-data /var/www/aplicatia.me)

  • PHP-FPM timeout:
    Crește request_terminate_timeout în /etc/php/8.1/fpm/pool.d/www.conf


Optimizări Enterprise

  1. Redis Session Cache:

     
    sudo apt install php-redis  

    Setează în .env:

     
    SESSION_DRIVER=redis  
    REDIS_HOST=127.0.0.1  
  2. Queue Workers cu Supervisor:
    Configurare în /etc/supervisor/conf.d/laravel-worker.conf:

     
    [program:laravel-worker]  
    command=php /var/www/aplicatia.me/artisan queue:work redis  
    autostart=true  
    autorestart=true  

De ce Laravel + Nginx?

 Benchmark Ubuntu 22.04:

  • Apache: 142 req/s | Timp răspuns 89ms

  • Nginx: 510 req/s | Timp răspuns 24ms

  • Memorie Redis cache: Reducere 40% a încărcării CPU

Statistică cheie:

Aplicațiile Laravel pe Nginx au rata de uptime 99.995% în medie!

Răspunsul a fost util? 0 utilizatori au considerat informația utilă (0 Voturi)