在laravel中设置phpChart

时间:2014-08-05 03:54:20

标签: php charts laravel-4 amazon-ec2 composer-php

环境:亚马逊EC2。 Ubuntu x64。 (已安装GD库) 我最近在laravel框架中使用phpChart进行图形和报告。 我陷入了初期阶段。

这就是我所做的。

  • 1.将phpChart_Lite中的内容解压缩到/ var / www / app / libraries / 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') 

1 个答案:

答案 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友好。