Когда я дохожу до последнего шага, у меня появляется ошибка с изображения:
Букашка:
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 UTC 2019 x86_64 x86_64 x86_64 GNU / Linux
PHP 7.2.19 (cli) (построено: 29 мая 2019 г., 11:04:13) (NTS)
Авторские права (c) 1997-2018 Группа PHP
Zend Engine v3.2.0, Авторское право (c) 1998-2018 Zend Technologies
mysql Ver 15.1 Distrib 5.5.60-MariaDB, для Linux (x86_64) с использованием строки чтения 5.1
Версия сервера: Apache / 2.4.6 (CentOS)
Сервер построен: 24 апреля 2019 г., 13:45:48
[Сб, 01 июня, 00:22: 58.384109 2019] [php7: warn] [pid 13807] [client 155.4.14.39:56332] Предупреждение PHP: require_once (/ webdata1 / partkeepr / web /../ app / bootstrap.php.cache ): не удалось открыть поток: нет такого файла или каталога в /webdata1/partkeepr/web/app.php в строке 6, ссылка: http://partkeepr.ddns.net/setup/index.html
[Сб, 01 июня, 00:22: 58.384190 2019] [php7: error] [pid 13807] [client 155.4.14.39:56332] Неустранимая ошибка PHP: require_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
[Сб, 01 июня, 00:22: 58.394956 2019] [php7: warn] [pid 13797] [client 155.4.14.39:56331] Предупреждение PHP: require_once (/ webdata1 / partkeepr / web /../ app / bootstrap.php.cache ): не удалось открыть поток: нет такого файла или каталога в /webdata1/partkeepr/web/app.php в строке 6, ссылка: http://partkeepr.ddns.net/setup/index.html
[Сб, 01 июня, 00:22: 58.395025 2019] [php7: error] [pid 13797] [client 155.4.14.39:56331] Неустранимая ошибка PHP: require_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
[Сб, 01 июня 00:22: 58.565949 2019] [php7: warn] [pid 13799] [client 155.4.14.39:56334] Предупреждение PHP: require_once (/ webdata1 / partkeepr / web /../ app / bootstrap.php.cache ): не удалось открыть поток: такого файла или каталога нет в /webdata1/partkeepr/web/app.php в строке 6, ссылка: http://partkeepr.ddns.net/setup/index.html
[Сб, 01 июня, 00:22: 58.566015 2019] [php7: error] [pid 13799] [client 155.4.14.39:56334] Неустранимая ошибка PHP: require_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 Я получил ошибку и
Получил эту проблему. Исправлено с обновлением до monolog-bundle> 3.1.0
композитору требуется symfony / monolog- bundle: 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 (function ($ v) {return ('finger_crossed' === $ v ['type'] || 'buffer' === $ v ['type'] || 'filter' === $ v ['тип']) && 1! == count ($ v ['обработчик']);})
добавьте следующую строку:
-> ifTrue (function ($ v) {return ('finger_crossed' === $ v ['type'] || 'buffer' === $ v ['type'] || 'filter' === $ v ['тип']) && (пусто ($ v ['обработчик']) ||! is_string ($ v ['обработчик']));})
но просто получите эту ошибку:
@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'])); })
после этого установщик завершит установку, и вы получите доступ к приложению.