ServBay'de Laravel Projesi Oluşturma ve Çalıştırma
Genel Bakış
ServBay, macOS ve Windows'ta çalışan güçlü bir yerel web geliştirme ortamıdır ve PHP, Node.js, Python, Go, Java gibi popüler paketlerin yanı sıra çeşitli veritabanları (MySQL, PostgreSQL, MongoDB), önbellek servisleri (Redis, Memcached) ve web sunucuları (Caddy, Nginx, Apache) ile birlikte gelmektedir.
Bu doküman, ServBay ortamında bir Laravel projesi nasıl hızlıca oluşturulup yapılandırılır, nasıl çalıştırılır detaylıca anlatmaktadır. ServBay'in yerleşik PHP ortamı, Composer paket yöneticisi ve gelişmiş site yönetimi özelliklerinden faydalanarak süreci büyük ölçüde basitleştiriyoruz.
Laravel Nedir?
Laravel, Taylor Otwell tarafından geliştirilen, yaygın olarak kullanılan açık kaynak bir PHP web uygulama çatısıdır. MVC (Model-View-Controller) mimarisini benimser ve kullanıcı doğrulama, yönlendirme, oturum yönetimi, önbellekleme, veritabanı işlemleri gibi web geliştirmede sıkça karşılaşılan işlevleri zahmetsizleştirir. Zarif sözdizimi, güçlü özellikleri ve geniş topluluk desteği ile modern ve sürdürülebilir web uygulamalarının geliştirilmesinde ideal bir tercihtir.
Laravel’in Temel Özellikleri ve Avantajları
- Zarif sözdizimi: Temiz ve anlaşılır kod, daha hızlı geliştirme ve yüksek okunabilirlik sağlar.
- Eloquent ORM: Veritabanı ile etkileşimi son derece kolaylaştıran güçlü bir ActiveRecord uygulamasıdır.
- Artisan Komut Satırı: Migrationlar (veritabanı şeması değişiklikleri), kod üretimi ve test gibi işlemler için faydalı komut satırı araçları sunar.
- Blade Şablon Motoru: Dinamik görünümler oluşturmayı kolaylaştıran basit şablonlama sağlar.
- Geniş eklenti ekosistemi: Composer ile kolayca entegre edilebilen çok sayıda resmi ve üçüncü parti paket içerir.
- Güçlü topluluk desteği: Aktif topluluğu sayesinde bolca kaynak, eğitim dökümanı ve çözüm bulmak mümkündür.
ServBay ile Laravel Geliştirmenin Avantajları
ServBay, Laravel geliştiricilerine şu avantajları sunar:
- Tümleşik ortam: ServBay, birden çok PHP sürümü, Composer ve yaygın olarak kullanılan veritabanları ve önbellek servisiyle önceden gelir; ekstra kurulum gerekmez.
- Kolay yönetim: PHP sürümleri ve site ayarlarını ServBay’in grafik arayüzünden kolayca yönetebilir, servisleri başlatıp durdurabilirsiniz.
- Hazır web sunucu: Varsayılan olarak Caddy sunucu kullanılır ve Laravel gibi PHP çatıları için optimize edilmiş ayarla gelir; sunucu yapılandırması zahmetsizdir.
- HTTPS desteği: ServBay otomatik olarak
.local
alan adlarına SSL sertifikası atar; böylece yerel geliştirme, canlı ortama çok daha yakın ve güvenlidir.
Laravel Projesi Oluşturma
ServBay, web projelerinizin tek bir klasörde tutularak düzenli bir yapıya kavuşmasını önerir:
- macOS:
/Applications/ServBay/www
- Windows:
C:\ServBay\www
Composer’ın Kurulu Olduğundan Emin Olun
ServBay kurulumuyla Composer da gelmektedir, ayrıca kurmanıza gerek yoktur. Terminalde Composer’ın kurulu olduğunu doğrulamak için şunu çalıştırın:
bashcomposer --version
1Komut düzgün çalışır ve sürüm numarası gösterirse Composer kullanıma hazırdır.
Yeni Laravel Projesi Oluşturma
Terminali açın, ServBay’in önerdiği web klasörüne gidin ve Composer ile yeni bir Laravel projesi oluşturun. Klasör adını
servbay-laravel-app
olarak belirliyoruz:macOS:
bashcd /Applications/ServBay/www # Proje klasörünü oluştur mkdir servbay-laravel-app # Klasöre gir cd servbay-laravel-app # Composer ile Laravel projesini mevcut klasöre kur composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Windows:
cmdcd C:\ServBay\www # Proje klasörünü oluştur mkdir servbay-laravel-app # Klasöre gir cd servbay-laravel-app # Composer ile Laravel projesini mevcut klasöre kur composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer Laravel ve tüm bağımlılıklarını indirip kuracaktır.
Proje Klasörüne Girin
Terminalin yeni Laravel projesi kök dizinine konumlandığından emin olun:
macOS:
bashcd /Applications/ServBay/www/servbay-laravel-app
1Windows:
cmdcd C:\ServBay\www\servbay-laravel-app
1
Başlangıç Konfigürasyonu
Uygulama Anahtarı Oluşturma
Laravel, oturumları ve şifreli verileri korumak için bir anahtar kullanır. Proje kökünde Artisan komutunu çalıştırın:
Kök klasör yolları:
- macOS:
/Applications/ServBay/www/servbay-laravel-app
- Windows:
C:\ServBay\www\servbay-laravel-app
bashphp artisan key:generate
1Bu komut
.env
dosyasınaAPP_KEY
değerini otomatik olarak atayacaktır.- macOS:
Ortam Değişkenlerini (
.env
) AyarlamaLaravel
.env
dosyasında veritabanı bağlantısı, uygulama adresi gibi ayarları yönetir. Proje kökünde.env
dosyasını açıp aşağıdaki örneğe uygun şekilde düzenleyin:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Bu değer php artisan key:generate ile oluşturuldu APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Veritabanı örneği (MySQL) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Kullanmak istediğiniz veritabanı adı DB_USERNAME=root # ServBay’in varsayılan kullanıcı adı DB_PASSWORD=password # ServBay’in varsayılan veritabanı şifresi # Önbellek/kuyruk örneği (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # ServBay’de Redis varsayılan olarak şifresizdir REDIS_PORT=6379 # Önbellek/kuyruk örneği (Memcached) # CACHE_STORE=memcached # MEMCACHED_HOST=127.0.0.1 # MEMCACHED_PORT=11211
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26Not: Gerçekten kullandığınız veritabanı ya da servis tipine göre
DB_*
,REDIS_*
,MEMCACHED_*
ayarlarını değiştirmeniz gerekebilir. ServBay’in varsayılan veritabanı kullanıcı adı ve şifresi kontrol panelinde görüntülenebilir.
Web Sunucu Yapılandırma (ServBay'de Site Ekleme)
ServBay’in site yönetimi ile alan adınızı Laravel projenizin public
klasörüne yönlendirebilirsiniz.
ServBay Kontrol Panelini Açın
ServBay uygulamasını başlatıp kontrol panelini açın.
Yeni Site Ekleyin
Kontrol panelindeki ‘Site’ bölümüne gidin. “Ekle” simgesine (genellikle
+
işareti veya benzeri) tıklayarak yeni bir site oluşturun.Site Bilgilerini Doldurun
Aşağıdaki örneğe benzer şekilde site bilgilerini girin:
Ad (Name):
My First Laravel Dev Site
(Kolay tanıyabileceğiniz bir isim)Alan Adı (Domain):
servbay-laravel-test.local
(Tarayıcıda erişmek istediğiniz domain)Site Tipi (Site Type):
PHP
PHP Sürümü (PHP Version): Laravel ile uyumlu olanı seçin, mesela
8.3
.Site Kökü (Site Root):
- macOS:
/Applications/ServBay/www/servbay-laravel-app/public
- Windows:
C:\ServBay\www\servbay-laravel-app\public
(Önemli: Mutlaka Laravel projenizin
public
klasörüne işaret etmelidir.)- macOS:
Daha fazla adım ve seçenek için ServBay dokümantasyonunda İlk Siteyi Ekleme rehberine bakabilirsiniz (İngilizce sürümünü kullanın).
Kaydet ve Uygula
Site konfigürasyonunu kaydedin. ServBay web sunucu ayarlarını otomatik olarak günceller (varsayılan Caddy’dir). Sunucunun yeniden başlatılması istenirse, talimatları takip edin.
Temel Erişimi Doğrulama
Artık Laravel projeniz, belirlediğiniz domain üzerinden erişilebilir olmalı.
Tarayıcıda Açın
Tarayıcınıza
https://servbay-laravel-test.local
gibi belirlediğiniz alan adını yazın.Sonucu Görüntüleyin
Her şey doğru yapılandırıldıysa, Laravel’in hoşgeldiniz sayfasına ulaşmalısınız.
Basit Örnek Kod Ekleme
Daha görsel bir doğrulama için, routes/web.php
dosyasına “Hello ServBay!” çıktısı sağlayacak basit bir rota ekleyelim.
Proje dizinindeki routes/web.php
dosyasını bulup aşağıdaki gibi güncelleyin:
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Burada uygulamanızın web rotalarını tanımlayabilirsiniz. Bu rotalar RouteServiceProvider ile yüklenir ve ‘web’ middleware grubunda bulunur. Haydi harika bir şeyler oluşturalım!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Burayı ekleyin veya değiştirin
});
// ... diğer rotalar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Dosyayı kaydettikten sonra https://servbay-laravel-test.local
adresini tekrar ziyaret edin. Şimdi ekranda Hello ServBay!
mesajını görmelisiniz.
Veritabanı Entegrasyon Örneği
Laravel, güçlü ORM sistemi Eloquent sayesinde çeşitli veritabanlarıyla kolayca çalışabilir. ServBay, MySQL, PostgreSQL, MongoDB, Redis ve Memcached gibi servisleri hazır olarak sunar; böylece yerel geliştirme ve testler zahmetsizce yapılabilir.
NoSQL Veritabanı Örnekleri
ServBay’de Redis ve Memcached önceden entegre edilmiştir ve PHP uzantıları kurulu olarak gelir.
Memcached Örneği
.env
Dosyasını YapılandırınMemcached bağlantı bilgilerini
.env
dosyasına ekleyin:dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # ServBay’in varsayılan Memcached portu
1
2
3Memcached Kullanımı
Laravel’in önbellek arayüzü ile Memcached’i kullanabilirsiniz; aşağıdaki örnek rotayı
routes/web.php
dosyasına ekleyin:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // 10 dakika boyunca önbelleğe veri yaz Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Ön bellekteki veriyi al $value = Cache::get('servbay_memcached_key'); if ($value) { return "Memcached verisi: " . $value; } else { return "Memcached verisi yok veya süresi dolmuş."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15https://servbay-laravel-test.local/memcached-test
adresinde test edin.
Redis Örneği
.env
Dosyasını YapılandırınRedis bağlantı bilgilerini ekleyin:
dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # ServBay’de Redis varsayılan olarak şifresizdir REDIS_PORT=6379 # ServBay’in varsayılan Redis portu
1
2
3
4Not: Memcached ve Redis’i aynı anda test etmek isterseniz,
.env
dosyasında sadece birini aktif hale getirip diğerini yorum satırı (başına # ekleyin) yapmanız gerekir.Redis Kullanımı
Laravel’in Redis veya Cache arayüzünü kullanabilirsiniz. Örnek rota:
phpuse Illuminate\Support\Facades\Redis; // Ya da Cache arayüzünü kullanmak için (CACHE_STORE=redis olmalı) // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Redis arayüzünü kullan Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Veya Cache arayüzü ile (CACHE_STORE=redis olduğunda) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Redis verisi: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15https://servbay-laravel-test.local/redis-test
adresinde sonuçları görebilirsiniz.
İlişkisel Veritabanı Örneği (MySQL & PostgreSQL)
ServBay ile MySQL ve PostgreSQL kurulu gelir. Laravel Eloquent, bu veritabanlarına kolayca bağlanır.
Öncelikle, projeniz için bir veritabanı oluşturmanız gerekir. ServBay’in sunduğu veritabanı yönetim araçlarıyla (örneğin phpMyAdmin, Adminer, pgAdmin; kontrol panelinden erişebilirsiniz) veya terminalden bir veritabanı oluşturun: servbay_laravel_app
.
Sonra migration komutları ile tablonun yapısını oluşturun.
Migration Dosyası Oluşturun
Yeni migration dosyasını oluşturmak için temelde şu komutu çalıştırın:
bashphp artisan make:migration create_accounts_table --create=accounts
1Bu komut,
database/migrations
klasörüne bir migration dosyası ekler.Migration Dosyasını Düzenleyin
Kayıt ekleyecek migration dosyasını açıp aşağıdaki gibi düzenleyin:
php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Migrationları çalıştır. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // created_at ve updated_at sütunları ekler }); } /** * Migrationları geri al. */ public function down(): void { Schema::dropIfExists('accounts'); } };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29Dosyayı kaydedin.
Migration’u Çalıştırın
Gerekli veritabanı ayarlarını yaptıktan sonra tablonun oluşması için şu komutu çalıştırın:
bashphp artisan migrate
1Eğer veritabanı doğru ayarlanmışsa ve
servbay_laravel_app
mevcutsa, bu komutaccounts
ve Laravel’in varsayılan tablolarını (users, password_reset_tokens, failed_jobs, cache, cache_locks, jobs, job_batches) oluşturur.
MySQL Örneği
MySQL için
.env
Ayarı.env
dosyanızda veritabanı ayarlarının MySQL’i gösterdiğinden emin olun:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # ServBay’in varsayılan MySQL portu DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # ServBay’in varsayılan MySQL şifresi
1
2
3
4
5
6Örnek Veri Ekleme
routes/web.php
dosyasına aşağıdaki örnek rotayı ekleyerekaccounts
tablosuna veri yazabilirsiniz:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => 'demo-user@servbay.test', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account MySQL’e eklendi!'; });
1
2
3
4
5
6
7
8
9
10
11https://servbay-laravel-test.local/mysql-add-account
adresinde veri ekleyebilirsiniz.Veri Okuma
routes/web.php
dosyasına şu örnek rotayı ekleyerek tabloyu okuyabilirsiniz:phpuse App\Models\Account; // Eğer Account modeli oluşturduysanız // Ya da DB arayüzüyle doğrudan sorgu Route::get('/mysql-accounts', function () { // DB arayüzüyle tüm hesapları getir $accounts = DB::table('accounts')->get(); // veya Eloquent ile (Account modeli varsa) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12https://servbay-laravel-test.local/mysql-accounts
adresinde tablo içeriğini görebilirsiniz.
PostgreSQL Örneği
PostgreSQL için
.env
AyarıPostgreSQL kullanacaksanız,
.env
içeriğini şöyle düzenleyin:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # ServBay’in varsayılan PostgreSQL portu DB_DATABASE=servbay_laravel_app DB_USERNAME=root # ServBay’in varsayılan PostgreSQL kullanıcısı DB_PASSWORD=password # ServBay’in varsayılan PostgreSQL şifresi
1
2
3
4
5
6Not: Veritabanı bağlantısını değiştirdiğinizde
php artisan migrate:refresh
veyaphp artisan migrate
kullanarak tablo yapısını PostgreSQL’de oluşturmanız gerekebilir.PostgreSQL Veri Ekleme
Örnek veri eklemek için şu rotayı kullanın:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay PG Demo User', 'email' => 'pg-demo-user@servbay.test', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account PostgreSQL’e eklendi!'; });
1
2
3
4
5
6
7
8
9
10
11https://servbay-laravel-test.local/pgsql-add-account
adresine giderek veri ekleyebilirsiniz.PostgreSQL Veri Okuma
Veri okumak için örnek rota:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6https://servbay-laravel-test.local/pgsql-accounts
adresinde tabloyu görebilirsiniz.
Özet
ServBay ile Laravel projeleri için yerel geliştirme ortamını zahmetsizce kurabilir ve çalıştırabilirsiniz. ServBay’in gömülü PHP, Composer, Caddy web sunucusu ve çeşitli veritabanı/önbellek servisleriyle ortam yapılandırması son derece kolaylaşır. Sadece birkaç adımda yeni bir Laravel projesi oluşturabilir, web sunucusunu ayarlayabilir ve geliştirmeye başlayabilir, ayrıca veritabanı ve önbellek testlerini kolayca yapabilirsiniz. ServBay, geliştiricilere hızlı ve pratik bir yerel geliştirme deneyimi sunmayı amaçlar.
Herhangi bir sorun yaşarsanız, ServBay’in resmi dokümantasyonunu inceleyebilir veya topluluk desteğine başvurabilirsiniz.