我有一个在生产环境中运行的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
到目前为止我尝试了什么
正如您所看到的,我一直在玩代码以查看该方法是否被调用。
模型方法" get_locations"调用数据库并请求数据。我已经从命令提示符确保我可以使用应用程序使用的相同凭据手动连接到数据库 - 如我的/var/www/html/rhAPI/application/config/database.php文件中所定义。
这是/var/log/apache2/access.log显示的内容:
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"
apache2错误日志中没有任何内容。
我的浏览器调试工具中的网络部分在" Headers"中显示了200 OK状态代码。选项卡,但“响应”选项卡为空。
文件权限。我确保我的所有文件夹都是755,文件是644.我不认为它是权限问题,因为当我故意设置权限时,权限错误会显示在网络上页。我的php.ini设置被设置为显示错误,包括所有错误消息。
我不知道还能检查什么。 任何建议,将不胜感激。
编辑1
我刚在开发框上尝试过这个测试:
使用以下代码创建一个名为phpinfo.php的新php文件:
现在我怀疑是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>
答案 0 :(得分:1)
sudo apt-get install php5-mysql
sudo service apache2 restart
我所有的问题都消失了。对不起噪音。