Ubuntu'nun USN-9055-1 duyurusu PHP'nin pecl_http eklentisini konu alıyor. Bir sunucuda PHP kurulu olması, ilgili eklentinin o sitede yüklendiğini göstermez. Önce web isteğini karşılayan PHP ortamını belirle, ardından paketin nereden geldiğini bul. Ubuntu duyurusu
Terminalde hangi eklenti var?
php -r 'printf("%s %s http=%s\n", PHP_SAPI, PHP_VERSION, phpversion("http") ?: "off");'
php --ini
dpkg-query -W 'php*-http'
Burada eklentinin PHP içindeki adı http. php --ini, terminalde çalışan PHP'nin okuduğu yapılandırmayı gösterir. Kurulu paket listesi de dağıtım tarafından yönetilen olası paketleri bulmaya yardımcı olur. PECL ile elle kurulum veya konteyner imajı kullanıldığında paket listesi tek başına yeterli olmayabilir.
Web işçisinin gördüğü sürümü ölç
Aşağıdaki kısa kontrolü uygulamanın erişimi kısıtlı teşhis ortamında çalıştır. SAPI, PHP'nin isteği hangi çalışma biçimiyle karşıladığını belirtir. Örneğin PHP-FPM ile terminaldeki cli farklı yapılandırmalar okuyabilir.
<?php
echo json_encode([
'sapi' => PHP_SAPI,
'php' => PHP_VERSION,
'http' => phpversion('http') ?: null,
], JSON_THROW_ON_ERROR);
http alanı null ise o isteği karşılayan ortam eklentiyi yüklememiştir. Birden fazla site, işçi havuzu veya imaj varsa ilgili ortamların her birini ayrı kontrol et.
Yamayı eklentinin geldiği kanaldan al
Ubuntu paketi için duyurudaki tam paket revizyonunu, özel imaj için imajın güncelleme kaydını karşılaştır. Dağıtım yama taşıdığında eklentinin kendi sürüm çıktısı sabit kalabilir. Paket değişimi sonrasında doğru PHP işçilerinin yeni sürümle çalıştığını kontrol et ve eklentiyi kullanan normal uygulama isteğini yeniden dene.