ServBay PHP Yapılandırma Rehberi: php.ini, PHP-FPM ve Uzantı Modüllerinin Ayarlanması
ServBay, web geliştiricileri için güçlü ve esnek bir yerel PHP geliştirme ortamı sunar. Farklı proje ihtiyaçlarını karşılamak için PHP’nin çeşitli ayarlarını — örneğin bellek limiti, dosya yükleme boyutu, hata raporlama seviyesi veya belirli eklentilerin etkinleştirilmesi — değiştirmeniz gerekebilir.
Bu makalede, ServBay’de PHP yapılandırmasının nasıl değiştirileceği ayrıntılı olarak anlatılmaktadır. ServBay, bu ayarları yönetmek için kullanımı kolay bir grafik kullanıcı arayüzü (UI) sunar ve bunu kullanmanızı önerir. Temel yapılandırma dosyalarının (örn. php.ini
ve php-fpm.conf
) konumunu bilmek faydalı olsa da, yapılan değişikliklerin kalıcı ve uyumlu olması için ayarları mutlaka ServBay'in arayüzü üzerinden değiştirmeniz şiddetle tavsiye edilir.
Önemli Uyarı
Lütfen ServBay tarafından oluşturulan PHP yapılandırma dosyalarını (/Applications/ServBay/etc/php/<version>/
ve alt dizinlerde) elle düzenlemeyin. Bu dosyalar ServBay tarafından yönetilir ve yapılan manuel değişiklikler, ServBay güncellendiğinde, yeniden başlatıldığında veya benzer bir işlem uygulandığında otomatik olarak üzerine yazılır. Tüm yapılandırma değişikliklerinizi ServBay’in kullanıcı arayüzünden gerçekleştirin.
Genel Bakış
ServBay’de farklı PHP sürümlerinin yapılandırma dosyaları kendi dizinlerinde tutulur. Örneğin, PHP 8.3 ana yapılandırma dosyası /Applications/ServBay/etc/php/8.3
klasöründedir.
Temel yapılandırma dosyaları şunlardır:
php.ini
: PHP’nin ana yapılandırma dosyasıdır; CLI ve web ortamındaki genel ayarları etkiler.php-fpm.conf
: PHP-FPM (FastCGI Process Manager) yapılandırma dosyasıdır; PHP’nin web sunucusunda (ör. Caddy veya Nginx) çalışma şeklini ve performansını belirler.conf.d/
: Her bir PHP uzantısının yüklenmesiyle ilgili ayarları içeren (.ini
) dosyaları (örn.xdebug.ini
,opcache.ini
vb.) barındırır.
Bu dosyalar mevcut olsa da, ServBay bunların ayarlanmasını güvenli ve pratik hale getiren farklı bir yol sunar.
ServBay Kullanıcı Arayüzüyle Yapılandırma (Önerilen Yöntem)
ServBay, PHP’nin çok çeşitli yapılandırma seçeneklerini doğrudan değiştirmenizi sağlayan sezgisel bir grafik arayüz sunar. UI üzerinden yapılan değişiklikleri kaydettiğinizde ServBay, değişiklikleri otomatik olarak uygular ve genellikle PHP servislerini yeniden başlatır. Böylece dosya düzenlemeye veya komut satırı kullanmaya gerek kalmaz.
PHP yapılandırma arayüzüne ulaşmak için:
- ServBay ana penceresini açın.
- Sol taraftaki navigasyon menüsünden Diller’i tıklayın.
- Geliştirme dilleri listesinden ayarlamak istediğiniz PHP sürümünü seçin (örneğin,
PHP 8.3
). - Sağda, seçilen PHP sürümüne ait detaylar ve yapılandırma seçenekleri görüntülenir.
Aşağıda örnek bir PHP yapılandırma arayüzü görebilirsiniz:
Arayüz genellikle üç ana bölüme ayrılır ve bunlar sırasıyla PHP-FPM, PHP (php.ini
) ve PHP uzantılarının yapılandırmasına karşılık gelir. Şimdi bu bölümleri ayrıntılı inceleyelim.
PHP FPM Yapılandırması
İpucu
php-fpm.conf
yapılandırması, PHP’nin web sunucusu altındaki davranışını etkiler. Bu bölümde ServBay UI’dan yapılan ayarlar, aynı isimli php.ini
ayarlarının üstüne yazacak (gerçekleşen web istekleri için). Bu yapılandırmalar komut satırı (CLI) kullanılırken etkili olmaz.
ServBay’in web servisi (Caddy veya Nginx), PHP ile PHP-FPM üzerinden iletişim kurar. PHP-FPM yapılandırma arayüzü, web ortamının performans ve stabilitesini etkileyen parametreleri değiştirmenizi sağlar, örneğin:
- Süreç Yönetimi (
pm
): PHP-FPM’in çalışan süreçleri nasıl yöneteceğini (dynamic
,static
gibi) belirler. - Süreç Sayıları (
pm.max_children
,pm.start_servers
, vb.): Maksimum alt süreç sayısı, başlangıçta oluşturulan süreçler; eşzamanlı işlem kapasitesini etkiler. - Bellek Limiti (
memory_limit
): Burada yapılan değişiklikler, web istekleri için sadece geçerli olur vephp.ini
'deki aynı adlı ayarları geçersiz kılar. - Hata Günlüğü ve Gösterim: Hata günlük yolu, hata seviyeleri ve hataların tarayıcıda gösterilip gösterilmeyeceği gibi ayarları düzenleyin.
Örneğin, web üzerinden çalışan PHP betiklerde varsayılan bellek limiti (ör. 64M veya 128M) yerine 1G yapmak isterseniz, ServBay UI’daki PHP FPM yapılandırma bölümünden memory_limit
seçeneğini açın, listeden 1G
’yi seçin ve kaydedin. Bu değişiklik sadece web sunucusu aracılığıyla çalışan PHP kodlarını etkiler; komut satırında çalışan PHP komutları ise yine php.ini
deki memory_limit
’e bağlı olur.
Örnek karşılaştırma: php.ini
’de memory_limit
değeri 512M
, ama PHP-FPM konfigurasyonunda memory_limit
128M
ise:
- CLI (komut satırı) üzerinden çalışan PHP betiklerinde kullanılabilir bellek limiti
512M
dir. - Web üzerinden çalışan betiklerde
128M
olarak geçerlidir.
php.ini Yapılandırması
İpucu
php.ini
'deki ayarlar globaldir ve PHP’nin hem CLI (komut satırı) hem de web ortamındaki davranışını etkiler. Ancak yukarıda belirtilen üzere, web ortamına özel olarak PHP-FPM yapılandırmasındaki aynı isimli ayarlar php.ini
'yi geçersiz kılar.
PHP ayarları bölümü, esasen php.ini
dosyasındaki çekirdek parametrelere karşılık gelir. Burada PHP çalışma zamanının birçok temel ayarını bulabilirsiniz, örneğin:
post_max_size
: POST yöntemiyle gönderilen verilerin azami boyutu.upload_max_filesize
: Yüklenebilecek dosyanın azami boyutu.date.timezone
: PHP’nin kullandığı varsayılan zaman dilimi.display_errors
/error_reporting
: Hataların sayfada gösterilip gösterilmeyeceği ve hangi seviyede raporlanacağı.max_execution_time
: Betiklerin maksimum çalışma süresi (saniye).disable_functions
/disable_classes
: Belirli PHP fonksiyon ve sınıflarını devre dışı bırakmak için kullanılır (güvenlik için tavsiye edilir).open_basedir
: PHP’nin erişebileceği dosya sistemi yollarını sınırlar. Tüm web sitesi projelerinizi ServBay’in varsayılan kök dizini olan/Applications/ServBay/www
altında tutmanız tavsiye edilir; böyleceopen_basedir
’i kolayca bu dizine ayarlayabilir, birden fazla yol belirtmenize gerek kalmaz.
ServBay UI üzerinden bu sık kullanılan php.ini
ayarlarını doğrudan değiştirmek mümkündür.
Tüm php.ini
konfigürasyon seçeneklerinin tam açıklaması için PHP'nin resmi dokümanına bakabilirsiniz: PHP Runtime Configuration.
PHP Uzantı Modülleri Yapılandırması
ServBay, çeşitli veritabanı bağlantıları, önbellekleme, hata ayıklama, framework desteği gibi birçok konuda önceden yapılandırılmış zengin bir PHP uzantısı yelpazesi sunar. ServBay’in kullanıcı arayüzüyle, bu eklentileri etkinleştirmek/devre dışı bırakmak ve ilgili parametreleri ayarlamak çok kolaydır.
ServBay’in desteklediği sık kullanılan PHP uzantılarından bazıları: xDebug
, OPcache
, ImageMagick
, Redis
, MongoDB
, Phalcon
, Swoole
ve daha fazlası. Ayrıca farklı veritabanı (MySQL, PostgreSQL, MongoDB), mesaj kuyruğu, önbellek sistemi entegrasyonları gibi pek çok ek uzantı desteği de bulunmaktadır.
Bir PHP uzantısını etkinleştirmek veya devre dışı bırakmak için şu adımları izleyin:
- ServBay UI’deki PHP yapılandırma bölümünde “Uzantı Modülleri” veya benzer sekmeye geçin.
- İhtiyacınız olan uzantıyı bulun (örn.
xdebug
). - Açma/kapama anahtarıyla ilgili uzantıyı aktif veya pasif hale getirin.
- Ek ayar gerektiren modüller için (örn.
xDebug
) ilgili parametreleri (örn.xdebug.mode
,xdebug.client_port
vb.) doğrudan arayüzde düzenleyin. - Yaptığınız değişiklikleri kaydedin.
ServBay’in desteklediği PHP uzantıların tüm listesi ve daha fazla detay için PHP Uzantı Modülleri Listesi dokümanına göz atabilirsiniz (güncel sürümü kontrol ediniz).
PHP Yapılandırma Dosyası Yapısını Anlamak (Manuel Düzenleme Tavsiye Edilmez)
Her ne kadar yapılandırmayı ServBay UI üzerinden yapmanız şiddetle önerilse de, temel dosya yerleşimi ve yapısını bilmek PHP’nin nasıl çalıştığını daha iyi anlamak açısından faydalı olabilir.
ServBay tarafından oluşturulan PHP yapılandırma dosyaları şurada yer alır: /Applications/ServBay/etc/php/<version>/
php.ini
: Ana yapılandırma dosyası.php-fpm.conf
: PHP-FPM süreç yöneticisinin yapılandırma dosyası.conf.d/
: Her uzantının kendi.ini
dosyalarını bulundurduğu klasör.
php.ini Dosya Yapısı Örneği
php.ini
dosyası INI formatındadır. Bazı yaygın ayarların dosya içeriğindeki biçimi aşağıdaki gibidir:
; Bellek limitini düzenle
memory_limit = 256M
; Yükleme dosya boyutu limitleri
upload_max_filesize = 50M
post_max_size = 50M
; Zaman dilimi ayarı
date.timezone = "Asia/Shanghai" ; veya "UTC", "America/New_York" gibi ihtiyaca göre ayarlayın
; Hata gösterimini etkinleştir (yalnızca geliştirme ortamı için!)
display_errors = On
error_reporting = E_ALL
; Maksimum çalışma süresi
max_execution_time = 300
; Dosya sistemi erişim yolu kısıtlaması (örnek)
; open_basedir = /Applications/ServBay/www/:/tmp/
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
php-fpm.conf Dosya Yapısı Örneği
php-fpm.conf
yapılandırma dosyası hem genel ayarları hem de süreç havuzu (“pool”) ayarlarını içerir. ServBay genellikle www
adında bir varsayılan süreç havuzu ile gelir.
[global]
; Genel hata günlük yolu
error_log = /Applications/ServBay/logs/php/8.3/errors.log
[www]
; Dinleme adresi, portu veya soket dosyası
listen = /Applications/ServBay/tmp/php-cgi-8.3.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
; Kullanıcı ve grup (ServBay genellikle mevcut kullanıcı ile çalışır)
; user = servbay-demo
; group = staff
; Süreç yönetim tarzı (static, dynamic, ondemand)
pm = dynamic
pm.max_children = 10 ; Maksimum alt süreç sayısı
pm.start_servers = 2 ; Başlangıçta oluşturulan süreç sayısı
pm.min_spare_servers = 1 ; Minimum boşta süreç
pm.max_spare_servers = 6 ; Maksimum boşta süreç
pm.max_requests = 1024 ; Bir süreçte işlenebilecek azami istek sayısı, sonra süreç yeniden başlatılır
; Yavaş sorguları kaydetme (request_slowlog_timeout süresini aşan işlemler slowlog'da saklanır)
request_slowlog_timeout = 5s
slowlog = /Applications/ServBay/logs/php/8.3/slow.log
; php ayarları, aynı isimli php.ini ayarlarının üzerine yazar (örnek)
; php_admin_value[memory_limit] = 128M
; php_admin_flag[display_errors] = on
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
PHP Modül Yükleme Yapılandırma Örneği (conf.d/)
conf.d/
klasöründeki .ini
dosyaları, belirli PHP uzantılarını yüklemek ve ayarlamak için kullanılır. Örneğin, xdebug.ini
şunları içerebilir:
[Xdebug]
; Xdebug uzantısını yükle
zend_extension = xdebug.so
; Xdebug modları (debug, develop, profile, trace, coverage)
xdebug.mode=debug,develop
; Hata ayıklama başlatma yöntemleri (yes, trigger, develop)
; yes: Daima hata ayıklama başlatılır
; trigger: Belirli bir tetikleyiciyle (örn. GET/POST parametreleri, çerez)
; develop: Sadece geliştirme fonksiyonları etkin olur (örn. stack trace)
xdebug.start_with_request=yes
; IDE ile bağlantı için istemci ana bilgisayar ve port
xdebug.client_host=localhost
xdebug.client_port=39083
; Xdebug günlük yolu
xdebug.log=/Applications/ServBay/logs/xdebug/8.3/xdebug.log
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Bir kez daha altını çizelim: Bu dosyaları bulabilirsiniz ancak kesinlikle manuel düzenlemeyin. Ayarları ServBay arayüzü üzerinden değiştirin.
Değişiklikleri Uygulama: PHP Servisini Yeniden Başlatma
ServBay UI üzerinden yapılan yapılandırma değişiklikleri, ServBay tarafından genellikle otomatik olarak tespit ve uygulanır. Ancak bazı durumlarda yapılan değişikliklerin tam anlamıyla etkin olması için ilgili PHP servisini yeniden başlatmanız gerekebilir.
PHP servisini yeniden başlatmak için şu yöntemleri kullanabilirsiniz:
ServBay Kullanıcı Arayüzü ile Yeniden Başlatma
- ServBay ana penceresini açın.
- Sol menüden Paketler’i seçin.
- Yapılandırmasını değiştirdiğiniz PHP sürümünü bulun.
- İlgili PHP sürümünün yanında yer alan yeniden başlat düğmesine (genellikle döngülü ok simgesi) tıklayın.
servbayctl
Komut Satırı Aracı ile Yeniden Başlatma
Komut satırında çalışmayı tercih eden geliştiriciler, ServBay’in sağladığı servbayctl
aracıyla servisleri (ör. belirli bir PHP sürümünü) yönetebilir.
Terminal uygulamasını açıp aşağıdaki komutu çalıştırın (8.3
yerine kendi sürümünüzü yazabilirsiniz):
servbayctl restart php 8.3
Bu komutun ardından, ServBay ilgili PHP-FPM sürecini yeniden başlatır ve yeni yapılandırmaları etkinleştirir.
Sıkça Sorulan Sorular (SSS)
S:
php.ini
dosyasını manuel düzenledim, ama neden değişikliğim çalışmadı ya da geri alındı?- C: ServBay, paketlerinin yapılandırma dosyalarını kendisi yönetir ve oluşturur. El ile yapılan değişiklikler, ServBay’in yapılandırma güncellemesi, servis yeniden başlatması veya diğer dahili işlemlerinde otomatik olarak üzerine yazılır. PHP yapılandırmasını kalıcı ve garantili şekilde değiştirmek için mutlaka ServBay’in kullanıcı arayüzünü kullanın.
S: PHP’nin bellek limiti veya dosya yükleme boyutunu nasıl artırabilirim?
- C: ServBay UI’yi açın, Diller -> PHP sürümünüzü seçin. PHP FPM yapılandırmasından
memory_limit
’i değiştirin (web ortamı için), php.ini yapılandırmasından daupload_max_filesize
vepost_max_size
’i değiştirin (global etki; web ortamında FPM yapısı tarafından geçersiz kılınabilir). Değişiklikleri kaydedip PHP servisini yeniden başlatmayı unutmayın.
- C: ServBay UI’yi açın, Diller -> PHP sürümünüzü seçin. PHP FPM yapılandırmasından
S: Xdebug nasıl etkinleştirilir veya yapılandırılır?
- C: ServBay UI’yi açın, Diller -> PHP sürümünüzü seçin. Uzantı modülleri bölümünden
xdebug
’u bulup etkinleştirin ve ihtiyacınıza görexdebug.mode
,xdebug.client_host
,xdebug.client_port
gibi parametreleri değiştirin. Değişikliklerden sonra kaydedip PHP servisini yeniden başlatın.
- C: ServBay UI’yi açın, Diller -> PHP sürümünüzü seçin. Uzantı modülleri bölümünden
S:
php.ini
ile PHP-FPM yapılandırması arasındaki fark nedir? Hangisini değiştirmeliyim?- C:
php.ini
, PHP’nin global yapılandırma dosyasıdır; CLI ve web ortamını etkiler. PHP-FPM yapılandırması (php-fpm.conf
) ise PHP’nin web sunucusundaki çalışma tarzına özeldir ve aynı isimli ayarlardaphp.ini
'nin üzerine yazar. Web ortamını ilgilendiren ayarları değiştirmeniz gerekiyorsa (ör. bellek limiti, çalışma süresi, hata gösterimi), öncelikle PHP-FPM ayarlarını kontrol edin; CLI veya genel ayarlar içinphp.ini
yi değiştirin. ServBay arayüzüyle bu farklar açıkça ayrılmıştır.
- C:
Sonuç
ServBay, php.ini
, PHP-FPM ve uzantı modülleri dahil olmak üzere tüm temel PHP yapılandırmalarını yönetmek için güvenli ve kolay bir arayüz sunar. Yapılandırmalarınızı UI üzerinden değiştirip kaydettikten sonra PHP servisini yeniden başlatarak, geliştirme ortamınızın ihtiyaçlarınıza uygun çalışmasını sağlayabilirsiniz. Dosya yapısını bilmek faydalı olsa da, pratikte her zaman ayarları ServBay’in UI’siyle değiştirin; manuel düzenlemeler güncellemelerde kaybolabilir. ServBay’in güçlü konfigürasyon sistemi ile her projenize uygun mükemmel PHP ortamını kolayca oluşturabilirsiniz.