phpinfo()
phpinfo() fonksiyonu, PHP'nin çalıştığı sunucu hakkında detaylı bilgi veren bir fonksiyondur. Bu fonksiyon kullanıldığında, PHP konfigürasyonu, yüklü modüller, sunucu bilgileri ve güvenlik ayarları gibi birçok teknik bilgi görüntülenir.
phpinfo() Çıktısında Bulunan Ana Bilgiler
phpinfo() fonksiyonunu çalıştırmak için aşağıdaki PHP kodunu bir dosyaya yazıp çalıştırabilirsin:
<?php
phpinfo();
?>
Bu fonksiyonun çıktısında bulunan ana bilgiler şunlardır:
1️⃣ PHP Sürümü ve Yapılandırması
- PHP Version: Yüklü PHP sürümünü gösterir (örneğin: PHP 8.1.2).
- System: PHP’nin çalıştığı işletim sistemi (Linux, Windows, macOS vb.).
- Build Date: PHP’nin derlenme tarihi.
- Server API: PHP’nin çalıştığı ortam (Apache, Nginx, CGI, FPM vb.).
- Loaded Configuration File: Kullanılan ana php.ini dosyasının konumu.
2️⃣ PHP Konfigürasyon Ayarları
Bu bölümde PHP'nin yapılandırma dosyasındaki (php.ini) temel ayarlar görüntülenir:
- max_execution_time: PHP betiklerinin çalışabileceği maksimum süre (örn. 30 saniye).
- memory_limit: PHP’nin kullanabileceği maksimum RAM miktarı (örn. 128M).
- post_max_size: HTTP POST isteğiyle gönderilebilecek maksimum veri boyutu (örn. 8M).
- upload_max_filesize: Yüklenebilecek maksimum dosya boyutu (örn. 2M).
- display_errors: PHP hata mesajlarının gösterilip gösterilmediği (On veya Off).
3️⃣ PHP Uzantıları ve Modüller
PHP ile birlikte yüklenen eklentiler (extensions) ve modüller listelenir:
- Core: PHP’nin çekirdek ayarları.
- date: Tarih ve saat fonksiyonları (date_default_timezone_set() gibi).
- PDO (PHP Data Objects): Veritabanı bağlantılarını yöneten modül.
- mysqli & pdo_mysql: MySQL ile bağlantı kuran eklentiler.
- openssl: HTTPS ve şifreleme işlemleri için kullanılır.
- curl: Web servisleriyle bağlantı kurmak için kullanılır.
- gd & imagemagick: Görsel işleme kütüphaneleri.
- mbstring: Çok baytlı karakter setleri (UTF-8) ile çalışmak için kullanılır.
- json: JSON veri işleme modülü.
- zip: PHP’de ZIP dosyalarını işlemek için kullanılır.
- intl: Uluslararasılaştırma desteği sağlar.
4️⃣ HTTP ve Sunucu Bilgileri
- HTTP Headers: Sunucuya gelen HTTP istek başlıkları.
- $_SERVER değişkenleri: Sunucu ortam değişkenleri (SERVER_NAME, REMOTE_ADDR vb.).
- Apache/Nginx Bilgileri: Eğer Apache veya Nginx kullanılıyorsa, yüklü modüller de görüntülenir.
5️⃣ disable_functions Listesi
Bazı hosting sağlayıcıları güvenlik nedeniyle bazı PHP fonksiyonlarını kapatabilir. Bu ayar disable_functions altında gösterilir.
Örneğin, aşağıdaki fonksiyonlar devre dışı bırakılmış olabilir:
disable_functions = system, exec, shell_exec, passthru, proc_open
Bu fonksiyonlardan birini kullanamıyorsan, phpinfo() çıktısında disable_functions değerini kontrol edebilirsin.
6️⃣ PHP Çalışma Ortamı (PHP-FPM, FastCGI vb.)
- PHP API: CGI/FPM, mod_php, CLI gibi PHP'nin hangi ortamda çalıştığını gösterir.
- Virtual Directory Support: Sanal dizin desteğinin olup olmadığını gösterir.
- PHP SAPI (Server API): PHP’nin Apache, Nginx, FastCGI veya CLI modunda çalışıp çalışmadığını belirtir.
7️⃣ PHP Bellek Kullanımı ve Performans Ayarları
- memory_limit: PHP’nin kullanabileceği maksimum RAM.
- opcache.enable: Opcode cache’in açık olup olmadığı.
- realpath_cache_size: Dosya yollarını önbelleğe alma boyutu.
8️⃣ Yüklenen Dosya Yolları
- Configuration File (php.ini) Path: Kullanılan php.ini dosyasının tam yolu.
- Loaded Configuration File: Yüklenen php.ini dosyası.
- extension_dir: PHP uzantılarının bulunduğu dizin.
9️⃣ PHP ile İlgili Özel Ayarlar
- session.save_path: PHP oturumlarının (sessions) nerede saklandığı.
- open_basedir: PHP’nin erişebileceği dizin sınırlandırmaları.
- allow_url_fopen: PHP’nin uzak dosyaları açıp açamayacağı.
???? phpinfo() Güvenlik Riski ve Alternatif Kullanımı
phpinfo() fonksiyonu çok fazla sistem bilgisini açığa çıkardığı için güvenlik riski oluşturabilir. Eğer sunucundaki güvenlik bilgilerini başkalarının görmesini istemiyorsan:
phpinfo() çıktısını geçici olarak kullanıp, işlem bittikten sonra dosyayı sil.
Alternatif olarak sadece belirli bilgileri almak için şu komutu kullanabilirsin:
<?php
echo "PHP Version: " . phpversion();
echo "Memory Limit: " . ini_get("memory_limit");
?>
???? Sonuç
phpinfo() ile PHP'nin tüm yapılandırma bilgilerini, modüllerini, sunucu ayarlarını ve hata ayarlarını öğrenebilirsin.
Eğer PHP üzerinde system(), exec(), shell_exec() gibi fonksiyonları çalıştırmada sorun yaşıyorsan, disable_functions ayarını kontrol etmek için phpinfo() çıktısına bakmalısın.
phpinfo() çıktısını herkese açık bırakmamak için işin bittikten sonra dosyayı silmelisin.
*Gönderi ve görsel chatgpt ile oluşturulmuştur.