CodeIgniter + замена nfsn_exec() на exec() при nearlyfreespeech.net = сбой:(
-
20-09-2019 - |
Вопрос
Я использую NearlyFreeSpeech.Net в качестве моего хостинга, и моему php-приложению (закодированному в CodeIgniter) необходимо выполнять вызовы exec().Поскольку это не разрешено в безопасном режиме, нам предоставляется "специальный" способ выполнения чего-либо с помощью perl-скрипта.Смотрите подробности здесь: https://members.nearlyfreespeech.net/wiki/HowTo/PHPExec
Однако выполнение этих инструкций приводит к следующим ошибкам CI каждый раз, когда какая-либо команда передается оболочке exec:
A PHP Error was encountered
Severity: Notice
Message: Constant EXT already defined
Filename: public/index.php
Line Number: 88
A PHP Error was encountered
Severity: Notice
Message: Constant SELF already defined
Filename: public/index.php
Line Number: 89
A PHP Error was encountered
Severity: Notice
Message: Constant FCPATH already defined
Filename: public/index.php
Line Number: 90
A PHP Error was encountered
Severity: Notice
Message: Constant BASEPATH already defined
Filename: public/index.php
Line Number: 91
A PHP Error was encountered
Severity: Notice
Message: Constant APPPATH already defined
Filename: public/index.php
Line Number: 104
и вызов завершается неудачей без вывода.
Я знаю, что многие из вас размещены на nfs.n, и многие из вас также используют CodeIgniter...итак, я надеюсь, что некоторые из вас будут в обеих категориях, и им нужно будет что-то исполнять :)
Спасибо!
Mala
Решение
Не имея возможности просмотреть их howto, я бы предположил, что они пытаются переопределить константы, которые использует CI.Если вы заглянете в index.php для CI вы увидите, что они определяют множество констант, таких как basepath .Просмотрите код, который дает вам их howto, вы, вероятно, увидите код, пытающийся сделать что-то вроде define('basepath', 'blah');
.Вам нужно будет удалить их из кода howto (при условии, что они совпадают с теми, которые использует CI).