Перенос скриптов на другой сервер может сопровождаться появлением некоторых ошибок, что приводит к неправильной работе сайта, либо неработоспособности вовсе. Многие сайты используют библиотеку PHPExcel, которая удобна в использовании, например для генерации отчетов, либо импорта некоторых данных из таблицы Excel. Использовать табличные данные можно для разных задач, в этом плане всё ограничивается вашими желаниями и амбициями. Классическая ситуация, вы пишите скрипты на локальном сервере, проверяете, тестируете – всё работает. И вот, сделав последний штрих, переносите скрипты на боевой сервер. Там может возникнуть немного другая картина, которая сопровождается появлением ошибок, в моей ситуации ошибки были инициированы библиотекой PHPExcel. Исправлять ошибки в таких ситуациях является хорошим тоном, особенно если это ошибки из серии Fatal error.
К счастью ошибок было немного, давайте посмотрим, что с этим можно сделать. Итак, первая ошибка:
Сообщение об ошибке было гораздо длиннее, но чтобы не тянуть резину, решил сократить в пару строк. Суть ошибки в том, что в настройках интерпретатора, похоже, включена возможность перегрузки мультибайтовых строковых функции, что не дает этой библиотеке жить спокойно. Откуда я это знаю? Банальный перевод текста сообщения об ошибке может значительно облегчить ваш труд. Теперь о том, что дальше делать. Находим строку кода указанную ниже, в файле Autoloader.php, закомментируйте её.
if (ini_get('mbstring.func_overload') & 2) { throw new PHPExcel_Exception('Multibyte function overloading in PHP must be disabled for string functions (2).'); }
Запускаем скрипты для проверки, наблюдаем, как этой ошибки не стало. Кроме неё у меня было ещё и другое сообщение об ошибке.
Начинаем разбираться: класс с именем «XMLWriter» не найден. А не найден он потому, что на рабочем сервере не было включено PHP-расширение «php-xmlwriter». Тут решение одно, нужно его установить. Если у вас нет доступа к консоли сервера – просите хостера, если есть хорошо, ставим расширение.
yum install php-xmlwriter
Веб-сервер на котором планировалось размещать скрипты работает на CentOS, если у вас другая операционная система, то используйте свои команды для установки PHP-расширения. Кстати, не забудьте проверить наличие бэкапа, перед тем как производить какие-либо операции по установки на сервере.
Спасибо, комментирование строки помогло обойти, ошибка падала в рез-те запуска скрипта из под крона
Спасибо, вылечил благодаря совету "yum install php-xmlwriter".
Спасибо! решение Ваше помогло! благодарю, желаю приятного дня и прекрасного настроения!