Laravel’de “could not find driver” Hatası Nedir ve Nasıl Çözülür?

05.06.2026 - 14:55 4 Okunma

Laravel Projelerinde Veritabanı Bağlantı Hataları Neden Oluşur?

“could not find driver” Hatası Ne Anlama Gelir?

Laravel projelerinde en sık karşılaşılan teknik hatalardan biri “could not find driver” hatasıdır. Bu hata genellikle Laravel’in veritabanına bağlanmaya çalıştığını, ancak PHP tarafında gerekli veritabanı sürücüsünü bulamadığını gösterir. Yani sorun çoğu zaman Laravel kodundan değil, hosting ortamındaki PHP extension yapılandırmasından kaynaklanır.

Örneğin Laravel projeniz MySQL kullanıyorsa PHP tarafında pdo_mysql aktif olmalıdır. PostgreSQL kullanıyorsanız pdo_pgsql ve pgsql extensionlarının aktif olması gerekir. Bu uzantılar aktif değilse Laravel veritabanına ulaşamaz ve şu hatayı verebilir:

 
could not find driver
 

Bu hata özellikle yeni Laravel kurulumu yapan, PHP sürümünü değiştiren, PostgreSQL kullanan veya projeyi farklı bir hosting ortamına taşıyan kullanıcıların karşısına çıkar.

Hatanın En Yaygın Sebebi: Eksik PHP Extension

MySQL İçin pdo_mysql Gerekir

Laravel projelerinde en çok kullanılan veritabanı MySQL veya MariaDB’dir. Eğer projenizin .env dosyasında şu ayar varsa:

 
DB_CONNECTION=mysql
 

bu durumda PHP tarafında şu extension aktif olmalıdır:

 
pdo_mysql
 

Eğer pdo_mysql aktif değilse Laravel MySQL bağlantısı kuramaz. Veritabanı adı, kullanıcı adı ve şifre doğru olsa bile bağlantı çalışmaz. Bu nedenle hata alındığında ilk kontrol edilmesi gereken yer PHP extension listesidir.

PostgreSQL İçin pdo_pgsql ve pgsql Gerekir

PostgreSQL kullanan Laravel projelerinde durum biraz daha farklıdır. .env dosyasında şu ayar bulunuyorsa:

 
DB_CONNECTION=pgsql
 

PHP tarafında şu extensionların aktif olması gerekir:

 
pdo_pgsql
pgsql
 

Eğer bu uzantılar eksikse Laravel PostgreSQL’e bağlanamaz ve “could not find driver” hatası oluşur. PostgreSQL kullanan profesyonel Laravel projelerinde bu hata oldukça yaygındır.

Hostingİstanbul.com, Laravel ve PostgreSQL kullanan projelerde doğru PHP sürümü, gerekli extensionlar ve hosting paketi seçimi konusunda müşterilerini yönlendirmeyi önemser.

PHP Sürümü Değişince Hata Neden Ortaya Çıkar?

Her PHP Sürümünün Extension Ayarı Ayrı Olabilir

Birçok kullanıcı projesini PHP 8.0’da çalıştırırken sorun yaşamaz; ancak PHP 8.3 veya PHP 8.4’e geçtiğinde “could not find driver” hatası alabilir. Bunun sebebi, her PHP sürümünün extension ayarının ayrı olmasıdır.

Örneğin PHP 8.0 için pdo_mysql aktif olabilir, ancak PHP 8.4 için aktif olmayabilir. Aynı şekilde PHP 8.3’te pdo_pgsql görünürken, PHP 8.4’te görünmeyebilir. Bu durumda kullanıcı PHP sürümünü yükselttiğinde veritabanı bağlantısı bozulur.

Bu nedenle Laravel projelerinde PHP sürümü değiştirildikten sonra mutlaka şu kontroller yapılmalıdır:

 
pdo
pdo_mysql
pdo_pgsql
pgsql
mbstring
openssl
tokenizer
xml
ctype
json
curl
fileinfo
 

Laravel’in ihtiyaç duyduğu extensionlar projenin yapısına göre değişebilir. Ancak veritabanı sürücüleri mutlaka kontrol edilmelidir.

cPanel’de “could not find driver” Hatası Nasıl Çözülür?

PHP Selector Üzerinden Extension Kontrolü

cPanel kullanan hesaplarda genellikle şu bölümden PHP extensionları kontrol edilir:

 
cPanel → Software → Select PHP Version
 

Burada önce kullanılan PHP sürümü seçilir. Ardından Extensions bölümünden gerekli uzantılar aktif edilir.

MySQL için:

 
pdo_mysql
 

PostgreSQL için:

 
pdo_pgsql
pgsql
 

aktif edilmelidir.

Eğer ilgili extension listede görünmüyorsa, bu kullanıcı panelinden çözülemez. Sunucu yöneticisi veya hosting sağlayıcısı ilgili PHP sürümü için bu extensionları kurmalı veya aktif etmelidir.

MultiPHP Manager ve Domain Bazlı PHP

Bazı hosting ortamlarında ana domain ve subdomain farklı PHP sürümleriyle çalışabilir. Örneğin ana domain PHP 8.0’da kalırken, Laravel projesi çalışan subdomain PHP 8.4 isteyebilir.

Bu durumda domain bazlı PHP sürümü ayarlanmalıdır. Eğer cPanel arayüzü buna izin vermiyorsa, bazı CloudLinux tabanlı sunucularda .htaccess içine PHP handler eklenerek klasör bazlı PHP sürümü kullanılabilir.

Örneğin PHP 8.4 için:

 
AddHandler application/x-httpd-alt-php84 .php .php8 .phtml
 

Bu satır ilgili Laravel projesinin .htaccess dosyasına eklenebilir. Ancak bu işlem sunucu yapısına göre değişebilir.

Laravel .env Dosyası Doğru mu?

DB_CONNECTION Değeri Kontrol Edilmeli

“could not find driver” hatasında sadece PHP extension değil, .env dosyası da kontrol edilmelidir. Laravel hangi veritabanına bağlanacağını .env dosyasından öğrenir.

MySQL için örnek yapı:

 
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=database_name
DB_USERNAME=database_user
DB_PASSWORD=database_password
 

PostgreSQL için örnek yapı:

 
DB_CONNECTION=pgsql
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=database_name
DB_USERNAME=database_user
DB_PASSWORD=database_password
 

Eğer PostgreSQL kullanan bir proje yanlışlıkla DB_CONNECTION=mysql olarak kalmışsa Laravel yanlış sürücüyü kullanmaya çalışır. Bu da farklı bağlantı hatalarına yol açabilir.

Laravel Cache Temizliği Yapılmalı

Laravel .env değişikliklerini bazen hemen okumayabilir. Özellikle config cache aktifse eski ayarlarla çalışmaya devam edebilir. Bu durumda şu komutlar çalıştırılmalıdır:

 
php artisan config:clear
php artisan cache:clear
 

Gerekirse şu komutlar da kullanılabilir:

 
php artisan route:clear
php artisan view:clear
 

SSH veya Terminal erişimi olmayan hosting paketlerinde bu komutları çalıştırmak mümkün olmayabilir. Bu nedenle Laravel projelerinde SSH ve Composer desteği önemli hale gelir.

Web PHP ile CLI PHP Farklı Olabilir

Terminalde Farklı PHP Sürümü Çalışıyor Olabilir

Laravel projelerinde bir diğer önemli konu, web tarafındaki PHP sürümü ile CLI tarafındaki PHP sürümünün farklı olabilmesidir. Web sitesi PHP 8.4 ile çalışırken, terminalde php komutu PHP 8.0 çalıştırıyor olabilir.

Bu durumda Composer veya Artisan komutları farklı PHP sürümünde çalışır ve beklenmeyen hatalar oluşabilir. CloudLinux tabanlı sistemlerde PHP 8.4 için CLI yolu genellikle şu yapıda olabilir:

 
/opt/alt/php84/usr/bin/php
 

Bu durumda Laravel komutları şöyle çalıştırılabilir:

 
/opt/alt/php84/usr/bin/php artisan config:clear
 

Bu detay özellikle PostgreSQL gibi özel extension gerektiren projelerde çok önemlidir.

Hosting Paketi Seçimi Hatanın Çözümünde Neden Önemlidir?

Her Hosting Paketi Laravel İçin Uygun Olmayabilir

Ekonomik hosting paketleri basit web siteleri, küçük kurumsal sayfalar ve temel PHP projeleri için uygun olabilir. Ancak Laravel projeleri daha gelişmiş ihtiyaçlara sahiptir. SSH, Composer, PHP CLI, özel extension desteği, cron job, queue ve domain bazlı PHP sürümü gibi ihtiyaçlar ekonomik paketlerde standart sunulmayabilir.

Bu nedenle “could not find driver” gibi hatalar, bazen sadece bir extension problemi değil, aynı zamanda yanlış hosting paketi seçiminin sonucu olabilir.

Laravel + PostgreSQL gibi projelerde daha profesyonel bir altyapı gerekebilir. Kurumsal hosting, bayi hosting veya VPS çözümleri bu tür projeler için daha sağlıklı bir ortam sunar.

Hostingİstanbul.com Bu Konuda Nasıl Destek Sağlar?

Projeye Uygun Altyapı Seçimi

Hostingİstanbul.com, müşterilerine yalnızca hosting alanı sunmakla kalmaz; projenin ihtiyaçlarına göre doğru altyapı seçimi konusunda da yol gösterir. Laravel, PostgreSQL, MySQL, Composer, SSH, PHP sürümü, extension desteği ve document root gibi teknik ihtiyaçlar birlikte değerlendirilir.

Hostingİstanbul.com’un sunduğu çözümler arasında şunlar yer alır:

  • Web hosting
  • Kurumsal hosting
  • Bayi hosting
  • VPS / özel sunucu
  • Domain tescili
  • Kurumsal e-posta
  • SSL sertifikası
  • Web tasarım
  • Özel yazılım
  • E-ticaret yazılımı
  • SEO hizmetleri

Bu bütüncül yapı sayesinde Laravel projeleri daha sağlıklı şekilde yayına alınabilir.

Sonuç: “could not find driver” Hatası Doğru Altyapıyla Kolayca Çözülür

Laravel İçin Teknik Uyum Şarttır

Laravel’de “could not find driver” hatası çoğu zaman PHP veritabanı extensionlarının eksik olmasından kaynaklanır. MySQL için pdo_mysql, PostgreSQL için pdo_pgsql ve pgsql uzantıları aktif olmalıdır. Ayrıca .env ayarları, PHP sürümü, CLI PHP yolu ve Laravel cache durumu kontrol edilmelidir.

Bu hata, doğru teşhis edildiğinde çözülebilir. Ancak Laravel projelerinin uzun vadeli sağlıklı çalışması için doğru hosting paketi seçimi büyük önem taşır.

Hostingİstanbul.com, Laravel kullanıcılarına proje ihtiyaçlarına uygun hosting çözümleri sunarak güvenli, hızlı ve sürdürülebilir bir altyapı oluşturmayı hedefler. Laravel projenizde veritabanı bağlantı hataları yaşamak istemiyorsanız, hosting seçimini yalnızca fiyatla değil, teknik gereksinimlerle birlikte değerlendirmelisiniz.