استكشاف الأخطاء
ملحقات PHP والإعدادات
Which PHP versions and extensions KapsuleHost web hosting provides, which settings you can change yourself, and why a change can take up to five minutes to appear.
امتدادات PHP والإعدادات
إصدارات PHP والامتدادات التي توفرها KapsuleHost، والإعدادات التي يمكنك تغييرها بنفسك، وسبب احتياج التغيير إلى ما يصل إلى خمس دقائق لظهوره.
كل ما يتعلق بـ PHP لموقع ما يوجد في مكان واحد: Websites، انقر على الموقع، ثم Advanced، ثم PHP. تحتوي هذه الصفحة على محدد الإصدار والإعدادات التي يمكنك تغييرها ومشغل Composer وسجل أخطاء PHP.

اختيار إصدار PHP
أربعة إصدارات قابلة للاختيار: 8.4, 8.3, 8.2 و 8.1. المواقع الجديدة تستخدم افتراضياً الإصدار 8.3.
اختر أحدث إصدار يدعمه برنامجك بالفعل. PHP الأحدث أسرع بشكل ملحوظ ويتم دعمه بإصلاحات الأمان لفترة أطول. السبب في عدم الانتقال مباشرة إلى الأحدث هو التوافق: يمكن لإضافة قديمة أو جزء من كود مخصص مكتوب قبل سنوات أن تفشل تماماً على إصدار لم تختبر عليه مطلقاً.
لتغييره، حدد الإصدار وانقر على Apply Version. يصبح التغيير ساري المفعول فوراً، بدون الحاجة إلى إعادة تشغيل من جانبك وبدون أي توقف في الخدمة.
غيّر إصدار PHP على البيئة الاختبارية أولاً، تصفح الموقع، وبعدها فقط غيّره على الإنتاج. إن اضطررت إلى القيام به مباشرة، افعله عندما تكون بإمكانك المراقبة، واعلم أن العودة مرة أخرى هي نقرة واحدة فقط. انظر بيئات التدريج.
إذا كسر تغيير الإصدار الموقع، عد إلى الإصدار السابق واقرأ السجل. سيذكر الخطأ الملف الذي لم يتمكن من التشغيل. انظر تغيير إصدار PHP وسجلات الأخطاء.
الإعدادات التي يمكنك تغييرها
تعرض صفحة PHP خمسة إعدادات كقوائم منسدلة. هذه هي الإعدادات التي تسبب مشاكل بالفعل في الممارسة، ولهذا السبب يتم عرضها.
| الإعداد | الافتراضي | القيم المتاحة | ما يتحكم فيه |
|---|---|---|---|
memory_limit | 256M | 128M, 256M, 512M, 1024M, 2048M | كمية الذاكرة التي قد يستخدمها طلب واحد |
max_execution_time | 30 | 30, 60, 120, 300, 600 | عدد الثواني التي قد يعمل فيها طلب واحد |
upload_max_filesize | 64M | 16M, 32M, 64M, 128M, 256M | أكبر ملف واحد يمكن تحميله |
post_max_size | 65M | 17M, 33M, 65M, 129M, 257M | أكبر إجمالي لتقديم النموذج |
max_input_vars | 3000 | 1000, 3000, 5000, 10000 | عدد الحقول التي قد يحتويها التقديم الواحد |
أي واحد تريده:
- الرفع يفشل فوق حجم معين: ارفع
upload_max_filesize، وpost_max_sizeمعها. - نموذج كبير أو منشئ صفحات يفقد الحقول عند الحفظ: ارفع
max_input_vars. هذا غير مرئي ومزعج جداً، لأنه لا شيء يعطي خطأ. يتم تجاهل الحقول الإضافية بصمت. - صفحة تتوقف في منتصفها بدون خطأ: ارفع
memory_limit. انظر حد ذاكرة WordPress. - استيراد أو تصدير طويل ينتهي المهلة الزمنية: ارفع
max_execution_time، وفكر في تشغيل المهمة من سطر الأوامر بدلاً من ذلك. انظر WP-CLI.
post_max_size يجب أن يكون أكبر من upload_max_filesize، لأن الرفع ينتقل داخل المنشور. إذا اخترت مزيجاً حيث لا يكون كذلك، تصحح المنصة post_max_size لك. هذا هو السبب في أنك قد ترى قيمة لم تخترها.
لماذا يستغرق التغيير ما يصل إلى خمس دقائق
هذا هو الالتباس الأكثر شيوعاً على هذه الصفحة، لذا يستحق أن نكون دقيقين.
يتم كتابة إعداداتك في ملف .user.ini في جذر المستند بموقعك. يقرأ PHP هذا الملف ثم يخزنه مؤقتاً لمدة 300 ثانية، وهو خمس دقائق. حتى ينتهي هذا الخزن المؤقت، يستمر PHP في استخدام القيم السابقة.
إذاً بعد حفظ تغيير:
- ستظل الصفحة تبلغ عن الحد القديم لمدة تصل إلى خمس دقائق.
phpinfo()سيبلغ عن الحد القديم لمدة تصل إلى خمس دقائق.- لا تساعد إعادة التحميل الصعبة. ولا يساعد مسح ذاكرة تخزين المتصفح لديك.
- لا تحتاج إلى إعادة تشغيل أي شيء، وليس بإمكانك القيام بذلك. فقط انتظر.
إذا مرت أكثر من خمس دقائق ولم تتغير القيمة، فهناك خطأ ما حقيقي وقد يستحق تذكرة.
تحرير .user.ini بنفسك
يمكنك تحرير .user.ini مباشرة عبر SFTP أو SSH إذا فضلت، أو إذا كنت بحاجة إلى توجيه لا تعرضه اللوحة. يوجد في جذر المستند بموقعك. انظر وصول SFTP.
الصيغة هي توجيه واحد في كل سطر:
memory_limit = 512M
max_execution_time = 120
حدان مهمان على ما يمكن لـ .user.ini أن يفعله:
يعمل فقط للتوجيهات التي تسمح PHP بتعيينها لكل دليل أو لكل مستخدم. الخمسة أعلاه تستوفي جميع الشروط. التوجيهات التي يمكن تعيينها فقط على مستوى النظام، مثل disable_functions أو تحميل امتداد باستخدام extension=، يتم تجاهلها في ملف .user.ini. لن تحدث خطأ، ستفعل ببساطة لا شيء، وهذا هو السبب في أن الناس يقضون بعد الظهر عليها.
اللوحة تقرأ فقط المفاتيح البسيطة. التوجيهات التي تحتوي على نقطة، مثل opcache.enable أو date.timezone، يتم احترامها بواسطة PHP لكن لن تظهر في نموذج اللوحة. إذا عينت واحداً بنفسك وغيّرت شيئاً من خلال اللوحة لاحقاً، تحقق من الملف بعد ذلك.
استضافة Kapsule تشغل nginx، وليس Apache. ملفات .htaccess لا يقرأها أحد. توجيهات PHP الموضوعة في ملف .htaccess، مثل php_value memory_limit، لا تفعل شيئاً على الإطلاق هنا. استخدم .user.ini أو اللوحة بدلاً من ذلك. انظر WordPress و .htaccess.
الامتدادات المتاحة
البناء القياسي واسع ويتضمن كل شيء يطلبه WordPress و WooCommerce ومعظم تطبيقات PHP.
قواعد البيانات: mysqli, pdo_mysql, sqlite3, pdo_sqlite
الصور: gd, imagick, exif
التخزين المؤقت: Zend OPcache, redis, memcached
النصوص والإعدادات المحلية: mbstring, iconv, intl, gettext, ctype
XML والبيانات: dom, simplexml, xml, xmlreader, xmlwriter, xsl, json
الشبكة: curl, soap, sockets, ftp, openssl
الرياضيات والتشفير: bcmath, sodium, hash, random
الملفات والنظام: fileinfo, zip, zlib, phar, posix, pcntl, shmop, calendar, tokenizer
فرق في الإصدار يستحق المعرفة: امتداد imap موجود على 8.3 والإصدارات السابقة لكن ليس على 8.4، لأنه تم حذفه من PHP نفسه في هذا الإصدار. إذا كان لديك تطبيق يحتاج إليه، ابقَ على 8.3 أو انقل هذا التطبيق إلى مكتبة بريد حديثة.
غير مثبتة: برامج تشغيل PostgreSQL وMongoDB و Xdebug و mcrypt وأحمال الأكواد التجارية مثل ionCube و SourceGuardian.
لا يمكنك تفعيل أو تعطيل الامتدادات بنفسك من اللوحة. إذا كان تطبيقك بحاجة إلى شيء ليس في القائمة، افتح تذكرة واصف ما تقوم بتشغيله. ما إذا كان يمكن إضافته يعتمد على الامتداد. انظر فتح تذكرة دعم.
التحقق من ما تم تحميله فعلياً
بدلاً من التخمين:
- في WordPress: Tools، ثم Site Health، ثم Info، ثم Server. يسرد إصدار PHP والحدود ذات الصلة.
- عبر SSH:
php -vللإصدار وphp -mللامتدادات المحملة. انظر إضافة مفاتيح SSH.
لا تترك ملف phpinfo() في جذر الويب الخاص بك. يُنشر مساراتك وامتداداتك وإعداداتك لأي شخص يجدها، والماسحات الآلية تبحث عن هذا اسم الملف بالضبط. إذا أنشأت واحداً للتحقق من شيء ما، احذفه فوراً بعد ذلك.