环境:亚马逊EC2。 Ubuntu x64。 (已安装GD库) 我最近在laravel框架中使用phpChart进行图形和报告。 我陷入了初期阶段。
这就是我所做的。
2.编辑composer.json并添加:
"autoload": {
"classmap": [
...
"app/libraries"
]
},
3.run:composer dump-autoload
4.修改phpChart_Lite中的conf.php
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')
答案 0 :(得分:4)
经过大量的尝试和错误后,我猜想我找到了根本原因。 实际上有两个主要问题。这是我的解决方案。
1.我的问题在第一篇文章中解释过。 在phpChart_Lite文件夹中的conf.php文件中。 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");
修改public / phpChart_Lite中的conf.php:
define('SCRIPTPATH','phpChart_Lite/');
现在一切都很好。
如果你认为phpChart配置太复杂,你可能想尝试pChart2.0。 它不需要太多设置。但这张图非常丑陋。
我更喜欢phpChart的图形和函数调用,虽然设置有点复杂,而不是laravel友好。