CWP Internal PHP 7.1'de "PHP Başlangıcı: 'intl' Dinamik Kütüphanesi Yüklenemiyor" Hatasının Giderilmesi (Roundcube Spoofchecker Hatası) - ZirveSunucum Information
Giriş Yap
Müşteri Paneli
Giriş Yap
Kayıt Ol

CWP Internal PHP 7.1'de "PHP Başlangıcı: 'intl' Dinamik Kütüphanesi Yüklenemiyor" Hatasının Giderilmesi (Roundcube Spoofchecker Hatası)

CWP İç PHP 7.1 “intl” Hatası ve Roundcube “Spoofchecker Bulunamadı” Sorunu Çözümü (ICU 50 Fix)

AlmaLinux 8 üzerinde CWP (CentOS Web Panel) kullanırken karşılaşılan “PHP Startup: Unable to load dynamic library 'intl'” hatası ve Roundcube üzerinde görülen “Class 'Spoofchecker' not found” hatasının çözümü.

Bu hata, CWP’nin dahili PHP 7.1 sürümünün intl eklentisini yükleyememesinden kaynaklanır. Nedeni ise intl.so dosyasının ICU 50 kütüphaneleri ile derlenmiş olması, ancak sistemde yalnızca ICU 60/69 bulunmasıdır.

 

1. CWP’nin dahili PHP sürümünü kontrol edin

/usr/local/cwp/php71/bin/php -v

CWP paneli PHP 8.3 gösterse bile Roundcube ve cron görevleri genellikle PHP 7.1 ile çalışır.

 

2. intl eklentisinin yüklenip yüklenmediğini kontrol edin

/usr/local/cwp/php71/bin/php -m | grep intl

Eğer aşağıdaki gibi bir uyarı görüyorsanız sorun kesindir:

PHP Warning: PHP Startup: Unable to load dynamic library 'intl' ... (libicui18n.so.50: cannot open shared object file)

 

3. Roundcube hata kaydını kontrol edin

tail -n 50 /usr/local/cwpsrv/var/services/roundcube/logs/errors.log

Şu hata görünür:

PHP Fatal error: Uncaught Error: Class 'Spoofchecker' not found

Bu sınıf intl eklentisinin parçasıdır, yani intl yüklenmediği için Roundcube çöker.

 

4. intl.so dosyasının ICU 50 bağımlılıklarını doğrulayın

ldd /usr/local/cwp/php71/lib/php/extensions/no-debug-non-zts-20170718/intl.so
libicui18n.so.50 => not found
libicuuc.so.50 => not found
libicudata.so.50 => not found
libicuio.so.50 => not found
libicutest.so.50 => not found
libicutu.so.50 => not found

Bu, intl.so’nun çalışması için sistemde ICU 50 kütüphanelerinin bulunması gerektiğini gösterir.

 

5. Sistemde mevcut ICU sürümlerini kontrol edin

ls -l /usr/lib64 | grep libicu

Eğer yalnızca ICU 60 veya ICU 69 görüyorsanız, intl.so yüklenemez.

 

6. Çözüm: ICU 50 uyumluluk paketini yükleyin (Ana Fix)

Bu işlem intl.so’nun ihtiyaç duyduğu tüm ICU 50 kütüphanelerini sisteme ekler.

sudo dnf install libicu50 -y

 

7. CWP servislerini yeniden başlatın

systemctl restart cwpsrv
systemctl restart cwp-phpfpm

 

8. intl eklentisinin artık yüklendiğini doğrulayın

/usr/local/cwp/php71/bin/php -m | grep intl

Çıktıda intl görünüyorsa sorun çözülmüştür.

 

9. Roundcube’ü tekrar test edin

tail -n 50 /usr/local/cwpsrv/var/services/roundcube/logs/errors.log

“Class 'Spoofchecker' not found” hatası artık görünmeyecektir.

 

Özet

CWP’nin dahili PHP 7.1 sürümü intl eklentisini ICU 50 ile derlediği için, sistemde ICU 50 bulunmadığında intl yüklenemez ve Roundcube çöker. libicu50 paketini yüklemek tüm bağımlılıkları sağlar ve sorun tamamen çözülür.