اذهب إلى المحتوى

السؤال

نشر

السلام عليكم،

أحاول رفع تطبيق ويب مبني باستخدام Laravel + React ولم أستطع ذلك.
يظهر لي أن بعض الـ extensions غير موجودة:

Error: Class "DOMDocument" not found

Error: Class "PDO" not found

لكنها مفعّلة في PHP Select Version.

أنا مبتدئ في عملية الـ deployment وأحتاج إلى مساعدة عاجلة.
العميل ينتظر منذ يومين.

بارك الله فيكم.

Screenshot 2026-02-23 102415.png

Screenshot 2026-02-23 102516.png

Recommended Posts

  • 0
نشر

وعليكم السلام 
 واضح من الصور أن إضافتي pdo و dom غير مفعّلتين فعليًا على نفس إصدار PHP الذي يعمل به الموقع — حتى لو ظهرت مفعّلة في Select PHP Version.
الحل  (في cPanel)
1- تأكد أن الدومين يستخدم نفس إصدار PHP
ادخل إلى:
MultiPHP Manager
وتأكد أن الدومين مربوط بنفس الإصدار الذي فعلت فيه الـ extensions (مثلاً 8.1 أو 8.2).
أحيانًا يتم تفعيل الإضافات في 8.2 بينما الدومين يعمل على 8.1.
2- فعّل الإضافات المطلوبة تحديدًا
في Select PHP Version → Extensions تأكد من تفعيل:
pdo و pdo_mysql (مهم جدًا للارافيل)
 و dom و mbstring و fileinfo و openssl
ثم اضغط Save.
د تشغيل PHP 
من داخل Select PHP Version:
اضغط Reset to default
3- ثم أعد تفعيل الإضافات مرة أخرى
ثم احفظ
أو غيّر إصدار PHP مؤقتًا ثم أعده كما كان.
4- تأكد أن public_html يشير إلى مجلد public
في Laravel يجب أن يكون

public_html → محتوى مجلد public
أو يكون:

Document Root = project/public

بالتوفيق

  • 0
نشر

السلام عليكم ورحمة الله.

المشكلة التي تواجهها ليست في تفعيل الإضافات من واجهة cPanel فحسب، بل في أن PHP المستخدمة فعليا من سطر الأوامر (CLI) قد تكون نسخة مختلفة عن النسخة المفعَّلة في PHP Selector لذا لحل المشكلة أرجو اتباع الخطوات التالية أولا تحقق من أن الإضافتين pdo_mysql وdom مفعَّلتان في نفس نسخة PHP 8.4 التي اخترتها ومن الصورة الأولى يبدو أن pdo_mysql مفعَّلة لكن dom قد لا تكون كذلك، فابحث عنها وفعِّلها.

ثانيا بعد التفعيل،اضغط Save ثم نفِّذ من سطر الأوامر:

php -m | grep -E "pdo|dom"

للتأكد من أن الإضافات محمَّلة فعليا في PHP CLI وإن استمرت المشكلة، تواصل مع دعم الاستضافة لأن بعض بيئات cPanel تتطلب تدخلا من جانبهم لتطبيق الإضافات على CLI.

بالتوفيق إن شاء الله.

  • 0
نشر

الاستضافة لديك تحتوي على على نسختين أو مسارين لـ PHP يعملان في نفس الوقت، وهما نسخة خاصة بالمتصفح والتي قمت بضبطها بنجاح واختيار الإصدار 8.4 وتفعيل الإضافات عليها، وذلك هو الإصدار الخاص بالخادم الذي يستضيف موقعك.

ويوجد نسخة خاصة بسطر الأوامر Terminal/CLI وهي النسخة الافتراضية للسيرفر ولديك بإصدار قديم غير مفعل فيه إضافات مثل PDO و DOM.

لذا يظهر لك خطأ أثناء كتابة أوامر مثل composer install أو php artisan داخل الـ Terminal الخاص بـ cPanel أو عبر الـ SSH، فالسيرفر يستخدم النسخة القديمة.

بالتالي بدلاً من كتابة أمر php العادي، يجب أن تخبر السيرفر بالمسار للإصدار 8.4. جرب تنفيذ الأوامر كالتالي:

/opt/alt/php84/usr/bin/php /opt/cpanel/composer/bin/composer install

و:

/opt/alt/php84/usr/bin/php artisan migrate

وإن لم يعمل مسار /opt/alt/php84/، جرب استخدام /usr/local/bin/ea-php84، فذلك يختلف قليلاً حسب إعدادات شركة الاستضافة.

وفي حال الخطأ يظهر في المتصفح عند فتح رابط الموقع كزائر، فيعني أن إعدادات النطاق Domain تتجاهل النسخة التي قمت بإعدادها، فتوجه إلى لوحة تحكم cPanel الرئيسية.

وابحث عن أداة MultiPHP Manager، ثم تفقد اسم النطاق الخاص بك في القائمة وضع علامة صح بجانبه.

ثم من القائمة المنسدلة في الأعلى أو اليمين، اختر إصدار PHP ليكون alt-php84 أو ea-php84، ثم اضغط على Apply.

  • 0
نشر

إن هذه المشكلة شائعة جدا عند رفع تطبيقات Laravel على بيئة استضافة cPanel وتحديدا التي تستخدم CloudLinux) وحلها بسيط لا تقلق.

سبب المشكلة هو الإضافات (Extensions) التي قمت بتفعيلها في صفحة "Select PHP Version" مثل pdo و dom حيث تطبق بنجاح على خادم الويب أي عند تصفح الموقع عبر المتصفح ولكن، أوامر الرفع وقواعد البيانات مثل php artisan migrate تعمل عبر سطر الأوامر (CLI) وسطر الأوامر في الاستضافة غالبا ما يستخدم إصدار PHP افتراضي مختلف عن الذي اخترته وهذا الإصدار الافتراضي غير مفعلة فيه هذه الإضافات.

ولحل هذه المشكلة لديك خياران بناء على طريقة تنفيذك للأوامر:

الخيار الأول هو استخدام المسار الكامل ل PHP وه الطريقة الأسرع :

فإذا كنت تنفذ أوامر artisan عبر ال Terminal في cPanel أو عبر اتصال SSH لا تستخدم كلمة php فقط بدلا من ذلك استخدم المسار المباشر لإصدار PHP 8.4 الذي قمت بإعداده وبما أن استضافتك تستخدم CloudLinux قم بتشغيل الأوامر بهذا الشكل:

/opt/alt/php84/usr/bin/php artisan migrate

والخيار الثاني وهو تغيير إصدار PHP الافتراضي لسطر الأوامر (CLI) فإذا كنت لا ترغب بكتابة المسار الطويل في كل مرة يمكنك إجبار ال Terminal على استخدام إصدار PHP 8.4 بشكل دائم.

قم بفتح الـ Terminal من cPanel وقم بتنفيذ هذا الأمر لربط كلمة php بالإصدار المطلوب (Alias):

echo "alias php='/opt/alt/php84/usr/bin/php'" >> ~/.bashrc

ثم قم بتحديث الإعدادات بهذا الأمر:

source ~/.bashrc

الآن يمكنك كتابة الأوامر بشكل طبيعي php artisan migrate وستعمل بدون أخطاء

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...