# PHP Uzantıları ve Ayarları

Source: https://support.kapsulehost.com/tr-tr/php-extensions-and-ini

KapsuleHost web hosting'in WordPress, WooCommerce ve PHP siteleri için hangi PHP sürümlerini ve uzantılarını sağladığı, hangi ayarları kendi başınıza değiştirebileceğiniz ve bir değişikliğin görünmesinin neden beş dakika kadar sürebileceği.

Statik, Node.js ve Python siteleri PHP çalıştırmaz. Bir site için PHP ile ilgili her şey tek bir yerde bulunur: **Web Siteleri**, siteye tıklayın, **Ayarlar**, ardından **PHP**. Bu sayfada sürüm seçici, değiştirebileceğiniz ayarlar, bir Composer çalıştırıcısı ve PHP hata günlüğü bulunur.

![KPanel'de bir site için PHP sayfası, sürüm seçici ve değiştirebileceğiniz ayarlarla birlikte](https://support.kapsulehost.com/help/screenshots/php-extensions-and-ini.2214ab47.webp)

## PHP Sürümü Seçme

Dört sürüm seçilebilir: **8.4, 8.3, 8.2 ve 8.1**. Yeni siteler varsayılan olarak 8.3 kullanır.

Yazılımınızın fiilen desteklediği en yeni sürümü seçin. Daha yeni PHP belirgin şekilde daha hızlıdır ve güvenlik güncellemeleriyle daha uzun süre desteklenir. Doğrudan en yeni sürüme geçmemenin nedeni uyumluluktur: eski bir eklenti veya yıllar önce yazılmış özel bir kod parçası, hiç test edilmediği bir sürümde tamamen çalışmayı durdurabilir.

Değiştirmek için sürümü seçin ve **Sürümü Uygula** düğmesine tıklayın. Değişiklik sizin tarafınızdan hiçbir yeniden başlatma gerekmeden ve kesinti olmadan anında etkin hale gelir.

> **Tip:** PHP sürümünü önce staging ortamında değiştirin, siteye göz atın ve ancak ondan sonra üretim ortamında değiştirin. Canlı ortamda yapmanız gerekiyorsa, izleyebileceğiniz bir zamanda yapın ve geri almanın tek bir tıklama olduğunu bilin. Bkz. [Staging Ortamları](https://support.kapsulehost.com/tr-tr/staging-environments).

Bir sürüm değişikliği siteyi bozarsa, önceki sürüme geri dönün ve günlüğü okuyun. Hata, çalıştırılamayan dosyanın adını belirtecektir. Bkz. [PHP Sürümünü Değiştirme](https://support.kapsulehost.com/tr-tr/changing-php-version) ve [Hata Günlükleri](https://support.kapsulehost.com/tr-tr/error-logs).

## Değiştirebileceğiniz Ayarlar

PHP sayfası beş ayarı açılır menüler olarak sunar. Bunlar pratikte gerçekten soruna yol açan ayarlardır, bu yüzden öne çıkarılmışlardır.

| Ayar | Varsayılan | Kullanılabilir değerler | Ne denetler |
|---|---|---|---|
| `memory_limit` | 256M | 128M, 256M, 512M, 1024M, 2048M | Bir isteğin kullanabileceği bellek miktarı |
| `max_execution_time` | 30 | 30, 60, 120, 300, 600 | Bir isteğin çalışabileceği saniye sayısı |
| `upload_max_filesize` | 64M | 16M, 32M, 64M, 128M, 256M | Yüklenebilecek en büyük tekil dosya |
| `post_max_size` | 65M | 17M, 33M, 65M, 129M, 257M | En büyük toplam form gönderimi |
| `max_input_vars` | 3000 | 1000, 3000, 5000, 10000 | Bir gönderimin içerebileceği alan sayısı |

Hangisini istediğiniz:

- **Belirli bir boyutun üzerinde yüklemelerin başarısız olması**: `upload_max_filesize` değerini yükseltin, ve onunla birlikte `post_max_size` değerini de yükseltin.
- **Büyük bir formun veya bir sayfa oluşturucunun kaydetme sırasında alanları kaybetmesi**: `max_input_vars` değerini yükseltin. Bu, hiçbir hata vermediği için görünmez ve sinir bozucudur. Fazladan alanlar sessizce atılır.
- **Bir sayfanın hiçbir hata vermeden yarıda ölmesi**: `memory_limit` değerini yükseltin. Bkz. [WordPress Bellek Sınırı](https://support.kapsulehost.com/tr-tr/wordpress-memory-limit).
- **Uzun bir içe veya dışa aktarma işleminin zaman aşımına uğraması**: `max_execution_time` değerini yükseltin ve işi komut satırından çalıştırmayı düşünün. Bkz. [WP-CLI](https://support.kapsulehost.com/tr-tr/wordpress-wp-cli).

> **Note:** `post_max_size`, `upload_max_filesize` değerinden büyük olmalıdır, çünkü yükleme gönderi içinde taşınır. Bu durumun geçerli olmadığı bir kombinasyon seçerseniz, platform `post_max_size` değerini sizin için otomatik olarak yukarı çeker. Seçmediğiniz bir değeri görebilmenizin nedeni budur.

## Bir Değişikliğin Görünmesi Neden Beş Dakikaya Kadar Sürer

Bu sayfadaki en yaygın kafa karışıklığı budur, bu yüzden net olmakta fayda var.

Ayarlarınız sitenizin belge kök dizinindeki bir `.user.ini` dosyasına yazılır. PHP bu dosyayı okur ve ardından **300 saniye boyunca önbelleğe alır**, bu da beş dakikaya denk gelir. Bu önbellek süresi dolana kadar PHP önceki değerleri kullanmaya devam eder.

Dolayısıyla bir değişikliği kaydettikten sonra:

- Sayfa, beş dakikaya kadar eski sınırı bildirmeye devam edecektir.
- `phpinfo()` beş dakikaya kadar eski sınırı bildirmeye devam edecektir.
- Sert bir yenileme (hard refresh) yardımcı olmaz. Tarayıcı önbelleğinizi temizlemek de yardımcı olmaz.
- Hiçbir şeyi yeniden başlatmanız gerekmez, zaten yapamazsınız. Sadece bekleyin.

Beş dakikadan fazla süre geçmiş ve değer değişmemişse, gerçekten bir sorun var demektir ve bir destek talebi açmaya değer.

## `.user.ini` Dosyasını Kendiniz Düzenleme

Tercih ederseniz veya panelin sunmadığı bir yönergeye ihtiyaç duyarsanız, `.user.ini` dosyasını SFTP veya SSH üzerinden doğrudan düzenleyebilirsiniz. Bu dosya sitenizin belge kök dizininde bulunur. Bkz. [SFTP Erişimi](https://support.kapsulehost.com/tr-tr/sftp-access).

Biçim, satır başına bir yönergedir:

```ini
memory_limit = 512M
max_execution_time = 120
```

`.user.ini` dosyasının yapabilecekleri konusunda iki önemli sınır vardır:

**Yalnızca PHP'nin dizin başına veya kullanıcı başına ayarlanmasına izin verdiği yönergeler için çalışır.** Yukarıdaki beşi de bu niteliği taşır. Yalnızca sistem düzeyinde ayarlanabilen yönergeler, örneğin `disable_functions` veya `extension=` ile bir uzantı yüklemek, bir `.user.ini` dosyasında yok sayılır. Hata vermezler, sadece hiçbir şey yapmazlar, bu yüzden insanlar bunlar üzerinde bir öğleden sonralarını harcarlar.

**Panel yalnızca basit anahtarları geri okur.** İçinde nokta bulunan yönergeler, örneğin `opcache.enable` veya `date.timezone`, PHP tarafından dikkate alınır ama panel formunda görünmez. Birini elle ayarlar ve daha sonra panel üzerinden bir şey değiştirirseniz, ardından dosyayı kontrol edin.

> **Warning:** KapsuleHost web hosting nginx çalıştırır, Apache değil. `.htaccess` dosyaları kimse tarafından okunmaz. Bir `.htaccess` dosyasına konulan PHP yönergeleri, örneğin `php_value memory_limit`, burada kesinlikle hiçbir şey yapmaz. Bunun yerine `.user.ini` kullanın veya paneli kullanın. Bkz. [WordPress ve .htaccess](https://support.kapsulehost.com/tr-tr/wordpress-htaccess).

## Hangi Uzantılar Mevcut

Standart yapı geniş kapsamlıdır ve WordPress, WooCommerce ile çoğu PHP uygulamasının ihtiyaç duyduğu her şeyi içerir.

**Veritabanları**: `mysqli`, `pdo_mysql`, `sqlite3`, `pdo_sqlite`
**Görseller**: `gd`, `imagick`, `exif`
**Önbellekleme**: `Zend OPcache`, `redis`, `memcached`
**Metin ve yerel ayar**: `mbstring`, `iconv`, `intl`, `gettext`, `ctype`
**XML ve veri**: `dom`, `simplexml`, `xml`, `xmlreader`, `xmlwriter`, `xsl`, `json`
**Ağ**: `curl`, `soap`, `sockets`, `ftp`, `openssl`
**Matematik ve şifreleme**: `bcmath`, `sodium`, `hash`, `random`
**Dosyalar ve sistem**: `fileinfo`, `zip`, `zlib`, `phar`, `posix`, `pcntl`, `shmop`, `calendar`, `tokenizer`

Bilinmesi gereken bir sürüm farkı: `imap` uzantısı 8.3 ve önceki sürümlerde mevcuttur ama 8.4'te yoktur, çünkü bu sürümde PHP'nin kendisinden kaldırılmıştır. Hâlâ buna ihtiyaç duyan bir uygulamanız varsa, 8.3'te kalın veya o uygulamayı modern bir e-posta kütüphanesine taşıyın.

**Kurulu olmayanlar**: PostgreSQL sürücüleri, MongoDB, Xdebug, `mcrypt` ve ionCube ile SourceGuardian gibi ticari kod yükleyiciler.

Uzantıları panelden kendiniz etkinleştiremez veya devre dışı bırakamazsınız. Uygulamanızın listede olmayan bir şeye ihtiyacı varsa, bir destek talebi açın ve ne çalıştırdığınızı açıklayın. Eklenip eklenemeyeceği uzantıya bağlıdır. Bkz. [Destek Talebi Açma](https://support.kapsulehost.com/tr-tr/opening-a-support-ticket).

## Gerçekte Neyin Yüklü Olduğunu Kontrol Etme

Tahmin etmek yerine:

- **WordPress'te**: Araçlar, ardından Site Sağlığı, ardından Bilgi, ardından Sunucu. PHP sürümünü ve ilgili sınırları listeler.
- **SSH üzerinden**: sürüm için `php -v` ve yüklü uzantılar için `php -m`. Bkz. [SSH Anahtarları Ekleme](https://support.kapsulehost.com/tr-tr/adding-ssh-keys).

> **Warning:** Web kök dizininizde bir `phpinfo()` dosyası bırakmayın. Bu dosya, yollarınızı, uzantılarınızı ve yapılandırmanızı onu bulan herkese açık hale getirir ve otomatik tarayıcılar tam olarak bu dosya adını arar. Bir şeyi kontrol etmek için bir tane oluşturursanız, hemen ardından silin.

## İlgili Rehberler

- [PHP Sürümünü Değiştirme](https://support.kapsulehost.com/tr-tr/changing-php-version)
- [WordPress Bellek Sınırı](https://support.kapsulehost.com/tr-tr/wordpress-memory-limit)
- [Hata Günlükleri](https://support.kapsulehost.com/tr-tr/error-logs)
- [HTTP Hata Kodları](https://support.kapsulehost.com/tr-tr/http-error-codes)
- [Site Yavaşlığı ve Kaynak Sınırları](https://support.kapsulehost.com/tr-tr/site-slow-resource-limits)
- [WordPress ve .htaccess](https://support.kapsulehost.com/tr-tr/wordpress-htaccess)
- [Barındırma Terimler Sözlüğü](https://support.kapsulehost.com/tr-tr/glossary)
