Установка CodeIgniter на сервер Ubuntu 12.04

Что такое CodeIgniter?

CodeIgniter (или CI) – это легкий, но при этом очень мощный открытый фреймворк веб-приложений для PHP. Его цель – ускорить и упростить написание приложения, предоставляя набор библиотек и вспомогательных пакетов для выполнения наиболее распространенных задач. Он основан на архитектуре MVC (англ. Model-View-Controller, «модель-вид-контроллер»), что позволяет разделять логику и представление.

Данное руководство продемонстрирует установку CodeIgniter на облачный сервер из командной строки, а также расскажет о базовой настройке фреймворка.

Примечание: данное руководство предполагает наличие предварительно настроенного виртуального выделенного сервера и root-доступа к нему. Кроме того, нужно заранее установить стек LAMP; все необходимые инструкции по установке этой группы программ можно найти в этой статье.

Установка CodeIgniter

Для начала нужно перейти в root-каталог облачного сервера:

cd /var/www

Загрузите последнюю стабильную версию CI. Для этого откройте загрузочную страницу сайта проекта, найдите последнюю доступную версию и запустите следующую команду:

wget http://ellislab.com/asset/ci_download_files/reactor/CodeIgniter_2.1.2.zip

Примечание: не забудьте заменить ссылку, приведенную в команде, ссылкой на более новую версию.

После запуска команды ls в каталоге появится новый zip-файл. Распакуйте его при помощи следующей команды:

unzip CodeIgniter_2.1.2.zip

На данном этапе может возникнуть ошибка «unzip: command not found»; это значит, что инструмент Unzip не установлен. Запустите следующую команду, чтобы установить его:

sudo apt-get install unzip

Попробуйте снова запустить команду unzip.

Запустив команду ls, вы увидите извлеченную папку CodeIgniter. Переименуйте папку в codeigniter (или выберите более удобное для вас имя) при помощи команды:

mv /var/www/CodeIgniter_2.1.2 /var/www/codeigniter

Направьте браузер на эту папку:

<your_domain>/codeigniter

На кране появится приветственное сообщение CodeIgniter.

Это сообщение выдается образцовым контроллером (англ. Controller), который находится в папке application/controllers и называется welcome.php. Этот контроллер просто загружает вид, который находится в папке application/views и содержит простое HTML-сообщение.

Настройка CodeIgniter

Теперь CodeIgniter установлен, можно приступать к начальной настройке приложения.

Можно начать с настройки взаимодействия CodeIgniter с базой данных. Для этого нужно отредактировать следующий файл (не забудьте указать правильное имя папки, если она была названа не codeigniter):

nano /var/www/codeigniter/application/config/database.php

Затем найдите следующий блок и отредактируйте его, внеся информацию о БД:

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'your_username';
$db['default']['password'] = 'your_password';
$db['default']['database'] = 'your_database';
$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;

Сохраните и закройте файл. Теперь БД настроена должным образом. Затем откройте конфигурационный файл config.php для редактирования:

nano /var/www/codeigniter/application/config/config.php

и внесите в него свой url; для этого найдите и отредактируйте этот раздел:

$config['base_url'] = 'http://www.example.com';

Замените www.example.com своим значением. Сохраните и закройте файл.

Виртуальные хосты

Чтобы изменить document root для CodeIgniter, нужно отредактировать файл виртуального хоста.

sudo nano /etc/apache2/sites-enabled/000-default
<VirtualHost *:80>
DocumentRoot /var/www/codeigniter
[.......] <VirtualHost *:80>

Кроме того, вероятно, понадобится удалить сегмент index.php, который нужно вносить в URL перед именем контроллера. URL фреймворка CodeIgniter имеет такую структуру:

base url / index.php / controller name / controller function / controller parameter 1 / controller parameter 2 / controller parameter etc

Чтобы проверить это, откройте файл контроллера welcome.php:

nano /var/www/codeigniter/application/controllers/welcome.php

который содержит:

public function test($param) {
echo $param;
}

Направив браузер на http://www.example.com/index.php/welcome/test/3, вы увидите на экране цифру 3. Ради эксперимента замените последний сегмент, и его содержимое появится на экране. Все достаточно просто.

Однако можно сделать адрес еще «чище», удалив сегмент index.php. Это делается в два шага. Сначала нужно открыть ранее отредактированный файл:

nano /var/www/codeigniter/application/config/config.php

затем найти в нем следующий код:

$config['index_page'] = 'index.php';

и заменить его таким образом:

$config['index_page'] = '';

Сохраните и закройте файл. Теперь CodeIgniter больше не будет автоматически вносить сегмент index.php в URL. Но это не все; дело в том, что сегмент index.php нельзя просто выбросить из адреса, иначе ссылка не будет работать, а пользователь получит ошибку Page not found. Чтобы все работало корректно, нужно создать файл .htaccess для обработки переадресации.

Примечание: Чтобы использовать файлы .htaccess, нужно предварительно включить модуль Apache по имени mod_rewrite. Чтобы узнать, запущен ли этот модуль, введите:

apache2ctl -M

Если появившийся список содержит rewrite_module, значит, mod_rewrite уже включен. В противном случае запустите:

a2enmod rewrite

Затем перезапустите Apache, чтобы новые настройки вступили в исполнение:

sudo service apache2 restart

Итак, приступим к созданию файла .htaccess в root-папке CodeIgniter:

nano /var/www/codeigniter/.htaccess

Внесите в файл такой блок кода:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php?/$0 [PT,L]

Затем нужно включить файл .htaccess, изменив значение параметра AllowOverride на All в файле виртуального хоста:

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

Сохраните и закройте файл. Теперь при посещении сайта в браузере не нужно вносить в url сегмент index.php:

http://www.example.com/welcome/test/3

Теперь URL выглядит гораздо понятнее и легче запоминается.

Готово! Можете приступать к разработке своего PHP-приложения при помощи невероятно удобного фреймворка CodeIgniter. Все необходимые инструкции по разработке простого приложения в CodeIgniter можно найти в этой статье.

Tags: , , , , , , ,

Добавить комментарий