web app不会加载,apache2的错误日志中没有错误

时间:2014-12-10 16:28:37

标签: php linux apache codeigniter ubuntu

我有一个在生产环境中运行的codeigniter Web应用程序。我正在尝试设置一个新的开发框并复制了所有文件,并试图让它运行起来。到目前为止,它已经不行了! 当我提交数据的页面/请求时...我得到了200 ...但json数据没有显示在页面上。

代码

这是"小部件"正在执行的控制器代码:

public function getlocations()
{
    echo("made it here");
    exit;
    $data = $this->rh_model->get_locations();
    header ('Content-Type: application/json; charset=UTF-8');
    echo json_encode($data);    
   // $this->output->enable_profiler(TRUE);
}//getlocations

到目前为止我尝试了什么

  1. 正如您所看到的,我一直在玩代码以查看该方法是否被调用。

  2. 模型方法" get_locations"调用数据库并请求数据。我已经从命令提示符确保我可以使用应用程序使用的相同凭据手动连接到数据库 - 如我的/var/www/html/rhAPI/application/config/database.php文件中所定义。

  3. 这是/var/log/apache2/access.log显示的内容:

  4.   

    127.0.0.1 - - [10 / Dec / 2014:11:16:13 -0500]" GET /rhAPI/index.php/widgets/getlocations HTTP / 1.1" 200 225" - "   " Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36(KHTML,like   Gecko)Chrome / 39.0.2171.71 Safari / 537.36"   127.0.0.1 - - [10 / Dec / 2014:11:16:28 -0500]" GET /rhAPI/index.php/widgets/getlocations HTTP / 1.1" 200 225" - "   " Mozilla / 5.0(X11; Ubuntu; Linux x86_64; rv:34.0)Gecko / 20100101   火狐/ 34.0"

    1. apache2错误日志中没有任何内容。

    2. 我的浏览器调试工具中的网络部分在" Headers"中显示了200 OK状态代码。选项卡,但“响应”选项卡为空。

    3. 文件权限。我确保我的所有文件夹都是755,文件是644.我不认为它是权限问题,因为当我故意设置权限时,权限错误会显示在网络上页。我的php.ini设置被设置为显示错误,包括所有错误消息。

    4. 我不知道还能检查什么。 任何建议,将不胜感激。

      编辑1

      我刚在开发框上尝试过这个测试:

      1. 在/ var / www / html下创建一个名为" test"
      2. 的新文件夹
      3. 使用以下代码创建一个名为phpinfo.php的新php文件:

      4. 尝试导航到localhost / test / phpinfo.php,但我也没有得到任何东西。
      5. 现在我怀疑是apache2设置......检查......

        编辑2

        我已将以下条目添加到 模型

        中的构造函数中
              public function __construct()
              {
                  echo("in the constructor");
                  parent::__construct();
                  $this->load->database();
                  echo("loaded");
              }       
        

        打印第一个调试语句,但第二个调试语句不打印。 这是我在database.php中的内容:

        $active_group = 'default';
        $active_record = TRUE;
        
        $db['default']['hostname'] = 'localhost';
        $db['default']['username'] = 'root';
        $db['default']['password'] = 'test1234';
        $db['default']['database'] = 'testdb';
        $db['default']['dbdriver'] = 'mysql';
        $db['default']['dbprefix'] = '';
        $db['default']['pconnect'] = TRUE;
        $db['default']['db_debug'] = TRUE;
        $db['default']['cache_on'] = FALSE;
        $db['default']['cachedir'] = '';
        $db['default']['char_set'] = 'utf8';
        $db['default']['dbcollat'] = 'utf8_general_ci';
        $db['default']['swap_pre'] = '';
        $db['default']['autoinit'] = TRUE;
        $db['default']['stricton'] = FALSE;
        

        以下是我通过命令行测试数据库连接是否正常工作的问题:

        me@medev:/var/www/html/rhAPI/application/models$ mysql -u root -p testdb
        Enter password: 
        Reading table information for completion of table and column names
        You can turn off this feature to get a quicker startup with -A
        
        Welcome to the MySQL monitor.  Commands end with ; or \g.
        Your MySQL connection id is 53
        Server version: 5.6.19-1~exp1ubuntu2 (Ubuntu)
        
        Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
        
        Oracle is a registered trademark of Oracle Corporation and/or its
        affiliates. Other names may be trademarks of their respective
        owners.
        
        Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
        
        mysql> 
        

1 个答案:

答案 0 :(得分:1)

我是个白痴。我在这台新服务器上缺少php5 mysql驱动程序/软件包。 我必须:

sudo apt-get install php5-mysql
sudo service apache2 restart

我所有的问题都消失了。对不起噪音。