"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تمكين/تعطيل وظائف PHP الأصلية – البرنامج التعليمي php.ini

كيفية تمكين/تعطيل وظائف PHP الأصلية – البرنامج التعليمي php.ini

تم النشر بتاريخ 2024-11-02
تصفح:384

في هذه المقالة أريد أن أقدم لك الإجراء خطوة بخطوة لتمكين أو تعطيل وظائف php الأصلية وتحرير التوجيه "disable_functions" في ملف php.ini.

في بعض الأحيان يلزم تخصيص تكوين PHP الافتراضي على الخادم الخاص بك لاستيعاب توافق نظامك مع بيئة الإنتاج.

لماذا هذا البرنامج التعليمي

أنا مؤلف Inspector.dev، حزمة المراقبة في الوقت الفعلي لـ Laravel وSymfony. تستخدم هذه الحزمة وظائف pro_open وproc_Close php الأصلية لإجراء نقل البيانات من الخادم الخاص بك إلى Inspector API بشكل غير متزامن.

يمكن أيضًا تهيئتها لاستخدام وظائف CURL الأصلية لـ PHP والتي يتم تمكينها افتراضيًا، ولكن في هذه الحالة سترسل بيانات المراقبة إلى Inspector بطريقة متزامنة كما تفعل الحزم الأخرى مثل Sentry وBugsnag وما إلى ذلك. يعني أن تطبيقك قد يتباطأ قليلاً لأن محرك php يحتاج إلى الانتظار قبل إنهاء الاتصال بالعميل.

اتصل بي بعض المطورين مؤخرًا بسبب تعطيل وظائف proc_open وproc_Close في تكوين php الخاص بهم، لذا يحتاجون إلى إلغاء قفلها للاستفادة من إرسال البيانات غير المتزامنة.

إنه أمر نادر جدًا ولكني قررت كتابة هذا البرنامج التعليمي كمورد دعم لحالة الاستخدام هذه.

ما هو ملف php.ini

ملف php.ini هو ملف التكوين لـ PHP. يحتوي الملف على قائمة بأزواج المفاتيح/القيمة تسمى "التوجيهات". يتم تجميع التوجيهات في أقسام، على الرغم من أن هذه هي في الأساس لأغراض تنظيمية.

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

بالنسبة لشخص يتساءل أيضًا: يمكن لـ PHP العمل حتى لو لم يكن هناك ملف php.ini، فإنه ببساطة سيطبق القيم الافتراضية على جميع التوجيهات.

لمن ليس على دراية به، إليك مثال لملف php.ini:

https://github.com/php/php-src/blob/master/php.ini-production

تمكين/تعطيل الوظائف في php.ini

بتحرير ملف php.ini يمكننا تعطيل وظائف PHP الأصلية التي لن تتمكن من استدعائها داخل كود PHP الخاص بك.

يتم استخدام هذه الميزة أحيانًا لتقييد استخدام بعض الوظائف في بيئات الاستضافة المشتركة نظرًا لأن الاستخدام الخاطئ لها يمكن أن يسبب مشكلات أمنية للمستخدمين الآخرين. عادةً ما يتم تعطيل وظائف مثل exec()، ولكن في بعض الأحيان يكون موفري الخوادم متحفظين للغاية ويمكنهم تعطيل الوظائف المطلوبة في مهام البرمجة اليومية.

حدد موقع ملف php.ini

قم بتشغيل الأمر أدناه في محطة جهازك للحصول على الموقع الحالي للملف (يعمل مع كل من Win وUnix):

php --ini

المواقع الشائعة: /etc/php.ini، /etc/php/8.x/php.ini (استبدل x برقم إصدار التثبيت الخاص بك)

لتحرير الملفات الموجودة على الخادم أفضل استخدام محرر vim الذي يجب أن يكون متاحًا في أي جهاز Unix.

// Use the file path from the command above
sudo vim /etc/php.ini

قم بالتمرير لأسفل إلى توجيه "disable_functions". يجب أن يكون في النصف الأول من الملف ويحتوي على قائمة بالوظائف مفصولة بفاصلة.

disable_functions=exec,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

قم بتحرير ملف php.ini

  • اضغط على الحرف "i" بلوحة المفاتيح للدخول إلى وضع INSERT في vim.
  • قم بإزالة وظائف proc_open وproc_Close من القائمة.
  • عند الانتهاء من تحرير الملف، اضغط على مفتاح ESC. يؤدي هذا إلى إخراجك من وضع INSERT ويختفي "– INSERT –" من الجزء السفلي الأيسر من الجهاز الطرفي الخاص بك.
  • لحفظ الملف، اكتب ":wq"، وهي تعليمات الكتابة والإنهاء.

أعد تشغيل محرك PHP

لتحميل التكوينات الجديدة تحتاج إلى إعادة تشغيل PHP. يجب أن تعمل التعليمات الواردة أدناه على معظم الخوادم. يمكنك في النهاية البحث في Google عن نظام تشغيل محدد.

// Change the version of the PHP with what is in use in your machine
sudo systemctl restart php8.2-fpm.service

لمزيد من المقالات التقنية يمكنك متابعتي على Linkedin أو X.

مراقبة تطبيق PHP الخاص بك مجانا

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

إذا كنت تبحث عن مراقبة HTTP، ورؤى استعلام قاعدة البيانات، والقدرة على إعادة توجيه التنبيهات والإشعارات إلى بيئة المراسلة المفضلة لديك، فجرّب Inspector مجانًا. سجل حسابك.

أو تعرف على المزيد على الموقع: https://inspector.dev

How to enable/disable PHP native functions – php.ini Tutorial

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/inspector/how-to-enabledisable-php-native-functions-phpini-tutorial-kpg?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3