PHP framework CodeIgniter. Установка и настройка.

Владимир | | CodeIgniter, PHP.

CI горящие буквыВ минимальном варианте для использования CodeIgniter необходимы web сервер (например, Apache) и интерпретатор PHP. Кроме того, в большинстве случаев нужен сервер баз данных (например, MySQL).

Примечание. Подробное описание настройки этих компонентов вы найдете в статье «Установка и настройка WAMP».

Предположим, что все необходимые компоненты у вас установлены, а переменная сервера DOCUMENT_ROOT указывает на папку E:/my_sites/www/.
Распаковываем в эту папку, скачанный с официального сайта, архив.

Если вы сейчас зайдете на ваш сайт (http://localhost/), то увидите страницу приветствия CodeIgniter. В принципе, установка уже завершена, но, по ряду причин, такой вариант далеко не самый лучший.

Главная проблема касается безопасности. Дело в том, что дистрибутив CodeIgniter состоит из двух частей: папки system со служебными файлами (в ней, кстати, будет размещаться ваше приложение) и основного контроллера – файл index.php. Во второй папке (user_guide) находится руководство пользователя.

Раз папка system, находится внутри DOCUMENT_ROOT, то посетители сайта в принципе могут получить доступ к файлам, которые находятся в ней. Например, набрав в браузере адрес http://localhost/system/application/views/welcome_message.php посетитель увидит страницу приветствия CodeIgniter. Именно по этой причине практически в каждой служебной папке CodeIgniter находятся файлы index.html, которые выводят текст «Directory access is forbidden» (Доступ к папке запрещен). Естественно, по настоящему запретить доступ таким образом нельзя.

Поэтому мы уберем папку system из DOCUMENT_ROOT. Например, перенесем в E:/my_sites. Т.е. получится следующая структура папок:
E:/my_sites/system/...
E:/my_sites/www/index.php - DOCUMENT_ROOT
.

Теперь для посетителя доступен только index.php. Но наш сайт перестал работать! Произошло это потому, что index.php не может найти системные файлы. Исправляем ситуацию.

Открываем index.php, и указываем в переменной $system_folder новое размещение:

$system_folder = "../system";

Если есть желание можно удалить файлы index.html из всех системных папок.

Кроме того, обратите внимание на переменную $application_folder (в файле index.php). В ней указано название папки, в которой находится ваше web приложение. По-умолчанию, ей присвоено значение «application«.

Посмотрите на структуру этой папки (system/application). Здесь находятся:
config/ — папка с конфигурационными файлами сайта;
controllers/ — папка для контроллеров;
models/ — папка для моделей;
views/ — папка для представлений (видов);
errors/ — здесь находятся страницы ошибок;
libraries/ — библиотеки, которые относятся только к вашему приложению;
hooks/ — хуки. Позволяют изменить поведение ядра фрэймворка (без изменения самих файлов ядра).

Эта структура папок соответствует архитектуре MVC, о которой я рассказывал в прошлой статье. CodeIgniter содержит специальные методы, которые позволяют загружать нужные компоненты сайта из этих папок.

Сразу хочу обратить ваше внимание на обработку ошибок. В файле index.php выполняется вызов функции:

error_reporting(E_ALL);

Это означает, что будет выведен отчет обо всех ошибках, что очень удобно во время разработки. Но после размещения готового сайта на сервере, будет лучше изменить значение параметра этой функции. Например, error_reporting(0) полностью отключит вывод сообщений об ошибках.

В следующий раз я продолжу рассказ о CodeIgniter и покажу, как сделать с его помощью несложный динамический web сайт.

До встречи!

Интересные материалы

Раскрутка и продвижение сайтов — задача, которую нужно доверить профессионалам.