learn

رفع خطای Missing MySQL Extension وردپرس؛ بررسی mysqli و نسخه PHP

علت خطای Missing MySQL Extension وردپرس را تشخیص دهید؛ فعال‌بودن mysqli در PHP وب‌سرور، نسخه هسته و تفاوت محیط CLI و FPM را کنترل کنید.

پیام نبود افزونه MySQL در وردپرس معمولاً یعنی محیط PHP لازم برای اتصال به دیتابیس کامل نیست، یا هسته بسیار قدیمی با PHP فعلی سازگار نیست. این پیام با «خطا در برقراری ارتباط با پایگاه داده» یکی نیست. پیش از تغییر رمز دیتابیس، نسخه وردپرس، نسخه PHP دامنه و فعال‌بودن mysqli در همان محیط وب را بررسی کنید.

ابتدا تغییر اخیر را مشخص کنید

اگر خطا بعد از تغییر PHP، انتقال هاست یا جایگزینی هسته شروع شده، همان تغییر نقطه شروع بررسی است. اطلاعات نسخه و نام دامنه را ثبت کنید؛ کل فایل wp-config.php را برای دیگران ارسال نکنید. در صورت دسترسی به پیشخوان، اطلاعات سلامت سایت را ببینید و با تنظیم PHP دامنه در پنل هاست تطبیق دهید.

mysql قدیمی با mysqli فرق دارد

افزونه قدیمی ext/mysql در PHP جدید وجود ندارد. برای رفع مشکل نباید PHP را به نسخه منقضی کاهش داد یا دنبال فعال‌کردن تابع قدیمی mysql_connect رفت. ابتدا هسته وردپرس و کد وابسته را روی نسخه سازگار و تحت نگهداری قرار دهید. در محیط PHP مدرن، پشتیبانی MySQLi و درایور مرتبط باید برای اجرای واقعی سایت موجود باشد.

بررسی در هاست اشتراکی

  1. نسخه PHP انتخاب‌شده برای همان دامنه را پیدا کنید؛ تنظیم دامنه دیگر ملاک نیست.
  2. در ابزار مدیریت extensionها، وجود mysqli یا بسته معادل ارائه‌شده توسط میزبان را بررسی کنید. اگر ابزار انتخاب نسخه با پشته FPM هاست هماهنگ نیست، از پشتیبانی بخواهید تنظیم مؤثر را تأیید کند.
  3. پس از تغییر، همان URL خطادار را دوباره باز کنید و نتیجه را در یک مرورگر خارج از نشست مدیریت ببینید.

بررسی روی سرور Ubuntu با PHP 8.3

این مثال فقط برای PHP 8.3 نصب‌شده از بسته‌های سازگار همان سیستم است. ابتدا وجود بسته و پشته فعال را کنترل کنید؛ دستورهای آن را به cPanel یا نسخه PHP دیگر تعمیم ندهید.

php --version
php --ri mysqli
apt-cache policy php8.3-mysql

در صورت نبود بسته و تأیید سازگاری مخزن، نصب و راه‌اندازی مجدد FPM متناظر به این صورت است:

sudo apt install php8.3-mysql
sudo systemctl restart php8.3-fpm

خروجی CLI کافی نیست؛ Nginx یا Apache باید درخواست دامنه را به همین FPM بفرستد. برای Apache با mod_php، روش اعمال تغییر متفاوت است. تغییر را با مدیر پشته هماهنگ کنید.

کنترل نتیجه و مواردی که نباید انجام داد

  • اگر هسته بسیار قدیمی است، بکاپ بگیرید و ارتقای سازگار را ابتدا روی کپی آزمایشی انجام دهید.
  • فایل phpinfo عمومی یا لاگ دارای رمز و مسیر حساس را پس از عیب‌یابی باقی نگذارید.
  • اگر mysqli فعال است اما اتصال هنوز شکست می‌خورد، مسیر عیب‌یابی حساب، host و سرویس دیتابیس را دنبال کنید؛ تغییر extension لزوماً خطای اتصال را رفع نمی‌کند.

مطالعه مرتبط

منابع و مستندات

بازبینی محتوا و منابع: ۲۶ مهر ۱۴۰۵. دستورهای نمونه برای محیط مشخص‌شده‌اند؛ پیش از استفاده روی سرویس عملیاتی، سازگاری محیط و نسخه پشتیبان را بررسی کنید.

مطالب مرتبط

ارسال نظر

فهرست مطالب