CodeIgniter - Пустая страница при автозагрузке базы данных

Я столкнулся с проблемой сегодня утром, после того как я перенес свой веб-сайт с локальной машины на сервер.

Для замены контекста я разработал сайт на фреймворке CodeIgniter, и до миграции все работало нормально.

После долгих исследований кажется, что когда я поставил это:

$autoload['libraries'] = array('database');

У меня есть пустая страница на моем веб-сайте без каких-либо ошибок php/ci в журналах.

И если я позволю это:

$autoload['libraries'] = array();

Сайт работает корректно (ну, я не могу войти, но у меня нет пустой страницы).

Я добавил mysql.so в файл php.ini, но мне это тоже не помогло.

Кто-то уже сталкивался с этой проблемой? Как вы можете решить это, пожалуйста?

Спасибо !

B


person B F    schedule 13.07.2011    source источник


Ответы (11)


Вы уверены, что ваши учетные данные для подключения к БД верны? Если вы переключаете серверы, это может быть проблемой.

Кроме того, CodeIgniter устанавливает error_reporting(0) для производственных сред --- отсюда и пустая страница. Проверьте свой каталог журналов (доступен ли он для записи процессом веб-сервера ..?) для получения любой другой информации.

person jlb    schedule 13.07.2011
comment
Я попытался подключиться с помощью командной строки, и все было в порядке, поэтому я полагаю, что не будет проблемой иметь те же учетные данные в файле database.php. - person B F; 13.07.2011
comment
У меня также есть: error_reporting(E_ALL); и единственная строка в журнале, касающаяся базы данных: DEBUG - 2011-07-13 16:37:57 --> Класс драйвера базы данных инициализирован - person B F; 13.07.2011
comment
найдите в своем приложении (из корневого каталога) любые другие экземпляры error_reporting - CI может переопределить настройку после того, как вы - person jlb; 13.07.2011
comment
проверьте журналы вашего веб-сервера или php (местоположение журнала php должно быть видно в php.ini), расположение журналов веб-сервера зависит от сервера. - person jlb; 13.07.2011
comment
Это то, что я сказал в посте, у меня нет ошибок php или apache :( - person B F; 13.07.2011
comment
Нет, у меня ничего этого нет. - person B F; 13.07.2011
comment
ОК, похоже, это ошибка mysql. Я удаляю @ перед mysql_connect в system/database/drivers/mysql/mysql_driver.php и получаю эту ошибку: Неустранимая ошибка: вызов неопределенной функции mysql_connect() в path_to_my_site/system/database/drivers/mysql/mysql_driver.php в строке 70. Тогда я проверю версию mysql... - person B F; 13.07.2011

в application/config/database.php проверьте, что

$db['default']['dbdriver'] = 'mysql';

установлен на

$db['default']['dbdriver'] = 'mysqli';
person Mancy    schedule 18.04.2016

У меня была аналогичная проблема с пустыми страницами, казалось бы, связанными с загрузкой базы данных, будь то через автозагрузку или вызов $this->load->database(); в конструкторе модели. В итоге мне пришлось изменить файл 'php.ini', закомментировав extension=php_pdo_mysql.dll и раскомментировав extension=php_mysql.dll (т.е. отключив PDO). Я использую Windows 8.1, Apache 2.2 и PHP 5.3.27.

Этот ответ похож на другой, но я не мог добавить комментарий для уточнения, так как только что зарегистрировался. Мне потребовалась пара часов и много поиска в Google, чтобы решить, так что, надеюсь, это кому-то поможет.

person Tim    schedule 22.10.2013

Пожалуйста, перезапустите веб-сервер и повторите попытку.

создайте новый файл info.php с помощью phpinfo();

<?php

phpinfo();

?>

посмотреть, загружается ли расширение mysql, если его загрузка

попробуй сделать chmod 0777 в свою директорию

person Community    schedule 16.07.2011

Это происходит, когда у вас не установлен модуль mysql для php. В Windows, я считаю, это идет с установщиком php. Если вы используете Linux, например, Fedora, вы устанавливаете его следующим образом:

sudo yum -y install php-mysql

Перезапустите веб-сервер после установки. Предполагая, что вы используете apache httpd:

sudo service httpd restart

Теперь вы должны снова увидеть страницы (при условии, что у вас правильные настройки в conf/database.php).

person Kaushalya    schedule 02.04.2012

У меня только что была эта ошибка, после отладки драйвера MYSQL я выяснил проблему.

Проблема заключалась в том, что в файле конфигурации базы данных я использовал MYSQL в качестве драйвера, когда на сервере был установлен MYSQLI, просто измените его в файле конфигурации, и все готово.

Надеюсь, это поможет кому-то.

person yuukan    schedule 06.06.2012

Похоже, ваша база данных настроена неправильно, и ваша установка PHP блокирует ошибки.

Взгляните на свои файлы журналов или попробуйте поместить

ini_set('display_errors',1);
error_reporting(E_ALL|E_STRICT);

в вашем index.php и посмотрите, что вы получите

person Swift    schedule 13.07.2011
comment
который отключен в конфигурации codeigniter, это не сработает - person Christophe; 13.07.2011
comment
С параметрами db все в порядке, так как я могу подключить его с помощью командной строки и получить доступ к нему на своей машине. Сервер БД также не является локальным. - person B F; 13.07.2011

Для меня, имея ту же проблему с использованием Z-WAMP, мне пришлось раскомментировать «extension = php_mysql.dll» из php.ini. Также назначены «mysql.default_port=3306» и «mysql.default_host=localhost». Надеюсь, это поможет кому-то там

person ivansabik    schedule 10.02.2013

Для тех, кто использует Linux (особенно Ubuntu) и все еще получает пустую страницу, сделайте следующее:

  1. sudo apt-get install php5 libapache2-mod-php5 php5-mysql php5-cli mysql-server
  2. sudo service apache2 restart
  3. $autoload['libraries'] = array('database');
person user2852068    schedule 12.12.2013

Установка php5-pgsql исправила это для меня (в Ubuntu)

person John Kentucky    schedule 16.02.2015

просто зайдите в application/config/database.php и найдите

$db['default']['dbdriver'] = 'mysql';

Замените 'mysql' на 'mysqli'

$db['default']['dbdriver'] = 'mysqli';

вот и все!

person Abhay Jagtap    schedule 08.10.2019