Недавно я начал обновлять свои проекты с PHP 7.4 до 8.0, и в настоящее время я пытаюсь перестроить все свои образы Docker на PHP 8.0, чтобы мои образы и моя среда были согласованы.
До этого обновления я использовал php:7.4
, и внутри моего Dockerfile у меня была эта строка для установки расширений:
RUN docker-php-ext-install mysqli pdo pdo_mysql json
Сегодня та же команда работает, ЗА ИСКЛЮЧЕНИЕМ для JSON, где я получаю следующую ошибку:
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20200930/
cp: cannot stat 'modules/*': No such file or directory
make: *** [Makefile:87: install-modules] Error 1
Я не могу найти никого с этой проблемой в Stack Overflow или в Интернете в целом, так что... Имя изменилось или оно больше не требуется? Или это даже нормально?
Да, точно. Он работает гладко, но в тот момент, когда я пытаюсь сделать то же самое с json, я получаю сообщение об ошибке.
О, так вот почему я не могу установить его... потому что он уже установлен.
Да, это работает, я только что пытался использовать json_decode
и json_encode
, моя IDE попросила меня добавить «ext-json» в файл composer.json, но за исключением этого, все работает нормально
В PHP 8 расширение JSON стало «всегда доступным», поэтому его больше не нужно устанавливать вручную.
Спасибо. Я ломал голову, задаваясь вопросом, почему на образе докера PHP 8.2 он не работает.
Когда вы говорите, что одна и та же команда работает, кроме JSON, вы имеете в виду, что она работает, когда вы просто запускаете
RUN docker-php-ext-install mysqli pdo pdo_mysql
?