# إضافات وإعدادات PHP

Source: https://support.kapsulehost.com/ar-ae/php-extensions-and-ini

أي إصدارات PHP وأي إضافات يوفرها استضافة KapsuleHost لمواقع WordPress وWooCommerce ومواقع PHP، وما الإعدادات التي يمكنك تغييرها بنفسك، ولماذا قد يستغرق ظهور التغيير حتى خمس دقائق.

المواقع الثابتة ومواقع Node.js وPython لا تُشغّل PHP. كل ما يتعلق بـ PHP لموقع ما موجود في مكان واحد: **المواقع**، انقر على الموقع، **الإعدادات**، ثم **PHP**. تحتوي هذه الصفحة على محدد الإصدار، والإعدادات التي يمكنك تغييرها، ومُشغّل Composer، وسجل أخطاء PHP.

![صفحة PHP لموقع في KPanel، مع محدد الإصدار والإعدادات التي يمكنك تغييرها](https://support.kapsulehost.com/help/screenshots/php-extensions-and-ini.2214ab47.webp)

## اختيار إصدار PHP

هناك أربعة إصدارات قابلة للاختيار: **8.4 و8.3 و8.2 و8.1**. تُستخدم المواقع الجديدة افتراضيًا الإصدار 8.3.

اختر أحدث إصدار يدعمه برنامجك فعليًا. إصدار PHP الأحدث أسرع بشكل ملموس ويُدعم بتصحيحات أمنية لمدة أطول. سبب عدم الانتقال مباشرة إلى الأحدث هو التوافق: إضافة قديمة أو جزء من كود مخصص كُتب منذ سنوات قد يفشل تمامًا على إصدار لم يُختبر عليه أبدًا.

لتغييره، اختر الإصدار وانقر على **تطبيق الإصدار**. يسري التغيير فورًا، دون الحاجة لإعادة تشغيل من جانبك ودون أي توقف.

> **Tip:** غيّر إصدار PHP على بيئة التجربة أولًا، وتصفّح الموقع، ثم غيّره على بيئة الإنتاج. إن كان لا بد من إجراء ذلك مباشرةً على الموقع الفعلي، فافعل ذلك حين يمكنك المراقبة، واعلم أن الرجوع للخلف يتم بنقرة واحدة فقط. انظر [بيئات التجربة](https://support.kapsulehost.com/ar-ae/staging-environments).

إذا تسبّب تغيير الإصدار في تعطّل الموقع، فعُد إلى الإصدار السابق واقرأ السجل. سيذكر الخطأ اسم الملف الذي تعذّر تشغيله. انظر [تغيير إصدار PHP](https://support.kapsulehost.com/ar-ae/changing-php-version) و[سجلات الأخطاء](https://support.kapsulehost.com/ar-ae/error-logs).

## الإعدادات التي يمكنك تغييرها

تعرض صفحة 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](https://support.kapsulehost.com/ar-ae/wordpress-memory-limit).
- **عملية استيراد أو تصدير طويلة تنتهي بانتهاء المهلة**: ارفع قيمة `max_execution_time`، وفكّر في تشغيل المهمة من سطر الأوامر بدلًا من ذلك. انظر [WP-CLI](https://support.kapsulehost.com/ar-ae/wordpress-wp-cli).

> **Note:** يجب أن تكون قيمة `post_max_size` أكبر من `upload_max_filesize`، لأن الملف المرفوع ينتقل داخل الطلب. إذا اخترت مجموعة لا تحقق ذلك، تقوم المنصة بتصحيح قيمة `post_max_size` تلقائيًا لترتفع. لهذا قد ترى قيمة لم تخترها أنت.

## لماذا قد يستغرق التغيير حتى خمس دقائق

هذا هو أكثر مصدر التباس شيوعًا في هذه الصفحة، لذا يستحق التوضيح بدقة.

تُكتب إعداداتك في ملف `.user.ini` الموجود في جذر مستندات موقعك. يقرأ PHP هذا الملف ثم **يخزّنه مؤقتًا لمدة 300 ثانية**، أي خمس دقائق. وإلى أن تنتهي صلاحية هذا التخزين المؤقت، يستمر PHP باستخدام القيم السابقة.

لذا بعد حفظ تغيير ما:

- ستظل الصفحة تعرض الحد القديم لمدة تصل إلى خمس دقائق.
- سيظل `phpinfo()` يعرض الحد القديم لمدة تصل إلى خمس دقائق.
- التحديث القسري لا يساعد. ولا مسح ذاكرة التخزين المؤقت للمتصفح أيضًا.
- لست بحاجة لإعادة تشغيل أي شيء، بل لا يمكنك ذلك أصلًا. فقط انتظر.

إذا مرّت أكثر من خمس دقائق ولم تتغير القيمة، فهناك فعليًا خلل ما ويستحق فتح تذكرة.

## تعديل `.user.ini` بنفسك

يمكنك تعديل `.user.ini` مباشرة عبر SFTP أو SSH إن فضّلت ذلك، أو إذا احتجت إلى توجيه لا تعرضه اللوحة. يوجد في جذر مستندات موقعك. انظر [الوصول عبر SFTP](https://support.kapsulehost.com/ar-ae/sftp-access).

التنسيق هو توجيه واحد في كل سطر:

```ini
memory_limit = 512M
max_execution_time = 120
```

هناك قيدان مهمان على ما يمكن أن يفعله `.user.ini`:

**يعمل فقط مع التوجيهات التي يسمح PHP بتعيينها على مستوى المجلد أو المستخدم.** الإعدادات الخمسة أعلاه كلها مؤهلة لذلك. أما التوجيهات التي يمكن تعيينها فقط على مستوى النظام، مثل `disable_functions` أو تحميل إضافة باستخدام `extension=`، فيتم تجاهلها في ملف `.user.ini`. لن تصدر خطأ، بل ستتجاهل ببساطة دون أي تأثير، ولهذا يقضي البعض فترة بعد الظهر كاملة في محاولة حل المشكلة.

**تقرأ اللوحة فقط المفاتيح البسيطة.** التوجيهات التي تحتوي على نقطة، مثل `opcache.enable` أو `date.timezone`، يحترمها PHP لكنها لن تظهر في نموذج اللوحة. إذا عيّنت واحدة منها يدويًا ثم غيّرت شيئًا لاحقًا عبر اللوحة، تحقق من الملف بعد ذلك.

> **Warning:** يُشغّل استضافة KapsuleHost خادم nginx، وليس Apache. لا يقرأ أحد ملفات `.htaccess`. التوجيهات الخاصة بـ PHP الموضوعة في ملف `.htaccess`، مثل `php_value memory_limit`، لا تفعل شيئًا هنا إطلاقًا. استخدم `.user.ini` أو اللوحة بدلًا من ذلك. انظر [WordPress وملف .htaccess](https://support.kapsulehost.com/ar-ae/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.

لا يمكنك تفعيل أو تعطيل الإضافات بنفسك من اللوحة. إذا كان تطبيقك يحتاج إلى شيء غير موجود في القائمة، افتح تذكرة ووصف ما تُشغّله. إمكانية إضافتها تعتمد على الإضافة نفسها. انظر [فتح تذكرة دعم](https://support.kapsulehost.com/ar-ae/opening-a-support-ticket).

## التحقق مما هو مُحمّل فعليًا

بدلًا من التخمين:

- **في WordPress**: الأدوات، ثم صحة الموقع، ثم معلومات، ثم الخادم. تُدرج هذه الصفحة إصدار PHP والحدود ذات الصلة.
- **عبر SSH**: استخدم `php -v` لمعرفة الإصدار و`php -m` للإضافات المُحمّلة. انظر [إضافة مفاتيح SSH](https://support.kapsulehost.com/ar-ae/adding-ssh-keys).

> **Warning:** لا تترك ملف `phpinfo()` في جذر موقعك على الويب. فهو ينشر مساراتك وإضافاتك وإعداداتك لأي شخص يعثر عليه، وتبحث أدوات الفحص الآلية تحديدًا عن اسم الملف هذا. إذا أنشأت واحدًا للتحقق من شيء ما، احذفه فورًا بعد ذلك.

## أدلة ذات صلة

- [تغيير إصدار PHP](https://support.kapsulehost.com/ar-ae/changing-php-version)
- [حد الذاكرة في WordPress](https://support.kapsulehost.com/ar-ae/wordpress-memory-limit)
- [سجلات الأخطاء](https://support.kapsulehost.com/ar-ae/error-logs)
- [رموز أخطاء HTTP](https://support.kapsulehost.com/ar-ae/http-error-codes)
- [بطء الموقع وحدود الموارد](https://support.kapsulehost.com/ar-ae/site-slow-resource-limits)
- [WordPress وملف .htaccess](https://support.kapsulehost.com/ar-ae/wordpress-htaccess)
- [مسرد مصطلحات الاستضافة](https://support.kapsulehost.com/ar-ae/glossary)
