Окружающая среда: Amazon EC2. Ubuntu x64. (Установлена библиотека GD) Недавно я использовал phpChart для построения графика и отчета в laravel framework. Я застрял на начальной стадии.
Вот что я сделал.
2.Edit composer.json и добавьте:
"autoload": { "classmap": [ ... "app/libraries" ] },
3.run:composer dump-autoload
4.modify conf.php в phpChart_Lite
define('SCRIPTPATH',app_path().'/libraries/phpChart_Lite/');
Вот мой код тестовой страницы:
<?php require_once(app_path()."/libraries/phpChart_Lite/conf.php"); $pc = new C_PhpChartX(array(array(11, 9, 5, 12, 14)),'basic_chart'); $pc->draw(); ?>
ps.my app_path () проверяется «echo app_path ()», и это «/ var / www / app».
Вот мое сообщение об ошибке:
Unknown: Failed opening required '/var/www/public//var/www/app/libraries/phpChart_Lite//conf.php' (include_path='/var/www/vendor/phpseclib/phpseclib/phpseclib:.:/usr/share/php:/usr/share/pear')
Думаю, после многих попыток и ошибок я как-то нашел основную причину. На самом деле есть две основные проблемы. И вот мое решение.
1.Для моей проблемы объясняется в самом первом сообщении. В файле conf.php в папке phpChart_Lite. SCRIPTPATH каким-то образом префикс / var / www / public.
Однако в моем файле apache2.conf указывается каталог / var / www. Независимо от этого префикса, я использую абсолютный путь для SCRIPTPATH. Для меня работает следующая модификация:
define('SCRIPTPATH','../app/libraries/phpChart_Lite/');
Ошибка исчезла. Но появляется вторая проблема, то есть диаграмма не отображается. Откройте инструмент разработчика Chrome (нажмите F12). На вкладке «Консоль» я обнаружил ошибку 404 для загрузки phpChar_Lite / js. Одно из сообщений об ошибках:
http://myip/app/libraries/phpChart_Lite/js/highlighter/styles/zenburn.css
Как дизайн Laravel, доступ к внешней папке возможен только с помощью общей папки. Так что у меня вторая проблема. И вот мое решение (не защищенный метод)
2. Переместите файл phpChart_Lite в общую папку. Измените код тестовой страницы:
include_once(public_path()."/phpChart_Lite/conf.php");
Измените conf.php в public / phpChart_Lite:
define('SCRIPTPATH','phpChart_Lite/');
Теперь все в порядке.
Если вы считаете, что phpChart слишком усложняется для настройки, вы можете попробовать pChart2.0. Это не требует большой настройки. Но график ужасно уродлив.
Я предпочитаю phpChart для его графических и функциональных вызовов, хотя настройка немного сложная и не дружелюбная к laravel.