Предупреждение PHP: Модуль уже загружен в неизвестном в строке 0
В Mac OSX Mavericks с использованием доморощенного php55 всякий раз, когда я запускаю команду php, я получаю следующее сообщение об ошибке (все работает нормально, это просто раздражает)
PHP Warning: Module 'intl' already loaded in Unknown on line 0
Я побежал
php --ini
И результат был
php --ini
PHP Warning: Module 'intl' already loaded in Unknown on line 0
Warning: Module 'intl' already loaded in Unknown on line 0
Configuration File (php.ini) Path: /usr/local/etc/php/5.5
Loaded Configuration File: /usr/local/etc/php/5.5/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.5/conf.d
Additional .ini files parsed: /usr/local/etc/php/5.5/conf.d/ext-apcu.ini,
/usr/local/etc/php/5.5/conf.d/ext-igbinary.ini,
/usr/local/etc/php/5.5/conf.d/ext-intl.ini,
/usr/local/etc/php/5.5/conf.d/ext-memcached.ini,
/usr/local/etc/php/5.5/conf.d/ext-mongo.ini,
/usr/local/etc/php/5.5/conf.d/ext-uuid.ini,
/usr/local/etc/php/5.5/conf.d/ext-xdebug.ini
Проверено в файле php.ini, и единственное место, где загружается intl, находится вверху, и оно закомментировано. Содержимое других файлов выглядит примерно так:
extension="/usr/local/Cellar/php55/5.5.23/lib/php/extensions/no-debug-non-zts-20121212/intl.so"
Где содержимое после последней косой черты является расширением.
Я не уверен, где еще смотреть.
Любая помощь приветствуется
8 answers
Я думаю, что вы загрузили Xdebug, вероятно, дважды в php.ini
.
Проверьте
php.ini
, что у вас нетxdebug.so
для значенийextension=
иzend_extension=
.Проверьте также
/etc/php5/apache2
и/etc/php5/cli/
. Вы не должны загружать в каждыйphp.ini
в этих каталогах расширениеxdebug.so
. Только один файлphp.ini
должен загрузить его.
У меня была такая же проблема на mac, т.Е. Warning: Module 'pdo_pgsql' already loaded in Unknown on line 0
.
Вот как я решил эту проблему.
- Найдите папку
conf.d
, мой был в справочнике/usr/local/etc/php/7.0/conf.d
. - В этой папке есть файл , называемый
ext-pdo_pgsql.ini
. - Введите
sudo nano ext-pdo_pgsql.ini
, чтобы отредактировать его. - Должна быть строка
extension="/usr/local/opt/php70-pdo-pgsql/pdo_pgsql.so"
. Прокомментируйте это , добавив точку с запятой в начало строки, т. е.;extension="/usr/local/opt/php70-pdo-pgsql/pdo_pgsql.so"
. - Сохраните файл. (Обычно я запускаю control + O, контроль + М).
- Выход из файла (управление + X).
Надеюсь, это кому-то поможет.
У вас должен быть каталог /etc/php2/conf.d (по крайней мере, в Ubuntu у меня есть), содержащий кучу файлов .ini, которые загружаются при запуске php. Эти файлы могут содержать повторяющиеся настройки, которые конфликтуют с настройками в php.ini
. В моей установке PHP я замечаю файл conf.d/20-intl.ini
с настройкой extension=intl.so
. Держу пари, это ваш конфликт.
Есть два"php_intl.dll "файлы внутри файла php.ini в 872 и 968 числовых строках. если модуль предупреждения php 'intl' уже загружен в неизвестном в строке 0, это сообщение ориентировано на ваш интерфейс командной строки. Затем вам следует удалить префиксы с запятой в строке 872. Я ожидаю, что это будет сделано.....
У меня была та же проблема после обновления с Сервера Fedora 24 (PHP 5) до 25 ( PHP 7). После расследования я обнаружил, что /etc/php.d/
загружал два разных файла .ini
extension=geoip.so
.
В предыдущей версии дистрибутивов этот файл назывался 50-geoip.ini
, но недавний был изменен на 40-geoip.ini
, и я подозреваю, что в процессе обновления версии старый не был удален, в то время как новый был создан.
Это был фактический случай проблемы. После удаления stray 50-geoip.ini
из /etc/php.d/
и перезапуска httpd
он просто работал безупречно.
Чтобы устранить эту проблему, вы должны отредактировать свой файл php.ini (или extensions.ini) и закомментировать расширения, которые уже скомпилированы. Например, после редактирования ваш ini-файл может выглядеть следующим образом:
;extension=pcre.so
;extension=spl.so
Источник: http://www.somacon.com/p520.php
Я удалил файл 20-mongo.ini в /etc/php5/cli/conf.d, и это решило проблему.
В моем случае я должен был раскомментировать;extension=php_curl.so в php.ini, но Ubuntu уже вызывала это расширение где-то в другом месте.
Чтобы найти это "где-то еще", на php.ini будет сообщено. По моему делу: /etc/php/7.1/apache2/conf.d/20-curl.ini был путь.
Итак, теперь мы редактируем этот файл (терминал):
sudo nano /etc/php/7.1/apache2/conf.d/20-curl.ini
Прокомментируйте;extension=php_curl.so
Сохраните файл и перезапустите apache:
sudo systemctl restart apache2