تتجاهل البرامج النصية لخط الأوامر PHP PHP.INI و INI_SET ('Memory_Limit' ، ...) توجيهات

StackOverflow https://stackoverflow.com/questions/1751719

سؤال

أواجه "الخطأ المميت" المميت: خارج الذاكرة (مخصصة 30408704) (حاول تخصيص 24 بايت) ... "خطأ فادح PHP. الصفحات التي يتم تقديمها عبر Apache لا تظهر هذا السلوك.

لقد جربت ما يلي:

  1. زيادة الذاكرة في php.ini إلى قيمة أكبر بكثير.
  2. زيادة Memory_limit داخل البرنامج النصي نفسه عبر المكالمات ini_set('memory_limit', -1), ini_set('memory_limit', '-1'), ini_set('memory_limit', 100000000), ini_set('memory_limit', '128M'), ، إلخ.
  3. unset()إنجاوب وأشياء غير ضرورية لتشجيع جامع القمامة على تحرير الذاكرة.
  4. الاتصال بمضيف الويب. عادة ما تكون قادرة للغاية ودراية ، لكنهم لم يتمكنوا من مساعدتي في هذه المشكلة أيضًا.
  5. لقد حاولت صراحة بما في ذلك ملف php.ini باستخدام -c علامة سطر الأوامر للاختيار ملفات php.ini محددة مع قيم مختلفة.
  6. لقد حاولت تعيين Memory_limit في php.ini باستخدام كل من الأرقام الخام من البايتات والقيم مثل 64m ، 128m ، إلخ.
  7. تمكن مزود الاستضافة من تشغيل البرنامج النصي على أنه جذر بدون مشكلات ، ولكنه يواجه نفس المشكلة التي أقوم بها عند تشغيلها باستخدام مستخدمي غير الجذر. ربما هناك نوع من أذونات القضية المعنية؟

بغض النظر عن ما أحاول ، فإن رسالة الخطأ هي نفسها. يبدو أن نصوص سطر الأوامر الخاصة بي تتجاهل التغييرات على memory_limit.

أميل إلى محاولة التأكد من أن البرامج النصية الخاصة بي فعالة في الذاكرة ، لكنني بحاجة حاليًا إلى تحليل كميات كبيرة من HTML عبر بسيطة html dom وفي المحلل ، أواجه مشكلات الذاكرة. في محاولة لتقليل بصمة الذاكرة للنص ، حاولت استخدام Domdocument في حين أن. هذا لا يساعد أيضًا. في الواقع ، يتم الآن تشغيل خطأ خارج الذاكرة في مكان آخر في البرنامج النصي.

سؤالي: هل عانى أي شخص من هذا أو مشكلة مماثلة؟ هل لديك أي توصيات؟

شكرًا لك.

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

قد يستخدم PHP الخاص بك على CLI php.ini مختلفة إلى Apache PHP. جرب أ phpinfo() وتحقق من استخدام ملف INI الذي تعتقد أنه يستخدمه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top