Gerekenler
- REGTR bulut sunucu (Ubuntu 24.04)
- Alan adı ve A kaydı
- sudo yetkili kullanıcı
Adımlar
-
1Paketleri kur
Ubuntu 24.04 PHP 8.3 ile gelir; Laravel'in ihtiyaç duyduğu eklentileri kur.
sudo apt update sudo apt install -y nginx mysql-server unzip git php8.3-fpm php8.3-cli php8.3-mysql php8.3-mbstring php8.3-xml php8.3-curl php8.3-zip php8.3-bcmath php8.3-intl -
2Composer'ı kur
PHP bağımlılık yöneticisini sistem geneline kur.
curl -sS https://getcomposer.org/installer -o composer-setup.php sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer rm composer-setup.php -
3Veritabanı oluştur
Uygulamaya ait veritabanı ve yalnız ona yetkili bir kullanıcı aç. Parolayı kendin belirle.
sudo mysql -e "CREATE DATABASE app CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" sudo mysql -e "CREATE USER 'app'@'localhost' IDENTIFIED BY 'BURAYA-GUCLU-BIR-PAROLA';" sudo mysql -e "GRANT ALL PRIVILEGES ON app.* TO 'app'@'localhost';" -
4Uygulamayı kur
Depoyu klonla, bağımlılıkları kur, .env dosyasını düzenle (DB_DATABASE, DB_USERNAME, DB_PASSWORD) ve migration çalıştır.
sudo mkdir -p /var/www/app && sudo chown $USER:$USER /var/www/app git clone https://github.com/KULLANICI/PROJE.git /var/www/app cd /var/www/app composer install --no-dev --optimize-autoloader cp .env.example .env && php artisan key:generate nano .env php artisan migrate --force sudo chown -R www-data:www-data storage bootstrap/cache -
5Nginx sitesi
Kök dizin public klasörü olmalı; gizli dosyalara erişim kapatılır.
sudo tee /etc/nginx/sites-available/app >/dev/null <<'EOF' server { listen 80; server_name example.com; root /var/www/app/public; 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.3-fpm.sock; } location ~ /\.(?!well-known) { deny all; } } EOF sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx -
6Kuyruk işçisi ve zamanlayıcı
Kuyruk işçisi systemd ile sürekli çalışır, zamanlayıcı dakikada bir tetiklenir. SSL için Node.js rehberindeki certbot adımını uygula.
sudo tee /etc/systemd/system/laravel-queue.service >/dev/null <<'EOF' [Unit] Description=Laravel queue worker After=network.target [Service] User=www-data WorkingDirectory=/var/www/app ExecStart=/usr/bin/php artisan queue:work --sleep=3 --tries=3 --max-time=3600 Restart=always [Install] WantedBy=multi-user.target EOF sudo systemctl enable --now laravel-queue (sudo crontab -u www-data -l 2>/dev/null; echo "* * * * * cd /var/www/app && php artisan schedule:run >> /dev/null 2>&1") | sudo crontab -u www-data -
İpuçları
- .env dosyasında APP_DEBUG=false ve APP_ENV=production olduğundan emin ol; hata ayrıntıları ziyaretçiye görünmesin.
- php artisan config:cache route:cache view:cache ile üretimde hızlanırsın.
- MySQL'i dışarı açma; yalnız yerelden (localhost) erişilsin.
Sık sorulan sorular
Hangi plan?
Orta trafikli bir Laravel uygulaması için 2 vCPU / 4 GB AMD EPYC (Performans 2) iyi bir başlangıçtır; veritabanı büyürse ayrılmış CPU planlarına geçin.
PHP 8.4 kullanabilir miyim?
Evet, ondrej/php PPA deposuyla kurabilirsin; bu rehber Ubuntu'nun kendi deposundaki PHP 8.3 ile ilerler.
Güncelleme: 2026-10-23