Yönetici panelinde "Desteklenen PHP uzantısı yok" uyarısı mı alıyorsunuz? SQLite3/PDO_SQLite hatalarını 1 dakikada çözün.

SQLite veritabanını açarken yönetici "Desteklenen PHP uzantıları yok (SQLite3, PDO_SQLite)" mesajını gösterdiğinde ne yapılmalı? Bu makale, php.ini dosyasını değiştirme ve pdo_sqlite ile sqlite3 uzantılarını yükleme ve etkinleştirme konusunda adım adım bir kılavuz sunmaktadır. Servisi yeniden başlatmak hemen etkili olacaktır. 1 dakikada kolayca sorun giderme!

Son birkaç gündür bir şey üzerinde çalışıyorum ve o kadar sinir bozucu ki neredeyse varoluşumu sorgulamaya başladım.

buradayımHestiaCPHafif bir veritabanı yönetim aracı olan Adminer'ı kurdum ve SQLite veritabanımı yönetmek için kullanmak istedim. Ancak sayfayı açtığımda, kırmızı renkte "Desteklenen PHP uzantıları mevcut değil (SQLite3, PDO_SQLite)" yazan bir açılır pencere mesajı belirdi.

Yönetici panelinde "Desteklenen PHP uzantısı yok" uyarısı mı alıyorsunuz? SQLite3/PDO_SQLite hatalarını 1 dakikada çözün.

Şok oldum.

Bu ne anlama geliyor? SQLite kurulu ve PHP çalışıyor. Uzantı neden kullanılamıyor?

Dürüst olmak gerekirse, başlangıçta bunun Admin'in kendisiyle ilgili bir sorun olduğunu düşündüm, bu yüzden servisi birkaç kez yeniden başlattım ve hatta yeniden yükledim, ancak sorun devam etti. Daha sonra, bunun Admin ile hiçbir ilgisi olmadığını fark ettim; sorun, birçok acemi kullanıcının düştüğü yaygın bir hatadan kaynaklanıyordu.

HestiaCP'nin çok sürümlü PHP mekanizmasından kaynaklanan uzantı sorunları

HestiaCP, aynı anda çalışan birden fazla PHP sürümünü destekler.

Bu, sunucunuza aynı anda PHP 7.4, 8.0, 8.1, 8.2 ve 8.3 sürümlerini kurabileceğiniz ve farklı web sitelerinin farklı PHP sürümlerine bağlanabileceği anlamına gelir. Oldukça gelişmiş görünüyor, değil mi? Ama işte sorun: doğrudan şunu yazdığınızda...php -mModülü kontrol ettiğinizde, sistemin varsayılan PHP sürümünü kullanır; bu sürüm, web sitenize bağlı olan sürümden tamamen farklı olabilir.

Uzun süre araştırdım ve web sitemin PHP 8.2'ye bağlı olduğunu, ancak terminalin 8.1 gösterdiğini buldum. SQLite modülünü bulamamamın nedeni de buymuş.

Bu his çok saçma. Sanki bir restorana yemek sipariş etmeye gidiyorsunuz ve garson size yemeğin mevcut olmadığını söylüyor. Ama aslında yemek mevcut değilmiş, yanlış kişiye gelmişsiniz. İşin yürümesi için mutfakla konuşmanız gerekiyor.

Bir web sitesinin kullandığı PHP sürümünü nasıl belirleyebilirim?

Çözüm basit: Öncelikle web sitenizin hangi PHP sürümünü kullandığını bulmanız ve ardından ilgili eklentileri yüklemeniz gerekiyor.

İlk adım, sitenizin hangi PHP sürümünü kullandığını belirlemektir.

HestiaCP yönetim paneline giriş yapın, web sayfasına gidin, Admin'i kurduğunuz etki alanını bulun, düzenle'ye tıklayın ve Web Sunucusu PHP Sürümü alanına bakın. Orada gösterilen sayı doğru olanıdır. 8.1, 8.2 veya 8.3 olabilir; önce bu sayıyı doğrulamanız gerekir.

Birçok kişi bunun önemsiz olduğunu düşünerek bu adımı atlıyor, çünkü her şey zaten PHP ile ilgili. Ancak gerçekten önemli; sürüm numaraları eşleşmiyorsa, daha fazla eklenti yüklemek yardımcı olmaz.

SQLite eklentisinin ilgili sürümünü yükleyin.

İkinci adım, SQLite eklentisinin ilgili sürümünü yüklemektir.

Sürüm numarasını öğrendikten sonra, sistem paket yöneticinizi kullanarak doğrudan kurabilirsiniz. Sitenizin PHP 8.2 kullandığını varsayarsak:

apt update
apt install php8.2-sqlite3 -y

Siteniz 8.1 veya 8.3 sürümünü kullanıyorsa, sadece sürüm numarasını değiştirmeniz yeterlidir.

Dürüst olmak gerekirse, hangi sürüme sahip olduğumdan emin değildim, bu yüzden en yaygın olanları yükledim:

apt install php8.1-sqlite3 php8.2-sqlite3 php8.3-sqlite3 -y

Bu sayede her sürümü kapsayabilir, zamandan ve emekten tasarruf etmenizi sağlar.

Eklentinin etkili olması için PHP-FPM hizmetini yeniden başlatın.

Üçüncü adım, PHP-FPM hizmetini yeniden başlatmaktır.

Bu, birçok kişinin gözden kaçırdığı bir adımdır. Eklentiyi yükledikten hemen sonra sayfayı yenilerler, ancak yine de bir hata alırlar. Sorun eklentinin yüklenmemiş olması değil; ilgili PHP-FPM işlemini yeniden başlatmamış olmanız ve yeni yüklenen eklentinin henüz yüklenmemiş olmasıdır.

Yeniden başlatma komutu:

systemctl restart php8.2-fpm
systemctl restart nginx

Sürüm numarasını gerçek durumunuza göre değiştirebilirsiniz.

SQLite eklentisinin başarıyla yüklendiğini doğrulayın.

Dördüncü adım ise bunu doğrulamaktır.

Kontrol etmek istediğiniz belirli bir PHP sürüm yolunu belirtebilirsiniz:

php8.2 -m | grep -i sqlite

Çıktı şunları içeriyorsa:pdo_sqliteveyasqlite3Bu, kurulumun başarılı olduğu anlamına gelir. Şimdi, tarayıcınızdaki Yönetici sayfasını yenileyin; kırmızı uyarı mesajı kaybolmalıdır.

İşte böylece adım adım çözdüm; başlangıçta "Bu nedir?" diye düşündüm, sonra "Ha, anladım" dedim ve yol boyunca epey dolambaçlı yollardan geçtim. Asıl sorun, HestiaCP'nin çok sürümlü PHP tasarımının gerçekten de tuzaklara açık olmasıydı; mantığına aşina değilseniz, ilk adımdan itibaren yanlış yola sapmak çok kolaydı.

Bazıları, HestiaCP'yi neden bu kadar karmaşık hale getirdiğimizi sorabilir? Tek bir, birleşik PHP sürümü kullanamaz mıydık? Tasarım mantıklı; farklı web siteleri farklı PHP özelliklerine bağlı olabilir ve tek tip bir sürümü zorlamak uyumluluk sorunlarına yol açabilir. Ancak bu mekanizma yeni başlayanlar için gerçekten çok kullanıcı dostu değil ve dokümantasyonda da özellikle vurgulanmıyor.

Kendi deneyimime göre, HestiaCP gibi paneller kullanırken öncelikle web sitenizin hangi PHP sürümüne bağlı olduğunu belirleme alışkanlığını edinmelisiniz. Eklentileri yüklerken, yapılandırmaları değiştirirken veya sorun giderme yaparken, bu sürüm numarası en önemli başlangıç ​​noktasıdır. Çoğu zaman, belirli bir hizmetle ilgili sorun olduğunu düşündüğünüz şey aslında sadece bir sürüm uyumsuzluğudur.

Bu hissi nasıl tarif edebilirim? Arabanızı tamir ettirmek için tamirciye götürüyorsunuz ve tamirci parçanın olmadığını söylüyor. Meğerse parça varmış, ama yanlış tamirhaneye gitmişsiniz ve yan taraftaki tamirhaneye gitmeniz gerekiyormuş. Biraz saçma geliyor ama gerçekten de durum böyle.

Tamam, HestiaCP'deki Yönetici hatasını çözme konusundaki deneyimimi burada paylaşıyorum. Umarım aynı sorunla karşılaşırsanız size yardımcı olur.

发表 评论

E-posta adresiniz yayımlanmayacaktır. 必填 项 已 用 * 标注

Makale Rehberi
En gidin