MerhabalarPHP eğitimi serimizin yeni bir bölümü ile sizlere MacOS için PHP kurulumu ve gerekli ayarlamalar rehberini yazıyorum.
macOS'ta PHP Geliştirmeyi Herd ile Kolaylaştıralım
macOS ile en "native" çalışan, cihazı neredeyse hiç ısıtmayan ve hem pil hem işlemci verimliliği ile önümüze çıkan 3 aracı (Herd + DBngin + TablePlus) nasıl kuracağımızı ve ayarlayacağımızı adım adım anlatayım.
1. Laravel Herd: (PHP & Sunucu)
Herd, aslında bir "sunucu yönetim uygulaması". İçinde PHP ve Nginx gömülü geliyor ama siz onları hiç görmüyorsunuz. Eskisi gibi terminalde brew install php yazmaya gerek kalmıyor aslında.
- Kurulum herd.laravel.com adresine giderek macOS için uyumlu versiyonu indiriyoruz.
- Can alıcı noktası Uygulamayı açtığınızda PHP anında sistemimize ekleniyor. PHP 7.4'ten 8.4'e kadar istediğiniz sürüme değiştirebiliyorsunuz.
(https://www.teteos.net/assets/files/2026-02-12/1770898254-630120-image.png) alt=Herd Dashboard]
İpucu: Herd kurulduğunda sisteminize otomatik olarak "dnsmasq" kurar. Bu sayede hiçbir ayar yapmadan .test uzantılı domainleriniz çalışmaya başlar. Bu şekilde xampp gibi localhost/proje yerine proje.test gibi tek ve düzenli bir yerden erişebiliyoruz.
2. DBngin: Veritabanı
Herd içinde veritabanı barındırmıyor, bu yüzden yanına DBngin'i koyuyoruz. Docker gibi sistemin RAM'ini sömürmez, sadece ihtiyacınız olan veritabanı servisini (MySQL, PostgreSQL veya Redis) ayağa kaldırır.
- Kurulum: dbngin.com üzerinden macOS sürümü indirin.
- Servis Oluşturma: Uygulamada soldaki "+" simgesine basın, MySQL'i seçin, bir isim verin ve "Start" deyin. Bitti.
(https://www.teteos.net/assets/files/2026-02-12/1770898280-158671-image.png) alt=DBngin MySQL Service]
3. TablePlus: Modern phpMyAdmin
phpMyAdmin'in eski arayüzünü ve yavaşlığı yerine tamamen macOS için geliştirilmiş, çok hızlı bir veritabanı yönetim aracı olan TablePlus kullanacağız.
- Nasıl Bağlanırız? DBngin'de başlattığınız MySQL servisinin hemen yanındaki "Open" butonuna basarsanız TablePlus otomatik olarak root yetkisiyle içeri girer.
- Varsayılan Bilgiler: Kullanıcı adınız
root, şifreniz ise boştur.
(https://www.teteos.net/assets/files/2026-02-12/1770898297-624351-image.png) alt=TablePlus UI]
4. Magic Paths
Şimdi işin en güzel kısmına geldik. XAMPP'taki gibi dosyaları gidip /Applications/XAMPP/htdocs içine taşımıyoruz.
- Bilgisayarınızda (isteğe bağlı Masaüstü)
Projeler diye bir klasör açın.
- Herd'ün ayarlarına (Settings) girin ve Paths kısmına bu klasörü ekleyin.
- Şimdi o klasörün içine gidip
deneme-site diye bir klasör oluşturun.
- Tarayıcınıza girip
http://deneme-site.test yazdığınız anda projenize tarayıcınız üzerinden erişebilirsiniz
(https://www.teteos.net/assets/files/2026-02-12/1770898329-658308-image.png) alt=Herd Paths Settings]
Neden XAMPP yerine Herd?
- Sıfır İzin Hatası: Klasör yetkileriyle (chmod) tek tek uğraşmazsınız, her şey kullanıcı yetkinizde çalışır.
- Hız: Herd, PHP'yi "static binary" olarak çalıştırdığı için XAMPP göre çok daha hızlıdır.
- Temizlik: XAMPP'ı silmek istediğinizde sistemin her tarafına dağılmış dosyaları temizlemek ile uğraşırsınız ; bu üçlü ise sisteminize dokunmadan çalışır.
SSS
%90 ihtimalle karşılaşacağınız birkaç hata ve çözümler:
1. "Veritabanına Bağlanamıyorum (SQLSTATE[HY000] [2002])"
En klasik hatadır kendileri. Genelde .env dosyanızda veya config dosyanızda DB_HOST=localhost yazdığı için olur.
- Çözüm: macOS bazen
localhost'u nereye bağlayacağını saşırdığı için bu hata ile karşılaşıyoruz localhost yazan yeri 127.0.0.1 olarak değiştirin. Sorun çözülecektir.Eğer farklı bir hata alırsanız beni etiketleyebilirsiniz.
2. "Port 80 is already in use" (Port Çakışması)
Genelde daha önceden XAMPP veya MAMP kurulunca ve onlar arka planda çalışıyorsa Herd hata verir.
- Çözüm: Eski XAMPP kontrol panelini açın ve tüm servisleri "Stop" yapın. Hatta zaten ihitacımız olmayacağı için XAMPP'ı bilgisayardan tamamen kaldırıp Mac'i bir kez yeniden başlatabilirsiniz.
3. "Site Not Found" veya 404 Hatası
Klasörünüzü Paths kısmına eklediniz ama site açılmıyorsa tr karakter sorunu olabilr
- Çözüm: Klasör isminde boşluk veya Türkçe karakter (ş, ı, ğ, ü, ö, ç) kullanmamaya dikkat edin. Örneğin klasör adınız
Benim Projem ise tarayıcıda çalışmayabilir. Onu benim-projem yapın ve http://benim-projem.test olarak girmeyi deneyin.
4. MySQL Şifre Sorunu
DBngin ile kurulan MySQL'de varsayılan olarak şifre yoktur.
- Çözüm: Eğer kullandığınız script (Wordpress, Laravel vs.) bir şifre istiyorsa veya boş şifreyi kabul etmiyorsa, DBngin ile çalışan MySQL'i durdurup ayarlardan bir şifre belirleyebilirsiniz. Ama zaten "root" kullanıcı adı ve boş şifre işinizi görür
Umarım rehberim işinize yarar.
Bir başkaPHP serisinde görüşmek üzere bir hata konusunda konu açıp beni etiketleyebilirsiniz veya altta sorunuzu sorabilirsiniz.