عندما أصل إلى الخطوة الأخيرة لدي خطأ من الصورة:
الحشرة:
Invalid configuration for path "monolog.handlers.main": Warning: count(): Parameter must be an array or an object that implements Countable
ناتج عن PHP 7.2 ، يتم تخفيض الحل المؤقت إلى إصدار PHP 7.1.
الخطأ موجود في symfony المنبع ، راجع: https://github.com/symfony/monolog-bundle/issues/223
أي إصلاح لهذا؟ أنا أعمل مع linux Mint ، ولست مستخدمًا خبيرًا لنظام Linux لتثبيت php7.1 ... لا تقدم Linux Mint سوى 7.2 معيارًا ...
يمكنك إصلاح هذا سريعًا وقذرًا:
انتقل إلى الملف -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php
حول السطر 594 التعليق أو إزالة السطر أدناه:
// ->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && 1 !== count($v['handler']); })
أضف السطر التالي:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })
سيقوم المثبت بإنهاء التثبيت ولديك حق الوصول إلى التطبيق.
هل لا يزال هذا هو الإصلاح الموصى به؟
نعم ، يبدو الأمر كذلك.
تم إصدار الإصلاح في حزمة Symphony / monolog-bundle في الإصدار 3.1.2 ، ويستخدم PartKeepr 2.4.
لتكون قادرًا على استخدام الإصدار الجديد من monolog-bundle ، يجب تحديث Symphony وهذا ليس ممكنًا بسهولة (بدون استثمار وقت كبير جدًا).
لا يزال الحل البديل من erikvanberkum هو أفضل طريقة للقيام بذلك.
مسكتك. ربما لديك إصلاح تلقائي كجزء من البرنامج النصي للإعداد؟
هذا هو الإصلاح الآلي الذي يحل محل هذا الخط.
واجهت هذه المشكلة عند محاولة تثبيت Partkeepr على Raspberry Pi 3+
لقد استسلمت وقمت بإعادة تحميل ملفات نظيفة وأعدت تثبيت نظام التشغيل و Partkeepr من نقطة الصفر
هذه الصفحة- https://wiki.partkeepr.org/wiki/PartKeepr_on_Debian_٪22Stretch٪22
قمت بتعيين المهلة على 130 بدلاً من 120 ، ثم بعد صفحة معلمات قاعدة البيانات ، تابعت هذه الصفحة
https://wiki.partkeepr.org/wiki/APC_Metadata_Caching
لتحرير yaml واستمر على طول وتثبيت جيد.
أي من هذه المفترقات هي تلك التي بها كود عاملة / أحدث؟
لقد جربت الآن 13 منهم وما زلت لا أستطيع حتى تثبيته :(
باستخدام CentOS.
معلوماتي:
إصدار CentOS Linux 7.6.1810 (Core)
Linux xxx.org 3.10.0-957.12.2.el7.x86_64 # 1 SMP الثلاثاء 14 مايو 21:24:32 بالتوقيت العالمي المنسق 2019 x86_64 x86_64 x86_64 GNU / Linux
PHP 7.2.19 (CLI) (بني: 29 مايو 2019 11:04:13) (NTS)
حقوق النشر (c) 1997-2018 The PHP Group
Zend Engine v3.2.0 ، حقوق الطبع والنشر (c) 1998-2018 Zend Technologies
mysql الإصدار 15.1 ، قم بتوزيع 5.5.60-MariaDB لنظام التشغيل Linux (x86_64) باستخدام readline 5.1
إصدار الخادم: Apache / 2.4.6 (CentOS)
تم بناء الخادم: 24 أبريل 2019 13:45:48
[Sat Jun 01 00: 22: 58.384109 2019] [php7: warn] [pid 13807] [client 155.4.14.39:56332] تحذير PHP: need_once (/ webdata1 / partkeepr / web /../ app / bootstrap.php.cache ): فشل في فتح الدفق: لا يوجد مثل هذا الملف أو الدليل في /webdata1/partkeepr/web/app.php في السطر 6 ، المرجع: http://partkeepr.ddns.net/setup/index.html
[Sat Jun 01 00:22: 58.384190 2019] [php7: error] [pid 13807] [client 155.4.14.39:56332] خطأ فادح في PHP: يتطلب_once (): فشل الفتح المطلوب '/webdata1/partkeepr/web/../ app / bootstrap.php.cache '(include_path ='.: / usr / share / pear: / usr / share / php ') في /webdata1/partkeepr/web/app.php في السطر 6 ، المرجع: http: // partkeepr.ddns.net/setup/index.html
[Sat Jun 01 00: 22: 58.394956 2019] [php7: warn] [pid 13797] [client 155.4.14.39:56331] تحذير PHP: need_once (/ webdata1 / partkeepr / web /../ app / bootstrap.php.cache ): فشل في فتح الدفق: لا يوجد مثل هذا الملف أو الدليل في /webdata1/partkeepr/web/app.php في السطر 6 ، المرجع: http://partkeepr.ddns.net/setup/index.html
[Sat Jun 01 00:22: 58.395025 2019] [php7: error] [pid 13797] [client 155.4.14.39:56331] خطأ فادح في PHP: يتطلب_once (): فشل الفتح المطلوب '/webdata1/partkeepr/web/../ app / bootstrap.php.cache '(include_path ='.: / usr / share / pear: / usr / share / php ') في /webdata1/partkeepr/web/app.php في السطر 6 ، المرجع: http: // partkeepr.ddns.net/setup/index.html
[Sat Jun 01 00: 22: 58.565949 2019] [php7: warn] [pid 13799] [client 155.4.14.39:56334] تحذير PHP: need_once (/ webdata1 / partkeepr / web /../ app / bootstrap.php.cache ): فشل في فتح الدفق: لا يوجد مثل هذا الملف أو الدليل في /webdata1/partkeepr/web/app.php في السطر 6 ، المرجع: http://partkeepr.ddns.net/setup/index.html
[Sat Jun 01 00:22: 58.566015 2019] [php7: error] [pid 13799] [client 155.4.14.39:56334] خطأ فادح في PHP: يتطلب_once (): فشل الفتح المطلوب '/webdata1/partkeepr/web/../ app / bootstrap.php.cache '(include_path ='.: / usr / share / pear: / usr / share / php ') في /webdata1/partkeepr/web/app.php في السطر 6 ، المرجع: http: // partkeepr.ddns.net/setup/index.html4
لقد قمت مؤخرًا بتثبيت برنامج Partkeepr ولم أتلق هذه الرسالة. وهكذا ، أقوم بإغلاقه. إذا واجه أي شخص ذلك ، فسوف نعيد فتحه.
christianlupus حصلت على الخطأ والإصلاح # 1065 ...
حصلت على هذه المشكلة. تم الإصلاح مع تحديث حزمة مونولوج> 3.1.0
يتطلب الملحن symfony / monolog- حزمة: 3.1. * تم التصليح
christianlupus أعتقد أن هذا أمر جيد لإضافته إلى المستندات :)
يمكنني وضعها في المستندات (على الأقل في مرحلة التسجيل) لكنني أشك في أن هذه فكرة جيدة حقًا. أنت تقوم بتغيير جزء من الحزمة من 2.7 إلى 3.1. هذا تغيير رئيسي في الإصدار وأنا لست على دراية بأي آثار جانبية قد تحدث أو لا تحدث.
في الواقع ، أنت تجعل المستخدمين يقومون بالتحديث إلى Symphony 3 بأنفسهم جزئيًا. كانت لدي تجربة سيئة للغاية مع برامج الزومبي ذات الإصدارات المختلطة ... قد لا تفشل الآن ولكنها قد تفشل في أي وقت. أفضل عدم تقديم النصيحة الرسمية للتخلص من هذا القدر الكبير في نظام لا يعرف كلانا الكثير عنه. لم يسفر الفحص الأول عن أي تبعيات مكسورة ولكن تم ذلك فقط بطريقة يدوية سريعة.
baradhili هل لديك المزيد من المعلومات أو المعرفة بأن هذه نصيحة آمنة؟
christianlupus آه لا تجري ترقية للوحدة .. لكن تعليق erikvanberkum
<<
يمكنك إصلاح هذا سريعًا وقذرًا:
انتقل إلى الملف -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php
حول السطر 594 التعليق أو إزالة السطر أدناه:
// ->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && 1 !== count($v['handler']); })
أضف السطر التالي:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })
سيقوم المثبت بإنهاء التثبيت ولديك حق الوصول إلى التطبيق.
>
آه ، حسنًا ، فهمت. سأبقيها مفتوحة حتى أكتبها إلى المستندات.
لدي نفس المشكلة مع هذا .. ولا أستطيع أن أجد طريقة لتثبيت الإصدار الأقدم من php ... ؟؟ هل يمكنني الحصول على بعض المساعدة ..
المشكلة:
تكوين غير صالح للمسار "monolog.handlers.main": تحذير: count (): يجب أن تكون المعلمة مصفوفة أو كائنًا يقوم بتنفيذ Countable
حاولت إصلاحه من خلال:
انتقل إلى الملف -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php
حول السطر 594 التعليق أو إزالة السطر أدناه:
// -> ifTrue (الوظيفة ($ v) {return ('fingers_crossed' === $ v ['type'] || 'buffer' === $ v ['type'] || 'filter' === $ v ['type']) && 1! == count ($ v ['handler'])؛})
أضف السطر التالي:
-> ifTrue (الوظيفة ($ v) {return ('fingers_crossed' === $ v ['type'] || 'buffer' === $ v ['type'] || 'filter' === $ v ['type']) && (فارغ ($ v ['handler']) ||! is_string ($ v ['handler']))؛})
لكن فقط احصل على هذا الخطأ:
stegl ، يرجى فتح مشكلة جديدة في طلب المساعدة حتى لا تفشل هذه المشكلة هنا. يمكنك الارتباط بهذا مع ذلك. شكرا جزيلا.
christianlupus آه لا تجري ترقية للوحدة .. لكن تعليق erikvanberkum
<<
يمكنك إصلاح هذا سريعًا وقذرًا:
انتقل إلى الملف ->/vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php
حول السطر 594 التعليق أو إزالة السطر أدناه:
// ->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && 1 !== count($v['handler']); })
أضف السطر التالي:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })
سيقوم المثبت بإنهاء التثبيت ولديك حق الوصول إلى التطبيق.
>
لقد جربت هذا الإصلاح ولكني تلقيت خطأ مختلفًا الآن.
"استجابة غير صالحة من الخادم"
هل هذا الإصلاح لا يزال ساري المفعول؟
xadonxander لم يكن "الإصلاح" المسمى حلًا أبدًا. من الواضح أنه اختراق لرمز التبعية وهذا خطأ واضح.
لتوضيح الأمر مرة أخرى: لا تغير أي شيء ضمن المجلد /vendor
.
أفضل حل في الوقت الحالي هو استخدام PHP 7.0 أو 7.1. ثم يجب ألا يظهر الخطأ على الإطلاق. بصرف النظر عن ذلك ، نحتاج بالتأكيد إلى التحديث ، انظر # 1083.
التعليق الأكثر فائدة
يمكنك إصلاح هذا سريعًا وقذرًا:
انتقل إلى الملف -> /vendor/symfony/monolog-bundle/DependencyInjection/Configuration.php
حول السطر 594 التعليق أو إزالة السطر أدناه:
// ->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && 1 !== count($v['handler']); })
أضف السطر التالي:
->ifTrue(function ($v) { return ('fingers_crossed' === $v['type'] || 'buffer' === $v['type'] || 'filter' === $v['type']) && (empty($v['handler']) || !is_string($v['handler'])); })
سيقوم المثبت بإنهاء التثبيت ولديك حق الوصول إلى التطبيق.