Linux’ta Laravel Kurulumu: Eksiksiz Türkçe Rehber
Linux üzerinde Laravel kurulumu için PHP, Composer, Node.js, Git, SQLite/MySQL, Nginx, Laravel Installer, ilk proje ve sık hata çözümlerini adım adım anlatıyorum.
Linux’ta Laravel kurulumu, özellikle Ubuntu veya Debian tabanlı sistemlerde gayet temiz ilerler. Ama eksiksiz bir ortam için sadece `php` kurmak yetmez. PHP extension’ları, Composer, Laravel Installer, Node.js/NPM, Git, veritabanı, storage izinleri ve ilk proje kontrolleri birlikte yapılmalıdır.
Bu rehberde Ubuntu/Debian ana akışıyla Laravel kurulumunu anlatacağım. Fedora kullananlar için de kısa notlar ekleyeceğim. Türkçe’yi çok akademik yapmadan, terminali açıp uygulayabileceğin seviyede ilerleyelim.
1. Sistem Güncelleme
Önce paket listesini güncelle ve mevcut paketleri yükselt:
sudo apt update
sudo apt upgrade -y
Sistem bilgilerini kontrol etmek istersen:
lsb_release -a
uname -m
2. Gerekli Temel Paketler
Laravel kurulumu sırasında `curl`, `unzip`, `git` gibi araçlara ihtiyaç olur:
sudo apt install -y curl unzip git software-properties-common ca-certificates
Git sürümünü kontrol et:
git --version
İlk Git ayarlarını yap:
git config --global user.name "Ad Soyad"
git config --global user.email "mail@example.com"
3. PHP ve Extension Kurulumu
Laravel için PHP ve bazı extension’lar gerekir. Ubuntu paketlerinde gelen PHP sürümü güncelse şu komut yeterli olur:
sudo apt install -y php php-cli php-mbstring php-xml php-curl php-zip php-sqlite3 php-mysql php-bcmath php-intl
Kurulumdan sonra kontrol et:
php -v
php -m | grep mbstring
php -m | grep pdo
Laravel projelerinde özellikle `mbstring`, `openssl`, `pdo`, `tokenizer`, `xml`, `ctype`, `json`, `curl`, `fileinfo` gibi extension’lar önemlidir. Eksik extension varsa Composer veya Laravel hata verir.
4. Composer Kurulumu
Composer PHP paket yöneticisidir. Laravel projeleri Composer ile kurulur ve paketler Composer ile yönetilir.
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php
sudo mv composer.phar /usr/local/bin/composer
rm composer-setup.php
Kontrol et:
composer -V
Composer komutu sürüm döndürüyorsa tamamdır.
5. Laravel Installer Kurulumu
Laravel Installer yeni proje oluşturmayı kolaylaştırır:
composer global require laravel/installer
Sonra global Composer bin dizinini PATH’e eklemek gerekebilir. Bash kullanıyorsan:
echo 'export PATH="$HOME/.config/composer/vendor/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Zsh kullanıyorsan:
echo 'export PATH="$HOME/.config/composer/vendor/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
Kontrol et:
laravel --version
`laravel: command not found` hatası alırsan şu komutla gerçek yolu gör:
composer global config bin-dir --absolute
Çıkan dizini PATH içine ekle.
6. Node.js ve NPM Kurulumu
Laravel 12 projelerinde Vite, Tailwind veya starter kit kullanırken Node.js gerekir. Ubuntu paketlerinden kurabilirsin:
sudo apt install -y nodejs npm
Kontrol:
node -v
npm -v
Daha güncel Node LTS istiyorsan NodeSource veya nvm kullanabilirsin. Basit başlangıç için paket yöneticisiyle kurulum çoğu zaman yeterlidir.
7. İlk Laravel Projesini Oluştur
Projeleri tutacağın klasörü oluştur:
mkdir -p ~/Sites
cd ~/Sites
Yeni Laravel projesi:
laravel new linux-blog
Projeye gir:
cd linux-blog
Migration çalıştır:
php artisan migrate
Frontend paketleri:
npm install
npm run dev
Başka terminalde Laravel sunucusunu çalıştır:
php artisan serve
Tarayıcıda aç:
http://127.0.0.1:8000
8. SQLite mi MySQL mi?
İlk proje için SQLite çok kolaydır. Laravel yeni projede SQLite ile hızlı başlatılabilir. `.env` içinde şu yeterli olur:
DB_CONNECTION=sqlite
MySQL kullanmak istiyorsan kur:
sudo apt install -y mysql-server
sudo systemctl enable mysql
sudo systemctl start mysql
Veritabanı oluştur:
sudo mysql
CREATE DATABASE linux_blog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
EXIT;
`.env` örneği:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=linux_blog
DB_USERNAME=root
DB_PASSWORD=
Ayar değişince:
php artisan config:clear
php artisan migrate
9. Storage Link ve Dosya İzinleri
Resim ve dosya yükleme kullanacaksan storage link oluştur:
php artisan storage:link
Linux’ta izinler bazen sorun çıkarır. Lokal geliştirmede genelde proje sahibi kullanıcı yeterlidir. Sunucuda ise web server kullanıcısı `storage` ve `bootstrap/cache` klasörlerine yazabilmelidir:
chmod -R ug+rw storage bootstrap/cache
Production sunucuda izinleri rastgele `777` yapmak kötü pratiktir. Sahiplik ve grup ayarı doğru yapılmalıdır.
10. Nginx Notu
Lokal geliştirmede `php artisan serve` yeterlidir. Ama Linux sunucuda Nginx + PHP-FPM kullanılır. Paket kurulumu:
sudo apt install -y nginx php-fpm
Servis kontrolü:
sudo systemctl status nginx
sudo systemctl status php*-fpm
Sunucuda Laravel’in `public` klasörü web root olmalıdır. Proje kökü direkt public edilmemelidir.
11. Docker ve Laravel Sail Alternatifi
Docker kullanmak istiyorsan Laravel Sail iyi bir alternatiftir:
php artisan sail:install
./vendor/bin/sail up -d
./vendor/bin/sail artisan migrate
./vendor/bin/sail npm install
./vendor/bin/sail npm run dev
Sail özellikle ekipli projelerde aynı MySQL, Redis, Mailpit gibi servisleri standart hale getirir. İlk öğrenme aşamasında klasik kurulum daha anlaşılır olabilir.
12. Fedora Kullananlar İçin Kısa Not
Fedora tarafında paket yöneticisi `dnf` kullanılır:
sudo dnf update -y
sudo dnf install -y php php-cli php-mbstring php-xml php-curl php-zip php-sqlite3 php-mysqlnd composer nodejs npm git unzip
Sonrası aynı mantıkla ilerler:
composer global require laravel/installer
laravel new linux-blog
13. Kurulum Sonrası Kontrol Listesi
php -v
composer -V
laravel --version
node -v
npm -v
git --version
php artisan about
php artisan route:list
php artisan migrate:status
php artisan test
npm run build
Bu komutlar temiz dönüyorsa Linux üzerinde Laravel geliştirme ortamın hazırdır.
14. Sık Hatalar
php extension eksik: Composer kurulumda `ext-... missing` hatası verebilir. İlgili `php-xml`, `php-curl`, `php-mbstring`, `php-zip` paketlerini kur.
laravel komutu bulunamadı: Composer global bin dizini PATH içinde değildir. `composer global config bin-dir --absolute` ile yolu bul.
Permission denied: `storage` veya `bootstrap/cache` yazılabilir değildir. Sahiplik ve yazma izinlerini kontrol et.
SQLSTATE bağlantı hatası: `.env` DB bilgileri yanlış veya MySQL servisi çalışmıyor olabilir.
npm run dev hata veriyor: `npm install` çalıştır, Node/NPM sürümünü kontrol et.
Port kullanımda: `php artisan serve --port=8001` ile başka port dene.
Hızlı Komut Özeti
sudo apt update
sudo apt install -y php php-cli php-mbstring php-xml php-curl php-zip php-sqlite3 php-mysql php-bcmath php-intl curl unzip git nodejs npm
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php
sudo mv composer.phar /usr/local/bin/composer
composer global require laravel/installer
laravel new linux-blog
cd linux-blog
php artisan migrate
npm install
npm run dev
php artisan serve
Sonuç
Linux’ta Laravel kurulumu, terminale alışık biri için en temiz geliştirme deneyimlerinden biridir. PHP extension’ları, Composer, Laravel Installer, Node.js, Git ve veritabanı doğru kurulduğunda proje hızlıca ayağa kalkar. Lokal geliştirmede `php artisan serve` yeterli olur; sunucu tarafında Nginx ve PHP-FPM ile daha gerçekçi bir yapı kurulur.
Benim önerim şu: İlk öğrenme için Ubuntu/Debian üzerinde PHP + Composer + SQLite ile sade başla. Proje büyüdükçe MySQL, Redis, queue, Nginx ve Docker/Sail tarafını ekle. Böyle yaparsan hem öğrenme kolay olur hem de production mantığına yakın ilerlersin.
Kaynak notu: Bu yazı Laravel 12 resmi kurulum yaklaşımı ve Linux paket/terminal akışları temel alınarak hazırlanmıştır.