URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 8155
[ Назад ]

Исходное сообщение
"В Apache не работают модули PHP"

Отправлено Alex_Eis , 01-Фев-19 10:57 
Доброго всем дня.
Стоит система FreeBSD 11.2 на ней apache24 и php.
До поры, до времени все хорошо работало, проблемы начались после очередного обновления портов.

К примеру, на сайте лежит такой файл test.php:

<?php
  $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' =>5);
  echo json_encode($arr);
?>

При запуске php test.php на выход выдается json, если в браузере набрать example.com/test.php то пишет ошибку: Fatal error: Uncaught Error: Call to undefined function json_encode() in /data/www/ddns/test.php:3 Stack trace: #0 {main} thrown in /data/www/ddns/test.php on line 3

Так же и с другими модулями, не только с json.

Буду очень признателен если подскажите куда копать!

С уважением,
Алексей.


Содержание

Сообщения в этом обсуждении
"В Apache не работают модули PHP"
Отправлено . , 01-Фев-19 11:10 
> При запуске php test.php на выход выдается json, если в браузере набрать
> example.com/test.php то пишет ошибку: Fatal error: Uncaught Error: Call to undefined

у браузерной версии может быть другой php.ini, или он может быть переопределен в fpm (если fpm) или в .htaccess - вплоть до полной неработоспособности.

> Буду очень признателен если подскажите куда копать!

в сторону создания файла <?php phpinfo;
и сравнения результата его запроса через веб-сервер с результатами запуска из cli - для начала обращая внимание на "Additional .ini files parsed"

P.S. потом не забываем удалить, особенно если тебе не пришло в голову ничего умнее /info.php


"В Apache не работают модули PHP"
Отправлено universite , 01-Фев-19 11:11 
> Доброго всем дня.
> Стоит система FreeBSD 11.2 на ней apache24 и php.
> До поры, до времени все хорошо работало, проблемы начались после очередного обновления
> портов.
> К примеру, на сайте лежит такой файл test.php:
> <?php
>   $arr = array('a' => 1, 'b' => 2, 'c' =>
> 3, 'd' => 4, 'e' =>5);
>   echo json_encode($arr);
> ?>

Начните с вывода в коде функции

phpinfo(); 

Потом сравните ожидаемую версию PHP и список модулей.
Используйте еще системную команду  
php -m 
. Может, еще где-то есть варнинги.
Поищите модуль, в котором находится встроенная функция json_encode.
И в самом тяжелос случае освой модули типа xDebug.


"В Apache не работают модули PHP"
Отправлено Alex_Eis , 01-Фев-19 11:22 
Да. Первым делом я так и поступил. Сравнил phpinfo() из браузера и из cli. Версия совпадают,
Additional .ini совпадают, модули тоже...

"В Apache не работают модули PHP"
Отправлено eRIC , 01-Фев-19 12:37 
> Fatal error: Uncaught Error: Call to undefined function json_encode() in /data/www/ddns/test.php:3 Stack trace: #0 {main} thrown in /data/www/ddns/test.php
> on line 3

установите php*-json. проблема заключается в конфликте лицензии JSON Extension и лицензии PHP (начиная с PHP 5.5 модуль по умолчанию не поставляется)

> Так же и с другими модулями, не только с json.

также у вас разные профили PHP (php.ini) для среды выполнения в cgi или mod_php* И cli. смотрите правильный php.ini и активируйте нужные вам extension (предварительно установив их)


"В Apache не работают модули PHP"
Отправлено amekassa , 15-Июл-19 16:38 
>> Fatal error: Uncaught Error: Call to undefined function json_encode() in /data/www/ddns/test.php:3 Stack trace: #0 {main} thrown in /data/www/ddns/test.php
>> on line 3
> установите php*-json. проблема заключается в конфликте лицензии JSON Extension и лицензии
> PHP (начиная с PHP 5.5 модуль по умолчанию не поставляется)
>> Так же и с другими модулями, не только с json.
> также у вас разные профили PHP (php.ini) для среды выполнения в cgi
> или mod_php* И cli. смотрите правильный php.ini и активируйте нужные вам
> extension (предварительно установив их)

la version du navigateur peut avoir un php.ini différent, ou il peut être redéfini dans fpm (si fpm) ou dans .htaccess - jusqu'à une inopérabilité complète.


"В Apache не работают модули PHP"
Отправлено Alex_Eis , 02-Фев-19 13:59 
Все-таки, видимо, где-то произошел сбой при обновлении портов. Я восстановил систему из бекапа и обновил порты еще раз. Все заработало.

Спасибо большое!

С уважением,
Алексей.


"В Apache не работают модули PHP"
Отправлено amekassa , 15-Июл-19 16:37 
>[оверквотинг удален]
>   echo json_encode($arr);
> ?>
> При запуске php test.php на выход выдается json, если в браузере набрать
> example.com/test.php то пишет ошибку: Fatal error: Uncaught Error: Call to undefined
> function json_encode() in /data/www/ddns/test.php:3 Stack trace: #0 {main} thrown in /data/www/ddns/test.php
> on line 3
> Так же и с другими модулями, не только с json.
> Буду очень признателен если подскажите куда копать!
> С уважением,
> Алексей.

Lorsque vous démarrez php test.php, json s'affiche en sortie. Si vous tapez exemple.com/test dans le navigateur, une erreur est générée: Erreur irrécupérable: Non capturé. : 3 Trace de pile: # 0 {principal} jeté dans /data/www/ddns/test.php à la ligne 3