Knowledgebase

Aveti intrebari? Sunteti in locul potrivit!

Setarea unei aplicatii Codeigniter pe Ubuntu 16.04

Codeigniter este un framework PHP foarte util care necesita resurse putine.
Acest ghid presupune ca aveti un stack LAMP instalat si acces root la server.

Instalarea Codeigniter

Primul pas este sa intrati in directorul root
cd /var/www/html
Descarcati ultima versiune stabila de Codeigniter.

wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.5.zip

Extrageti arhiva descarcata

unzip 3.1.5.zip

Redenumiti directorul CodeIgniter-3.1.5 in codeigniter
mv CodeIgniter-3.1.5 codeigniter

Navigati la http://[adresa-server]/codeigniter se va deschide pagina de bun venit. Acesata pagina este afisata de un exemplu de controller aflat in application/controllers numit Welcome.php.. Pagina incarcata se ala in application/viewssi este numita welcome.php.

Configurarea si optimizarea URL-urilor

Codeigniter este acum functional si este necesar sa efectuati anumite configurari initiale. In cazul in care doriti sa folositi o baza de date este necesar sa o configurati accesand database.php, fisierul de configurare se afla in application/config/database.php

Gasiti block-ul de mai jos si actualizati informatiile de conectare:

$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => '',
'password' => '',
'database' => '',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);

Salvati fisierul si inchideti editorul.

Configurarea URL-urilor

In mod implicit, URL-urile Codeigniter implicit au forma:
http://[adresa-server]/codeigniter/index.php/[controller]/[method]/[param]

Segmentul [controller] reprezinta clasa Controller aflata la application/controllers,
Segementul [method] din aceasta clasa si segmentul [param] este un parametru transmis metodei.

Pentru a testa cofiguratia adaugati urmatoarea metoda la index application/controllers/Welcome.php:
public function hello($user = 'John Doe')
{
echo "Hello {$user}!";
}

Acum navigati la http://[instata-server]/codeigniter/index.php/welcome/hello/Jack. ar trebui sa aveti afisat Hello Jack!

Cum inlaturati index.php

In mod implicit index.php este inclus in url, pentru a fi inlaturat in cazul in care aveti activat modul mod_rewrite in Apache adaugati un fisier .htaccess in directorul root al aplicatiei si trebuie facute cateva modificari in application/config/config.php

In primul rand ar trebui sa verificam daca mod_rewrite este activ, executand comanda:
apache2ctl -M

Daca aveti afisat rewrite_module in lista puteti trece la pasul urmator, altfel executati comanda:
a2enmod rewrite

Restartati serverul Apache
sudo service apache2 restart

Creati fisierul .htaccess in /var/www/html/codeigniter/ si adaugati urmatoarele linii:

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

Asigurati-va ca fisierul .htaccess este activ setand AllowOverride in All si adaugand Order allow,deny si allow from all in fisierul virtual host in setarile globale Apache.

Options Indexes FollowSymLinks
AllowOverride All
Require all granted
Order allow,deny
allow from all

Acum, inlaturati fisierul index.php din URL-urile din fisierul de configurare Codeigniter application/config/config.php.

Identificati urmatoarea linie:
$config['index_page'] = 'index.php';
Inlocuiti-o cu :
$config['index_page'] = '';

Acum puteti accesa URL-urile aplicatiei fara index.php