FreeBSD и JSON
Получил на сервере под управлением FreeBSD следующию ошибку в PHP:
Fatal error: Call to undefined function json_encode()
Она означает, что в PHP не модключен модуль: json.so, полез включать.
Прежде всего сходил, в:
/usr/local/etc/php/extensions.ini
и убедился, что модуля там нету, ну раз нету, значит надо установить:
1 2 3 4 |
#cd /usr/ports/lang/php5-extensions #make config |
Отметил все необходимые модули, в том числе: JSON 'javascript Object Serialization support'
нажал OK
Далее запустил инсталляцию модулей:
1 2 3 |
#make install clean |
Но получил ошибку:
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script
Для начала добавил, эти переменные в ~/.profile
1 2 3 4 |
PHP_AUTOCONF=autoconf259; export PHP_AUTOCONF PHP_AUTOHEADER=autoheader259; export PHP_AUTOHEADER |
Как советовали в ЧАВО Хостинга Agava, но это не помогло. Возможно нужен ребут, но завершение сессии и новое её открытие положение с ошибками не исправили.
После этого нашел такое вот решение:
1 2 3 4 |
setenv PHP_AUTOCONF autoconf setenv PHP_AUTOHEADER autoheader |
это помогло, запустил сново:
1 2 3 |
#make install clean |
На этот раз все получилось, модули установились, и теперь я их наблюдал в:
/usr/local/etc/php/extensions.ini
Осталось рестартануть Apache:
1 2 3 |
#httpd -k restart |
На этом этапе скрипты заработали, так как и ожидалось
Справочник:
Комманда:
1 2 3 |
#make install clean |
Аналог набору комманд:
1 2 3 4 5 |
#make #install #clean |
За исключением того, что все три команды выполнятся автоматически, без остановок в ожидании ввода следущей команды.
#make — сначала скачивает нужный файл, распаковывает архив, конфигурирует согласно параметрам.
#install — устанавливает ПО согласно конфигурации.
#clean — удаляет файлы, которые были созданы в процессе установки.
Author: | Tags: /
| Rating:
Leave a Reply