یکی از مشکلات معمول هنگام نصب وردپرس روی یک VPS (سرور مجازی لینوکس) جدید، ارور Your PHP installation appears to be missing the MySQL extension است. این مشکل زمانی بوجود میآید که MySQL extension در سیستم عامل موجود نباشد. این extension به طور پیشفرض در خیلی از سیستم عاملها موجود نیست.
اگر شما در حین کارتان به این ارور برخوردید، نگران نباشید. دلایل مختلفی برای نمایش این ارور وجود دارد. بسیاری از کاربران وردپرس با این مشکل مواجهاند.
در این آموزش به بررسی 5 راهکار ساده برای رفع این خطا میپردازیم. با رعایت کردن نکات این آموزش، میتوانید به راحتی این ارور را رفع کنید.
۵ راهکار برای رفع این خطا
همانطور که در بالا گفته شد در این مقاله برای رفع ارور Your PHP installation appears to be missing the MySQL extension 5 راهکار ساده را بررسی میکنیم. با بررسی تک به تک این روشها همراه باشید.
1.PHP MySQL extension را بررسی و نصب کنید
ماژول PHP MySQL extensionبه طور پیشفرض در سیستم عاملها موجود نیست. PHP از این ماژول برای ارتباط با دستورات SQL و گرفتن پاسخ از MySQL استفاده میکند.
برای بررسی نصب PHP MySQL extension باید یک فایل info.php ایجاد کنیم.
برای این کار notepad++ یا هر برنامه دیگری را که استفاده میکنید باز کنید. کد زیر را در آن وارد کنید و به نام info.php آن را ذخیره کنید:
<?
phpinfo();
?>
فایلی که ذخیره کردید را در root سرور خود آپلود کنید.
برای بررسی جزئیات نصب PHP آدرس http://www.yourdomainname.com/info.php را در مرورگر خود وارد کنید.
به بخش MySQL Support بروید. در صورتی که MySQL را نصب کرده باشید، ورژن آن در کنار Client API version نمایش داده میشود. در صورتی که نصب نکردهاید، مراحل زیر را طی کنید:
نصب MySQL PHP روی سرورهای سازگار با RedHat یا اوبونتو(Ubuntu)
بر اساس نسخه PHP خود، دستورات زیر را اجرا کنید. اجرای این دستورات در صورتی امکانپذیر است که از سرور سازگار با RedHat استفاده میکنید.
نسخه 5 :
# yum update
# yum install php-mysql
نسخه 7 :
# yum update
# yum install php70w-mysql
آپاچی یا سرویس PHP-FPM را مجددا راهاندازی کنید.
برای رفع ارور Your PHP installation appears to be missing the MySQL extension در سرورهای ابونتو دستورات زیر را اجرا کنید. دستورات بسته به نسخهی PHP متفاوت است:
نسخه 5 :
# apt-get update
# apt-get install php5-mysqlnd
نسخه 7 :
# apt-get update
# apt-get install php7.0-mysql
سرور را مجددا راهاندازی و رفع ارور را بررسی کنید.
2. پیکر بندی MySQL extension directory را بررسی کنید
گاهی با انجام مراحل بالا همچنان ارور Your PHP installation appears to be missing the MySQL extension را دریافت میکنید. این مشکل زمانی پیش میآید که پیکربندی MySQL extension directory را به درستی انجام نداده باشید. این مشکل در هنگام انتقال سایتهای وردپرسی یا استفاده از VPSهای جدید به وجود میآید. برای حل این مشکل باید مقدار را “extension_dir” در فایل PHP.ini بررسی کنید.
فایل info.php که در مرحله قبل ذخیره کردید را در مرورگر خود باز کنید. به دنبال پارامتر “Loaded Configuration File” باشید. مسیری که در جلوی این پارامتر است را جایی یادداشت کنید. به مثال زیر توجه کنید:
حال در بخش “extension_dir” ، کنترل کنید که مسیر PHP extension درستی داشته باشد یا اینکه خالی نباشد. مانند مثال زیر:
مقادیر پارامتر “Loaded Configuration File” و “extension_dir” را با هم مقایسه کنید. در صورتی که مقادیر “extension_dir” با مسیری که نسخه PHP در آن نصب شده همخوانی ندارد آن را اصلاح کنید. برای این کار مقدار صحیح را در فایل PHP.ini وارد کنید.
3. بررسی کنید که فایلهای MySQL.so و MySQL.DLL سر جای خود باشند.
فایل php.ini در برخی وبسایتها به صورت سفارشی پیکربندی شده است. این فایلها هنگام ارتقای PHP یا انتقال به سرورهای دیگر بهروزرسانی نمیشوند. از طرفی در این نوع از فایلها امکان تایپ اشتباه مسیرهای extension directory وجود دارد.
بهترین راه برای حل این مشکل، حذف خطوط زیر (تبدیل خطوط زیر به کامنت) در فایل php.ini است:
; extension=mysql.so
; extension_dir=/path/to/extensions/
4. پکیجهای php-mysqlnd-ms را در سرورهای ابونتو بررسی کنید
ارور Your PHP installation appears to be missing the MySQL extension در نسخههای جدیدتر سیستم عاملهای ابونتو هم بوجود میآید. علت این امر استفاده از درایورهای بومی MySQL به جای استفاده از کتابخانههای قدیمی PHP است. نصب پکیج php5-mysqlnd-ms سبب رفع این خطا میشود. برای این منظور دستور زیر را اجرا کنید:
# apt-get install php5-mysqlnd-ms
برای بررسی همهی پکیجها که شامل mysql هم باشد، دستور زیر را اجرا کنید:
(سرورهای ابونتو):
apt-cache search mysql
(سرورهای سازگار با RedHat):
yum search mysql
5. پیکربندی PHP را از طریق suPHP_CinfigPath بررسی کنید
فایلهای PHP که به صورت سفارشی پیکربندی شدهاند، از طریق suPHP_CinfigPath بارگذاری میشوند. البته این امکان زمانی فراهم است که در یک سرور، suPHP فعال باشد.
در صورتی که این فایلها در .htaccess پیکربندی یک سایت تعریف شده باشد میتوان خطای ایجاد شده را رفع کرد. این خطا به دلیل ورود مقادیری است که با ورودیهای MySQL extensions ناسازگار است. مخصوصا در سرورهای اشتراکی همچون Plesk و سیپنل و WHM به دلیل امکان Multi-PHP این ارور بیشتر به چشم میخورد.
برای رفع این خطا کافی است suPHP_ConfigPath را در .htaccess غیرفعال کنید (به کامنت تبدیل کنید). اگر ارور Your PHP installation appears to be missing the MySQL extension رفع شد باید فایل PHP.ini را بررسی کنید.
ورودیهایی که سبب این ناسازگاری میشود را در فایل PHP.ini اصلاح کنید.
جمع بندی
در این آموزش راههای رفع ارور Your PHP installation appears to be missing the MySQL extension بررسی کردیم.
آموختیم که این خطا معمولا بعد از ارتقا PHP و یا انتقال سایت به سرور دیگر اتفاق میاقتد.
با پنج راه ساده برای رفع این خطا آشنا شدیم. نحوهی ایجاد و پیکربندی فایل php.ini در رفع این ارور را بررسی کردیم. دانستیم که چطور پکیجهای مختلف را در سرورهای ابونتو یا سازگار با RedHat بررسی کنیم.
در پایان ذکر این نکته لازم است که تنها شما نیستید که با این ارور مواجه شدهاید. کافی است تا با بررسی مرحله به مرحلهی این آموزش، مشکل خود و ارور Your PHP installation appears to be missing the MySQL extension را رفع کنید.