У меня есть веб-приложение codeigniter, работающее в рабочей среде. Я пытаюсь создать новую область разработки и скопировать все файлы, и я пытаюсь ее запустить и запустить. Пока это не было! Когда я отправляю страницу/запрос данных... я возвращаю 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, например, 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 Firefox/34.0 "
В журнале ошибок apache2 ничего нет.
Раздел Networking в моем инструменте отладки браузера показывает код состояния 200 OK на вкладке "Заголовки", но вкладка "Ответ" пуста.
Разрешения для файлов. Я убедился, что все мои папки имеют 755, а файлы - 644. Я не думаю, что это проблема с правами доступа, потому что, когда я намеренно устанавливаю разрешения неправильно, на странице появляются ошибки разрешений. Мои настройки php.ini настроены на отображение ошибок, для ВСЕХ сообщений об ошибках.
Я не знаю, что еще я могу проверить. Мы ценим любые предложения.
ИЗМЕНИТЬ 1
Я просто пробовал этот тест в окне разработки:
создайте новый php файл phpinfo.php со следующим кодом:
Теперь я подозреваю, что apache2 настроен... проверка...
EDIT 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>
Я идиот. Мне не хватало php5-драйвер/пакет mysql на этом новом сервере. Мне пришлось:
sudo apt-get install php5-mysql
sudo service apache2 restart
И все мои проблемы ушли. Извините за шум.
application/config/config.php
)