Primeros pasos con codeigniter

Instalación y configuración

Entorno de Windows

  1. Instale XAMPP o WAMP
  2. Descargue y descomprima el paquete desde Codeigniter.com
  3. Extraiga todo el documento en el espacio del servidor (directorio htdocs o www)

Entorno Mac

  1. Instalar MAMP
  2. Descargue y descomprima el paquete desde Codeigniter.com
  3. Extraiga todo el documento en el espacio del servidor (htdocs)

Entorno Linux

  1. Descargue y descomprima el paquete desde Codeigniter.com
  2. Coloque la carpeta extraída en /var/www (en WAMP) o xampp/htdocs (XAMPP)

GitHub

clonar git https://github.com/bcit-ci/CodeIgniter.git


Si sigue el sistema correctamente, obtendrá la siguiente pantalla.

ingrese la descripción de la imagen aquí


URL base

  1. Vaya a aplicación/config/config.php
  2. Defina la URL base como $config['base_url'] = 'http://localhost/path/to/folder';

Eliminar index.php de la URL

Configuración de Apache
  1. ir a la raíz

  2. crear archivo htaccess

  3. Agregue el siguiente código dentro de él

     RewriteEngine on
     RewriteCond $1 !^(index\.php|assets|image|resources|robots\.txt)
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ index.php/$1 [L,QSA]
    

Nota: el código .htaccess varía según el servidor de alojamiento. En algún servidor de alojamiento (por ejemplo: Godaddy) es necesario usar un ? adicional en la última línea del código anterior. La siguiente línea será reemplazada por la última línea en el caso aplicable:

RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Configuración Nginx
  1. Abra el archivo de configuración de nginx (por defecto: /etc/nginx/sites-disponible/default)

  2. Agregue el siguiente código dentro de él

     server {
        server_name domain.tld;
    
        root /path-to-codeigniter-folder; //you codeigniter path
        index index.html index.php;
    
        # set expiration of assets to MAX for caching
        location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
             expires max;
             log_not_found off;
        }
    
        location / {
             # Check if a file or directory index file exists, else route it to index.php.
             try_files $uri $uri/ /index.php;
        }
    
        location ~* \.php$ {
             fastcgi_pass 127.0.0.1:9000;
             include fastcgi.conf;
        }
     }
    

Configuración de la base de datos

  1. Vaya a aplicación/config/database.php
  2. Establezca las siguientes variables de configuración. - Host - Username - Password - Database Name - Port

Establecer controlador predeterminado

  1. Vaya a aplicación/config/routes.php
  2. Establezca el siguiente valor de la variable de configuración con el nombre de su controlador.
    • default_controller

Biblioteca de carga automática y ayudante

  1. Vaya a aplicación/config/autoload.php
  1. establezca el valor de carga automática como $autoload['libraries'] = array('database', 'session');
  2. establezca el valor de Helper como $autoload['helper'] = array('url', 'file', 'form', 'html', 'text');

Ejecute múltiples aplicaciones en un sistema CI

Codeigniter se puede configurar para ejecutar más de un proyecto sin duplicar los archivos principales de CI.

Es posible dividiendo el lado de la aplicación de CI. Por ejemplo, tomemos un proyecto de sitio web, que contiene aplicaciones del sistema de administración de contenido (CMS) front-end y back-end. En este caso, la estructura de carpetas de CI será como:


Estructura de carpetas:

├── Codeigniter
│   ├── applications
│   │   ├─ front-end
│   │   │   ├── views
│   │   │   ├── models
│   │   │   ├── controllers
│   │   │   ├── config
│   │   │   └── ...
│   │   ├─ back-end
│   │   │   ├── views
│   │   │   ├── models
│   │   │   ├── controllers
│   │   │   ├── config
│   │   │   └── ...
│   │   │
│   ├── system
│   │   ├── core
│   │   ├── database
│   │   ├── helpers
│   │   └── ...
│   │   
│   ├── index.php
└   └── backend.php

En la carpeta aplicaciones creamos dos carpetas: front-end y back-end y copiamos todo el contenido predeterminado de aplicaciones en estas dos carpetas.

También duplicamos el archivo index.php en la carpeta raíz como backend.php

Lo siguiente es configurar CI para trabajar con estas dos instancias de la aplicación.


Configuración de Codeigniter:

Abra los archivos index.php y backend.php y actualice la configuración application_folder:

//index.php
$application_folder = 'applications/front-end';

//backend.php
$application_folder = 'applications/back-end';

Después de la configuración anterior, CI está listo para ejecutar dos aplicaciones en un sistema de CI:

La solicitud en example.com/Codeigniter/index.php abrirá la aplicación front-end

La solicitud en example.com/Codeigniter/backend.php abrirá la aplicación back-end

Aumente la seguridad ocultando la ubicación de sus archivos de CodeIgniter

Dentro de CodeIgniter, hay dos directorios principales de los que preocuparse: sistema y aplicación. La carpeta del sistema contiene las entrañas principales de CodeIgniter. La carpeta de la aplicación contendrá todo el código específico de su aplicación, incluidos modelos, controladores, vistas y otras bibliotecas relevantes.

Según las instrucciones de instalación de CodeIgniter, con el mejor interés de proteger su aplicación, tanto el sistema como la carpeta de la aplicación deben colocarse sobre la raíz web para que no se pueda acceder a ellos directamente a través de un navegador. De forma predeterminada, los archivos .htaccess se incluyen en cada carpeta para ayudar a evitar el acceso directo, pero es mejor eliminarlos del acceso público por completo en caso de que la configuración del servidor web cambie o no cumpla con el .htaccess.

├── CodeIgniter 
│   ├── application
│   ├── system
│   ├── wwwroot
│   │   ├── index.php

Después de mover las carpetas del sistema y de la aplicación, abra el archivo principal index.php y configure las variables $system_path, $application_folder, preferiblemente con una ruta completa, p. ‘/www/MiUsuario/sistema‘. Sin embargo, las rutas relativas deberían funcionar.

Para Linux/Apache:

$application_folder = './application';
$system_path = './system';

Para Windows/IIS:

$application_folder = '../application/';
$system_path = '../system/';