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
-
Navighează în directorul web:
cd /var/www
-
Generează proiect nou:
sudo composer create-project laravel/laravel aplicatia.me
-
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
-
Copiază fișierul
.env
:
cp /var/www/aplicatia.me/.env.example /var/www/aplicatia.me/.env
-
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
-
Cache config și rute:
php artisan config:cache php artisan route:cache
-
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șterequest_terminate_timeout
în/etc/php/8.1/fpm/pool.d/www.conf
Optimizări Enterprise
-
Redis Session Cache:
sudo apt install php-redis
Setează în
.env
:SESSION_DRIVER=redis REDIS_HOST=127.0.0.1
-
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!