ServBay Üzerinde Laravel Projesi Oluşturma ve Çalıştırma
Genel Bakış
ServBay, macOS için özel olarak tasarlanmış, güçlü bir yerel web geliştirme ortamıdır. İçerisinde PHP, Node.js, Python, Go, Java, çeşitli veritabanları (MySQL, PostgreSQL, MongoDB), önbellek servisleri (Redis, Memcached) ve web sunucuları (Caddy, Nginx, Apache) dâhil olmak üzere çok sayıda popüler yazılım önceden entegre edilmiştir.
Bu dokümanda, ServBay ortamında hızlıca bir Laravel projesi oluşturmak, yapılandırmak ve çalıştırmak için adım adım yol gösterilecektir. ServBay'in dahili PHP ortamı, Composer paket yöneticisi ve gelişmiş “Site” (eski adıyla “Ana Bilgisayar”) yönetim özelliklerinin kullanımıyla, tüm süreç kolaylaştırılmıştır.
Laravel Nedir?
Laravel, Taylor Otwell tarafından geliştirilen, yaygın olarak kullanılan açık kaynaklı bir PHP web uygulama framework'üdür. MVC (Model-View-Controller) mimari kalıbını takip eder ve kullanıcı doğrulama, yönlendirme, oturum yönetimi, önbellekleme ve veritabanı işlemleri gibi web geliştiricilerin sıkça ihtiyaç duyduğu görevleri büyük ölçüde kolaylaştırır. Laravel, zarif sözdizimi, kapsamlı yetenekleri ve güçlü topluluk desteğiyle modern ve bakımı kolay uygulamalar geliştirmek için ideal bir tercihtir.
Laravel’in Temel Özellikleri ve Avantajları
- Zarif Sözdizimi: Temiz ve ifade gücü yüksek kod, hem geliştirme hızını hem de okunabilirliği artırır.
- Eloquent ORM: Güçlü bir ActiveRecord uygulamasıyla kolay ve sezgisel veritabanı etkileşimi sağlar.
- Artisan Komut Satırı Aracı: Veritabanı migrasyonları, kod üretimi, test çalıştırma gibi pek çok görevi otomatikleştiren CLI araçları içerir.
- Blade Şablon Motoru: Temiz şablon sözdizimiyle dinamik görünümler oluşturmayı kolaylaştırır.
- Geniş Ekosistem: Resmî ve üçüncü parti birçok paketi Composer üzerinden kolayca entegre edebilirsiniz.
- Güçlü Topluluk Desteği: Aktif topluluğu, bol miktarda kaynak, eğitim ve çözüm sunar.
ServBay ile Laravel Geliştirmenin Avantajları
ServBay, Laravel geliştiricilerine önemli kolaylıklar sunar:
- Entegre Ortam: Birden fazla PHP sürümü, Composer ve yaygın veritabanı ile önbellek hizmetleri önceden kurulu gelir; ayrıca ek kurulum gerektirmez.
- Kolay Yönetim: Grafik arayüz sayesinde PHP sürümünü değiştirmek, site ayarlarını yönetmek ve servisleri başlatıp durdurmak oldukça basittir.
- Önceden Yapılandırılmış Web Sunucusu: Varsayılan olarak Caddy sunucusunu kullanır ve popüler PHP framework’leri (Laravel dâhil) için en uygun biçimde yapılandırılmıştır.
- HTTPS Desteği:
.local
uzantılı alan adları için otomatik SSL sertifikası atanır ve HTTPS varsayılan olarak aktiftir; bu da yerel ortamda üretime yakın ve güvenli bir geliştirme deneyimi sunar.
Laravel Projesi Oluşturma
Projelerinizi /Applications/ServBay/www
klasöründe toplu biçimde saklamanız önerilir. Bu, dosya yapısını düzenli ve yönetimi kolay tutar.
Composer Kurulumu Kontrolü
ServBay kurulumu ile Composer zaten yüklüdür; ayrıca bir yükleme işlemi gerekmez. Composer’ı terminalde kontrol edin:
bashcomposer --version
1Eğer komut düzgün çalışıyor ve bir sürüm numarası gösteriyorsa, Composer kullanıma hazırdır.
Yeni Laravel Projesi Oluşturma
Terminali açın ve ServBay’in önerdiği site dizinine gidip yeni bir Laravel projesi oluşturun. Proje klasörünü
servbay-laravel-app
olarak adlandıralım:bashcd /Applications/ServBay/www # Proje klasörü oluştur mkdir servbay-laravel-app # Klasöre gir cd servbay-laravel-app # Composer ile mevcut klasöre Laravel projesini 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 Geçiş
Terminalinizin, yaratılan Laravel projesinin kök dizininde olduğundan emin olun:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
İlk Yapılandırma
Uygulama Anahtarı Oluşturma
Laravel, kullanıcı oturumları ve şifreli veriler için bir uygulama anahtarı kullanır. Proje kök dizininde aşağıdaki Artisan komutunu çalıştırarak anahtar oluşturun:
bashphp artisan key:generate
1Bu işlem
.env
dosyasına özgün birAPP_KEY
değeri ekleyecektir.Ortam Değişkenlerini Ayarlama (
.env
)Laravel, proje ortam değişkenlerini yönetmek için
.env
dosyasını kullanır (ör: veritabanı bağlantısı, uygulama adresi vb.). Kök dizindeki.env
dosyasını açıp ihtiyaçlarınıza göre düzenleyin. Aşağıdaki temel ayarların doğru olduğundan emin olun:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Bu değer php artisan key:generate ile oluştu APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Veritabanı ayar ö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 varsayılan kullanıcı DB_PASSWORD=password # ServBay varsayılan şifresi # Önbellek/Kuyruk ayar örneği (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Varsayılan olarak Redis şifresiz gelir REDIS_PORT=6379 # Önbellek/Kuyruk ayar ö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: Kullandığınız veritabanı veya hizmete göre
DB_*
,REDIS_*
ya daMEMCACHED_*
değerlerini düzenlemeniz gerekebilir. Varsayılan ServBay veritabanı kullanıcı adı ve parolasını ServBay kontrol panelinden öğrenebilirsiniz.
Web Sunucu Yapılandırması (ServBay'de Site Ekleme)
ServBay’in site yönetimi ile web sunucunuzu kolayca yapılandırabilir, alan adınızı Laravel projesinin public
klasörüne yönlendirebilirsiniz.
ServBay Kontrol Panelini Açın
ServBay uygulamasını başlatın ve kontrol panelini açın.
Yeni Bir Site Ekleyin
Kontrol panelinde ‘Siteler’ bölümüne gidin. Artı (+) veya benzeri bir ikon ile yeni bir site ekleyin.
Site Bilgilerini Girin
Site ayarlarını aşağıdaki örneğe göre doldurun:
- İsim (Name):
My First Laravel Dev Site
(ayrım yapabileceğiniz bir isim) - Alan adı (Domain):
servbay-laravel-test.local
(tarayıcıdan ulaşmak istediğiniz domain) - Site Türü (Site Type):
PHP
- PHP Sürümü (PHP Version): Laravel sürümünüzle uyumlu bir PHP sürümü seçin, örn:
8.3
. - Site Kök Dizini (Site Root):
/Applications/ServBay/www/servbay-laravel-app/public
(Önemli: Mutlaka projedekipublic
klasörünü gösterin)
Daha detaylı adımlar ve seçenekler için ServBay dokümantasyonundaki İlk Siteyi Ekleme rehberine bakın (İngilizce bağlantı mevcuttur).
- İsim (Name):
Kaydet ve Değişiklikleri Uygula
Site ayarlarını kaydedin. ServBay, web sunucusu yapılandırmasını (varsayılan olarak Caddy) otomatik olarak güncelleyecektir. Gerekirse, sunucuyu yeniden başlatmanız istenebilir.
Temel Erişim Doğrulama
Artık Laravel projenize, belirlediğiniz alan adı ile erişebilirsiniz.
Tarayıcıyı Açın
Tarayıcıda oluşturduğunuz alan adını (örn:
https://servbay-laravel-test.local
) girin.Sonucu Kontrol Edin
Tüm yapılandırma doğruysa sizi Laravel’in hoş geldiniz sayfası karşılayacaktır.
Basit Örnek Kod Ekleme
Doğrudan test için, routes/web.php
dosyasına “Hello ServBay!” döndüren basit bir rota ekleyebiliriz.
Proje klasöründeki routes/web.php
dosyasını açıp aşağıdaki gibi düzenleyin:
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Burada uygulamanız için web rotalarını kaydedebilirsiniz.
| Bu rotalar, "web" middleware grubu dahilinde RouteServiceProvider ile yüklenir.
| Şimdi harika bir şeyler oluşturun!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Bu satırı ekleyin veya değiştirin
});
// ... diğer rotalar
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dosyayı kaydettikten sonra, tekrar https://servbay-laravel-test.local
adresini ziyaret edin. Artık tarayıcıda Hello ServBay!
çıktısını görmelisiniz.
Veritabanı Entegrasyon Örneği
Laravel, güçlü bir veritabanı soyutlama katmanı ve ORM (Eloquent) ile birçok veritabanı türüyle kolayca çalışmanıza olanak tanır. ServBay ile MySQL, PostgreSQL, MongoDB, Redis ve Memcached gibi sistemler önceden kurulu gelir; yerel testler için idealdir.
NoSQL Veritabanı Örnekleri
ServBay’de Redis ve Memcached varsayılan olarak kurulu gelir. Gerekli PHP eklentileri de hazırdır.
Memcached Örneği
.env
Dosyasını YapılandırınBağlantı bilgilerini
.env
dosyasına ekleyin (henüz eklemediyseniz):dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # ServBay’de varsayılan port
1
2
3Memcached Kullanımı
Laravel’in cache facade’ı ile Memcached’e erişmeniz mümkündür:
routes/web.php
dosyasına aşağıdaki örnek rotayı ekleyin:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Veriyi cache'e 10 dakika (600 saniye) süreyle kaydet Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Cache'den veri çek $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
15Test için
https://servbay-laravel-test.local/memcached-test
adresini ziyaret edin.
Redis Örneği
.env
Dosyasını YapılandırınRedis bağlantı bilgilerini girin:
dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Varsayılan olarak Redis şifresiz gelir REDIS_PORT=6379 # Varsayılan Redis portu
1
2
3
4Not: Eğer hem Memcached hem Redis konfigüre ettiyseniz,
.env
dosyasındaCACHE_STORE
satırlarından sadece birini aktif bırakın (diğerini yoruma alın).Redis Kullanımı
Laravel’in Redis veya Cache facade’ı ile kullanabilirsiniz:
routes/web.php
dosyasına aşağıdaki örnek rotayı ekleyin:phpuse Illuminate\Support\Facades\Redis; // Ya da Cache facade kullanabilirsiniz, eğer CACHE_STORE=redis ise // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Redis facade ile Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Alternatif: (eğer Cache kullanıyorsanız) // 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
15Test için
https://servbay-laravel-test.local/redis-test
adresini ziyaret edin.
İlişkisel Veritabanı Örnekleri (MySQL & PostgreSQL)
ServBay, MySQL ve PostgreSQL sunucularını hazır getirir. Laravel Eloquent ORM ile kolayca bağlantı sağlanır.
Öncelikle bir veritabanı oluşturmalısınız. ServBay’in panelinden phpMyAdmin, Adminer veya pgAdmin gibi araçlara ulaşabilir ya da terminalden komut ile servbay_laravel_app
veritabanını oluşturabilirsiniz.
Daha sonra Laravel ile migration işlemiyle tabloyu kurmamız gerekiyor.
Migration Dosyası Oluşturun
Terminalde kök dizinde aşağıdaki Artisan komutunu çalıştırın:
bashphp artisan make:migration create_accounts_table --create=accounts
1Bu işlem,
database/migrations
klasöründe yeni bir migration dosyası oluşturur.Migration Dosyasını Düzenleyin
Oluşan migration dosyasını açın (isim genelde
YYYY_MM_DD_HHMMSS_create_accounts_table.php
formatında olur),up
metodunu düzenleyin:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Migrasyonları ç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 }); } /** * Migrasyonları 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’ı Çalıştırın
Kök dizinde aşağıdaki Artisan komutunu çalıştırın:
bashphp artisan migrate
1Veritabanı ayarlarınız doğruysa ve
servbay_laravel_app
veritabanı mevcutsa bu komut,accounts
tablosunu ve Laravel’in varsayılan olarak kurduğu diğer tabloları oluşturacaktır.
MySQL Örneği
MySQL için
.env
Yapılandırması.env
dosyanızın aşağıdaki gibi ayarlanmış olduğundan 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 rotayı ekleyin:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'MySQL’e hesap eklendi!'; });
1
2
3
4
5
6
7
8
9
10
11Test için
https://servbay-laravel-test.local/mysql-add-account
adresini ziyaret edin.Veri Okuma Örneği
Yine
routes/web.php
dosyasına aşağıdakini ekleyin:phpuse App\Models\Account; // Eğer Account modeli oluşturduysanız // Ya da direkt olarak DB facade kullanılabilir Route::get('/mysql-accounts', function () { // DB facade ile tüm account kayıtlarını çek $accounts = DB::table('accounts')->get(); // Alternatif: Eğer 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
adresinden verileri görebilirsiniz.
PostgreSQL Örneği
PostgreSQL için
.env
YapılandırmasıPostgreSQL kullanmak istiyorsanız
.env
dosyanızda aşağıdaki ayarları yapın:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # ServBay varsayılan PostgreSQL portu DB_DATABASE=servbay_laravel_app DB_USERNAME=root # Varsayılan kullanıcı DB_PASSWORD=password # Varsayılan şifre
1
2
3
4
5
6Not: Bağlantı değişikliği yaptıysanız, tabloları ilgili veritabanında oluşturmak için tekrar
php artisan migrate:refresh
ya daphp artisan migrate
çalıştırmalısınız.PostgreSQL için Veri Yazma
routes/web.php
dosyasına aşağıdaki rotayı ekleyin:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay PG Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'PostgreSQL’e hesap eklendi!'; });
1
2
3
4
5
6
7
8
9
10
11Test için
https://servbay-laravel-test.local/pgsql-add-account
adresini ziyaret edin.PostgreSQL için Veri Okuma
Yine
routes/web.php
dosyasına aşağıdaki rotayı ekleyin: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
adresinden kayıtları görebilirsiniz.
Sonuç
ServBay sayesinde, macOS üzerinde Laravel projelerini oluşturmak ve çalıştırmak için tüm yerel ortamı kolayca kurabilirsiniz. PHP, Composer, Caddy web sunucusu ve çok çeşitli veri tabanı ile önbellek servislerinin entegre olarak gelmesi sayesinde, ortam kurulumu çok basit ve hızlıdır. Sadece birkaç adımda, yeni bir Laravel projesini oluşturabilir, web sunucunuzu ayarlayabilir, geliştirmeye başlayabilir ve veritabanı/önbellek entegrasyonlarını hızlıca deneyebilirsiniz. ServBay, geliştiricilere verimli, pratik ve güçlü bir yerel geliştirme deneyimi sunmayı amaçlar.
Kullanım sırasında sorun yaşarsanız, resmi ServBay belgelerine göz atabilir ya da topluluk desteğinden faydalanabilirsiniz.