ServBay ile CakePHP Projesi Oluşturma ve Çalıştırma
ServBay, macOS için özel olarak tasarlanmış bir yerel web geliştirme ortamıdır. PHP, Node.js, Python, Go, Java gibi çeşitli dil altyapılarını ve MySQL, PostgreSQL, MongoDB, Redis gibi veritabanı hizmetlerini Caddy veya Nginx web sunucusuyla entegre şekilde sunar. Geliştiricilerin yerel projelerini kolayca kurup yönetebilecekleri, pratik ve güçlü bir geliştirme platformu sağlar.
Bu makalede, ServBay ortamında bir CakePHP projesinin nasıl oluşturulacağını, yapılandırılacağını ve çalıştırılacağını adım adım anlatıyoruz. CakePHP, MVC (Model-View-Controller) mimarisini izleyen, hızlı geliştirme yetenekleri, güçlü ORM altyapısı ve dahili güvenlik özellikleriyle öne çıkan popüler bir PHP web geliştirme framework'üdür. ServBay’in sağladığı kolaylık ile, CakePHP projelerinizi hızlıca başlatabilirsiniz.
CakePHP Nedir?
CakePHP, açık kaynak kodlu bir PHP web uygulama geliştirme framework'üdür. Web uygulamalarını hızlı ve yapılandırılmış bir şekilde geliştirmenize imkan sunar, esneklikten ödün vermeden kullanılabilir. "Yapılandırmadan ziyade varsayılanlarla çalış" prensibini benimser ve sık karşılaşılan geliştirme işlemlerini oldukça kolaylaştırır.
CakePHP'nin Başlıca Özellikleri ve Avantajları
- MVC Tabanlı Mimari: Kodun anlaşılır, bakımı ve genişletilmesi kolay bir biçimde organize edilmesini sağlar.
- Hızlı Geliştirme: Komut satırı aracı (Bake) ile kod üretip süreci hızlandırır.
- Güçlü ORM (Nesne-İlişkisel Eşleme): Veritabanı işlemlerini kolaylaştırır, birden çok veritabanını destekler.
- Dahili Güvenlik: CSRF koruması, SQL enjeksiyonu önlemleri, giriş doğrulama gibi güvenlik özellikleri sunar.
- Esnek Şablon Motoru: Pek çok görünüm teknolojisini destekler.
- Aktif Topluluk ve Eklenti Zenginliği: Her türlü sorunda destek bulmak kolaydır; işlevsellik eklentiler ile genişletilebilir.
- Kapsamlı Dökümantasyon: Detaylı kılavuzlar ve API başvurusu içerir.
CakePHP, basit API’lerden kurumsal düzeyde karmaşık sistemlere kadar çeşitli büyüklükte web uygulamaları geliştirmek için uygundur.
ServBay ile CakePHP Geliştirme Ortamı Kurulumu
ServBay, CakePHP geliştirme çalışmaları için aşağıdaki entegre kolaylıkları sunar:
- Önceden yüklü PHP yorumlayıcısı ve yaygın eklentiler.
- Kurulu Composer paket yöneticisi.
- Kolayca yapılandırılan web sunucuları (Caddy veya Nginx).
- Tümleşik veritabanı servisleri (MySQL, PostgreSQL, Redis vb.)
ServBay sayesinde bu bileşenlerin manuel kurulum ve yapılandırma zorlukları ortadan kalkar.
Gereksinimler
Başlamadan önce, aşağıdaki hazırlıkları tamamladığınızdan emin olun:
- ServBay’i Kurun: macOS’ta ServBay’i indirip başarıyla yükleyin.
- ServBay Servislerini Başlatın: ServBay uygulamasını açın ve kullanmanız gereken paketleri (örneğin PHP, kullanacağınız veritabanı MySQL veya PostgreSQL ve Redis ya da Memcached gibi önbellek servisleri) başlatın. Paketleri ServBay kontrol panelindeki “Paketler” sekmesinden yönetebilirsiniz.
- ServBay Temel İşlemlerine Hakim Olun: ServBay ile nasıl site ekleyip yapılandıracağınızı bilin. Eğer yeniyseniz, ServBay Temel Kullanım Kılavuzu dokümanını gözden geçirin.
CakePHP Projesi Oluşturma
ServBay, tüm web proje dosyalarınızı /Applications/ServBay/www
dizininde tutmanızı önerir; böylece projeleriniz otomatik olarak tanınır ve yönetilir.
Terminali Açın
macOS Terminal uygulamasını başlatın.
ServBay Ana Web Dizinine Gidin
ServBay’in önerdiği web sitesi dizinine geçin:
bashcd /Applications/ServBay/www
1Proje Dizinini Oluşturun
CakePHP projeniz için yeni bir alt klasör oluşturun. Örneğin proje adı olarak
servbay-cakephp-app
kullanalım:bashmkdir servbay-cakephp-app cd servbay-cakephp-app
1
2Composer ile CakePHP Proje İskeleti Oluşturun
ServBay’de Composer yüklüdür. Proje klasörünüzde şu komutu çalıştırarak CakePHP’nin iskeletini oluşturun:
bashcomposer create-project --prefer-dist cakephp/app .
1Bu komut, CakePHP’nin güncel kararlı sürümünü ve bağımlılıklarını mevcut dizine (
.
) yükler.ORM Sürücüsünü Kurun (PostgreSQL Kullanıyorsanız)
PostgreSQL veritabanı kullanacaksanız ek olarak PostgreSQL ORM sürücüsünü kurmanız gerekir:
bashcomposer require cakephp/orm-pgsql
1MySQL için genellikle ekstra sürücü gerekmez; temel paketlerle birlikte gelir.
Başlangıç Yapılandırması
Proje oluşturulduktan sonra özellikle veritabanı bağlantısı gibi temel ayarları yapmalısınız.
Ortam Değişkenleri ve Veritabanı Bağlantısını Yapılandırın
CakePHP’de yerel ortam ayarları genellikle
config/app_local.php
dosyasında düzenlenir. DosyanınDatasources
bölümünü bularak veritabanı bağlantınızı buradan tanımlayın. ServBay’in varsayılan veritabanı kullanıcı adı çoğunluklaroot
, şifresi isepassword
’dür.Örneğin, MySQL bağlantı ayarı:
php// config/app_local.php 'Datasources' => [ 'default' => [ 'className' => \Cake\Database\Connection::class, 'driver' => \Cake\Database\Driver\Mysql::class, // veya \Cake\Database\Driver\Postgres::class (PostgreSQL için) 'persistent' => false, 'host' => '127.0.0.1', // Veritabanı sunucu adresi; ServBay’de genelde lokaldir //'port' => '3306', // MySQL varsayılan portu 3306, PostgreSQL için 5432 'username' => 'root', // ServBay’in varsayılan kullanıcı adı 'password' => 'password', // Varsayılan şifre 'database' => 'servbay_cakephp_app', // Oluşturacağınız veritabanı adı 'encoding' => 'utf8mb4', 'timezone' => 'UTC', 'flags' => [], 'cacheMetadata' => true, 'log' => false, /** * Eğer tablo adınız "user" gibi anahtar kelimeler içeriyorsa, bu ayarı true yapın. * Diğer durumlarda (ör. "cake") false kalabilir. Emin değilseniz true ayarlayın. */ 'quoteIdentifiers' => false, /** * Güncel kısıtlamalar: * - Çoğu sürücü, PDO opsiyonlarıyla izolasyon seviyesi belirlemeyi desteklemez (hata alırsınız). * - Tüm sürücüler PDO ile charset ayarlamayı desteklemez (hata alırsınız). * - CakePHP'nin paketlenmiş sürücüleri için (Postgres gibi) PDO opsiyonları desteklenmez. * - Postgres için yalnızca encoding ayarı yeterlidir. */ 'options' => [], //'url' => env('DATABASE_URL', null), // DATABASE_URL ortam değişkeni kullanıyorsanız bu satırı etkinleştirin ], ],
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
29
30
31
32
33
34
35Kullandığınız veritabanına (MySQL/PostgreSQL) göre
driver
ve varsaport
ayarını düzenleyin.database
alanının, açmak istediğiniz veritabanının adı ile eşleştiğine emin olun.
Web Sunucusu Yapılandırması (ServBay’de Site Oluşturma)
CakePHP projesinizi tarayıcıda görebilmek için, ServBay’de bir web sitesi oluşturup, proje klasörünüzü işaret etmelisiniz.
ServBay Kontrol Panelini Açın
ServBay simgesine tıklayın, kontrol panelini açın.
“Siteler” Sekmesine Geçin
Kontrol panelinden soldaki menüden "Siteler" (eski adıyla "Hostlar") bölümüne girin.
Yeni Site Ekleyin
Alttaki
+
butonuna tıklayarak yeni bir site ekleyin. Bilgileri aşağıdaki şekilde doldurun:- Ad (Name): Örneğin
My CakePHP Dev Site
gibi, hatırlanabilir bir isim verin. - Alan Adı (Domain): Mesela
servbay-cakephp-test.local
gibi bir lokal geliştirme alan adı seçin. ServBay bunu otomatik olarak loka yönlendirir. - Site Tipi (Site Type):
PHP
seçin. - PHP Sürümü (PHP Version): CakePHP sürümünüze uygun bir PHP versiyonu seçin (ör. CakePHP 4+ için genellikle PHP 7.4+, CakePHP 5+ için PHP 8.1+ tavsiye edilir), örneğin
8.3
. - Kök Dizin (Document Root): Dikkat! CakePHP projelerinin web sunucu kök dizini, ana proje dizini değil,
webroot
klasörüdür. Buraya/Applications/ServBay/www/servbay-cakephp-app/webroot
yazın (proje dizin ismini kendi projenize göre değiştirin).
- Ad (Name): Örneğin
Kaydet ve Değişiklikleri Uygula
Gerekli tüm alanları doldurduktan sonra sağ alttaki "Kaydet" tuşuna tıklayın. ServBay değişiklikleri uygulamak için onay ister; onayladığınızda web sunucusu (Caddy veya Nginx) otomatik yapılandırılır ve site adı
servbay-cakephp-test.local
adresine yönlendirilir, kök dizin olarak projewebroot
u kullanılır.
Detaylı site ekleme işlemleri için, ServBay dökümantasyonundaki İlk Sitenizi Ekleme bölümüne bakabilirsiniz.
Temel Kurulumu Doğrulama
Artık projenizi web tarayıcınızdan ziyaret edebilirsiniz.
Bir tarayıcı açın ve ServBay’de belirlediğiniz alan adını (ör. https://servbay-cakephp-test.local
) ziyaret edin.
Tüm ayarlar düzgünse, CakePHP’nin varsayılan karşılama sayfasını görmelisiniz. Bu, PHP, web sunucunuz ve ServBay’deki site konfigürasyonunun sorunsuz çalıştığı anlamına gelir.
Veritabanı ve Önbellek Servisleri Entegrasyonu
CakePHP’nin güçlü ORM ve önbellek altyapısı sayesinde, ServBay’in sunduğu veritabanı ve önbellek hizmetlerini kolayca entegre edebilirsiniz.
İlişkisel Veritabanı Örneği (MySQL / PostgreSQL)
Bu örnekte, CakePHP'nin ORM altyapısı ile ServBay'deki MySQL veya PostgreSQL veritabanını kullanarak basit bir users
tablosu oluşturup temel CRUD işlemleri yapılacaktır.
ServBay’de Veritabanı Oluşturun
Migration işlemlerinden önce, ServBay’in veritabanı sunucusunda yeni bir veritabanı açmalısınız. ServBay ile gelen phpMyAdmin (MySQL/MariaDB için), pgAdmin (PostgreSQL için) ya da Navicat/DBeaver gibi üçüncü parti araçlarla veritabanınıza bağlanın (sunucu adresi çoğunlukla
127.0.0.1
, kullanıcıroot
, şifrepassword
), veservbay_cakephp_app
adında bir veritabanı oluşturun.ORM Model Dosyasını Oluşturun
CakePHP'nin ORM altyapısı için, tabloyu temsil eden bir Model dosyasına ihtiyacınız vardır.
users
tablosunu temsil edecekUsersTable.php
dosyasını oluşturun.Aşağıdaki kodu
src/Model/Table/UsersTable.php
dosyasına kaydedin:php<?php namespace App\Model\Table; use Cake\ORM\Table; use Cake\Validation\Validator; // Doğrulama kuralları için class UsersTable extends Table { /** * Initialize method * * @param array $config The configuration for the Table. * @return void */ public function initialize(array $config): void { parent::initialize($config); $this->setTable('users'); // Tablo adını açıkça belirtin $this->setDisplayField('name'); // Varsayılan görüntülenecek alan $this->setPrimaryKey('id'); // Birincil anahtar // Eğer timestamp davranışı gerekirse // $this->addBehavior('Timestamp'); } /** * Varsayılan doğrulama kuralları. * * @param \Cake\Validation\Validator $validator Validator instance. * @return \Cake\Validation\Validator */ public function validationDefault(Validator $validator): Validator { $validator ->scalar('name') ->maxLength('name', 255) ->requirePresence('name', 'create') ->notEmptyString('name'); $validator ->email('email') ->requirePresence('email', 'create') ->notEmptyString('email') ->add('email', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']); // email alanı benzersiz olmalı return $validator; } }
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49Bake Aracıyla Migration Dosyası Oluşturun
CakePHP, veritabanı yapısının yönetiminde migration kullanımını önerir. Proje ana dizininde (
/Applications/ServBay/www/servbay-cakephp-app
), aşağıdaki komutlausers
tablosunu oluşturacak bir migration dosyası oluşturun:bashbin/cake bake migration CreateUsers name:string email:string:unique
1Bu,
name
(string) veemail
(string ve benzersiz) alanlarını içerenusers
tablosunu yaratacak migration dosyasını oluşturur.Migration’ı Uygulayın
Migration komutunu çalıştırarak, verdiğiniz ayarlarla veritabanında gerçek tabloyu oluşturun:
bashbin/cake migrations migrate
1İşlem başarılı olursa veritabanınızda yeni bir
users
tablosu göreceksiniz.Veritabanı Bağlantısını Yapılandırın (Eğer Daha Önce Yapmadıysanız)
config/app_local.php
dosyasındaDatasources.default
ayarlarının kullandığınız veritabanı türü ve bilgileriyle uyumlu olduğundan emin olun.MySQL Örneği:
php'Datasources' => [ 'default' => [ 'className' => \Cake\Database\Connection::class, 'driver' => \Cake\Database\Driver\Mysql::class, 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_cakephp_app', // ... diğer ayarlar ], ],
1
2
3
4
5
6
7
8
9
10
11PostgreSQL Örneği:
php'Datasources' => [ 'default' => [ 'className' => \Cake\Database\Connection::class, 'driver' => \Cake\Database\Driver\Postgres::class, 'host' => '127.0.0.1', // 'port' => '5432', // Varsayılan port 'username' => 'root', // ServBay’in varsayılan kullanıcısı 'password' => 'password', // Varsayılan şifre 'database' => 'servbay_cakephp_app', // ... diğer ayarlar ], ],
1
2
3
4
5
6
7
8
9
10
11
12
Örnek Rota ve Controller Metotları Ekleyin
config/routes.php
dosyasına, kullanıcı ekleme ve listeleme işlemleri için rota tanımlayın:php// config/routes.php use Cake\Routing\RouteBuilder; use Cake\Routing\Router; use Cake\Routing\Route\DashedRoute; Router::defaultRouteClass(DashedRoute::class); Router::scope('/', function (RouteBuilder $routes) { // ... diğer rotalar $routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']); // Veritabanı örneği rotaları $routes->connect('/db-add-user', ['controller' => 'Pages', 'action' => 'dbAddUser']); $routes->connect('/db-list-users', ['controller' => 'Pages', 'action' => 'dbListUsers']); // ... diğer rotalar $routes->fallbacks(DashedRoute::class); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18src/Controller/PagesController.php
dosyasına veritabanı işlemleri için methodlar ekleyin:php<?php namespace App\Controller; use Cake\Http\Response; use Cake\ORM\TableRegistry; use Cake\Datasource\Exception\RecordNotFoundException; // Kayıt bulunamadı hatası işleme için class PagesController extends AppController { /** * Görünüm gösterir * * @param array ...$path Yönlendirme segmentleri. * @return \Cake\Http\Response|null */ public function display(...$path): ?Response { // ... varsayılan display metodu return new Response(['body' => 'Hello ServBay! Bu varsayılan sayfa.']); } /** * Veritabanı örneği: Kullanıcı ekle */ public function dbAddUser(): Response { $usersTable = TableRegistry::getTableLocator()->get('Users'); // Users Table örneğini alır // Yeni bir kullanıcı kaydı oluşturur $user = $usersTable->newEntity([ 'name' => 'ServBay Demo User', 'email' => '[email protected]' // ServBay örnek e-posta ]); // Kaydı veritabanına kaydetmeyi dener if ($usersTable->save($user)) { return new Response(['body' => 'Kullanıcı başarıyla eklendi! Kullanıcı ID: ' . $user->id]); } else { // Kaydetme başarısızsa, validasyon veya başka bir hata olabilir $errors = $user->getErrors(); // Doğrulama hatalarını alır return new Response(['body' => 'Kullanıcı eklenemedi. Hatalar: ' . json_encode($errors)]); } } /** * Veritabanı örneği: Tüm kullanıcıları listele */ public function dbListUsers(): Response { $usersTable = TableRegistry::getTableLocator()->get('Users'); // Users Table örneği alır // Tüm kullanıcıları bulur $users = $usersTable->find()->all(); // Sonucu JSON olarak döner return new Response(['body' => json_encode($users->toArray())]); // Collection nesnesini diziye çevirir } }
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58Veritabanı Örneğini Test Edin
Tarayıcıda:
https://servbay-cakephp-test.local/db-add-user
adresini ziyaret ederek kullanıcı ekleyin; başarı mesajını göreceksiniz.https://servbay-cakephp-test.local/db-list-users
ile eklediğiniz kullanıcıları listeleyebilirsiniz.
Bu adımlarla, CakePHP projeniz ServBay’de ilişkisel veritabanına başarıyla bağlanacak ve temel ORM işlemlerini yapabileceksiniz.
Önbellek Servisi Örneği (Memcached / Redis)
CakePHP, farklı önbellek motorlarına (Memcached veya Redis gibi) kolayca entegre olabilen birleşik bir önbellek API’si sunar. ServBay, PHP’nin Memcached ve Redis uzantılarını kurulu olarak getirmekte ve ilgili servisleri sağlamaktadır.
İlk olarak, ServBay kontrol panelinin "Paketler" sekmesinde Memcached veya Redis servislerini başlattığınızdan emin olun.
Önbellek Bağlantısını Yapılandırın
config/app_local.php
dosyasında, önbellek yapılandırması içinCache
bölümünü ayarlayın.Memcached Konfigürasyonu:
php// config/app_local.php 'Cache' => [ 'default' => [ 'className' => \Cake\Cache\Engine\MemcachedEngine::class, 'servers' => ['127.0.0.1:11211'], // ServBay varsayılan Memcached adresi/portu 'prefix' => 'servbay_cakephp_', // Önbellek anahtarı ön-ek ], // ... diğer önbellek ayarları ],
1
2
3
4
5
6
7
8
9Redis Konfigürasyonu:
php// config/app_local.php 'Cache' => [ 'default' => [ 'className' => \Cake\Cache\Engine\RedisEngine::class, 'host' => '127.0.0.1', // ServBay’in varsayılan Redis adresi 'port' => 6379, // Varsayılan Redis portu 'password' => null, // Eğer Redis’e şifre konduysa buraya girin 'database' => 0, // Redis veritabanı indeksi 'prefix' => 'servbay_cakephp_', // Önbellek anahtarı ön-ek ], // ... diğer önbellek ayarları ],
1
2
3
4
5
6
7
8
9
10
11
12
Kullanacağınız önbellek servis sağlayıcısını seçip buna göre yapılandırma yapın.
Örnek Rota ve Controller Metotları Ekleyin
config/routes.php
dosyasına, önbellek örnekleri için rota tanımlayın:php// config/routes.php // ... diğer rotalar $routes->connect('/cache-memcached', ['controller' => 'Pages', 'action' => 'cacheMemcached']); $routes->connect('/cache-redis', ['controller' => 'Pages', 'action' => 'cacheRedis']); // ... diğer rotalar
1
2
3
4
5src/Controller/PagesController.php
dosyasına, önbellek kullanımı için aşağıdaki methodları ekleyin:php<?php namespace App\Controller; use Cake\Http\Response; use Cake\Cache\Cache; // Cache sınıfını ekleyin // ... diğer use satırları class PagesController extends AppController { // ... diğer metotlar (display, dbAddUser, dbListUsers) /** * Önbellek örneği: Memcached ile kullanım */ public function cacheMemcached(): Response { // app_local.php dosyasında 'default' cache yapılandırmasının MemcachedEngine olduğundan emin olun $cacheKey = 'servbay_memcached_test_key'; $cachedData = Cache::read($cacheKey); // Cache'den veri okumayı dener $responseBody = ''; if ($cachedData === false) { // Cache miss $responseBody = 'Cache miss! "Hello Memcached!" önbelleğe yazılıyor.'; $dataToCache = 'Hello Memcached!'; Cache::write($cacheKey, $dataToCache, 'default'); // Veriyi ilgili cache'e yaz } else { // Cache hit $responseBody = 'Cache hit! Veriler: ' . $cachedData; } return new Response(['body' => $responseBody]); } /** * Önbellek örneği: Redis ile kullanım */ public function cacheRedis(): Response { // app_local.php dosyasında 'default' cache yapılandırmasının RedisEngine olduğundan emin olun $cacheKey = 'servbay_redis_test_key'; $cachedData = Cache::read($cacheKey); // Cache'den veri okumayı dener $responseBody = ''; if ($cachedData === false) { // Cache miss $responseBody = 'Cache miss! "Hello Redis!" önbelleğe yazılıyor.'; $dataToCache = 'Hello Redis!'; Cache::write($cacheKey, $dataToCache, 'default'); // Veriyi ilgili cache'e yaz } else { // Cache hit $responseBody = 'Cache hit! Veriler: ' . $cachedData; } return new Response(['body' => $responseBody]); } }
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61Önbellek Örneğini Test Edin
Tarayıcıda:
- Memcached kullandıysanız:
https://servbay-cakephp-test.local/cache-memcached
adresini ziyaret edin. İlk seferde "Cache miss" görürsünüz, sayfayı yeniledikçe "Cache hit" mesajı görülür. - Redis kullandıysanız:
https://servbay-cakephp-test.local/cache-redis
adresini ziyaret edin. Aynı şekilde, önce "Cache miss", sonra "Cache hit" alırsınız.
- Memcached kullandıysanız:
Bu, CakePHP projenizin ServBay’in önbellek servisleriyle başarıyla çalıştığını gösterir.
Dikkat Edilecek Hususlar
- Veritabanı Bilgileri: ServBay’in varsayılan veritabanı kullanıcı adı/şifresi (
root
/password
) yalnızca yerel geliştirmede kullanılmalıdır. Canlı ortamda daha güvenli bilgiler tercih edin. - Web Kök Dizini: ServBay sitesinin “belge kök dizini” ayarı mutlaka CakePHP projenizin
webroot
klasörünü işaret etmeli, ana proje dizini olmamalı. Bu, CakePHP’de en iyi uygulamadır. - PHP Sürüm Uyumu: ServBay’de kullandığınız PHP sürümünün, CakePHP versiyonunuzla uyumlu olduğundan emin olun. Gereken sürüm bilgilerinin güncel halini CakePHP resmi dokümantasyonunda bulabilirsiniz.
- ServBay Portları: Eğer ServBay’in varsayılan portları (ör. 80 ve 443) başka programlar tarafından kullanılıyorsa, ServBay ayarlarından portları değiştirmeniz gerekebilir. hosts dosyası veya port numarası ile erişimi buna göre ayarlayın.
Sıkça Sorulan Sorular (FAQ)
- S:
servbay-cakephp-test.local
adresi açılamıyor, "sayfa bulunamadı" hatası alıyorum?- C: ServBay’deki ilgili sitenin “belge kök dizini” ayarının
/Applications/ServBay/www/servbay-cakephp-app/webroot
dizinini işaret ettiğine emin olun. - ServBay web sunucusunun (Caddy/Nginx) çalıştığından emin olun.
- Sisteminizdeki hosts dosyası,
servbay-cakephp-test.local
adresini127.0.0.1
’e yönlendiriyor mu kontrol edin (ServBay bunu genellikle otomatik yapar ama bazen kontrol etmek gerekir). - CakePHP projesinin
.htaccess
veya web sunucusu yapılandırması doğru mu bakın (genelliklewebroot/.htaccess
varsayılan olarak doğrudur).
- C: ServBay’deki ilgili sitenin “belge kök dizini” ayarının
- S: Veritabanı bağlantısı başarısız oluyor?
- C: ServBay’de ilgili veritabanı servisi (MySQL/PostgreSQL) çalışır durumda mı kontrol edin.
config/app_local.php
dosyasındaki veritabanı bağlantı bilgileri (host, port, kullanıcı adı, şifre, veritabanı adı) ServBay’deki ayarlarla uyumlu mu kontrol edin.- İlgili veritabanında
servbay_cakephp_app
adında bir veritabanı olup olmadığını doğrulayın.
- S: Composer komutu (
bin/cake
) çalışmıyor?- C: Terminalde aktif dizininizin CakePHP projesinin kök klasörü (
/Applications/ServBay/www/servbay-cakephp-app
) olduğundan emin olun. - ServBay’de PHP ve Composer paketlerinin başlatıldığına emin olun.
- Terminalde
php
komutunun erişilebilir olup olmadığını denetleyin (ServBay genellikle PHP’yi PATH’e ekler). Gerekirse ServBay’in entegre terminalini kullanın veya PATH’i manuel olarak ekleyin.
- C: Terminalde aktif dizininizin CakePHP projesinin kök klasörü (
Sonuç
ServBay kullanarak, macOS üzerinde CakePHP projeleriniz için hızlı ve verimli bir yerel geliştirme ortamı oluşturabilirsiniz. ServBay’in entegre PHP, Composer, web sunucusu ve veritabanı servisleri ile zor yapılandırma adımlarını atlayıp doğrudan projeye odaklanabilirsiniz. Bu dokümanda, proje oluşturma, temel yapılandırma, web sunucusu kurulumu, ilişkisel veritabanı ve önbellek sistemleriyle entegrasyon gibi pek çok konu adım adım anlatılmıştır. ServBay’in sunduğu kolaylıklarla konfigürasyon zorluklarıyla vakit kaybetmeden, kodunuza ve projenizin gelişimine odaklanabilirsiniz.