Instalación, configuración y primeros pasos con CodeIgniter 3
- 👤 Andrés Cruz
CodeIgniter 3 YA no tiene soporte, esta en estado LEGACY y su arquitectura es obsoleta, crees tu primer proyecto en CodeIgniter 4.
En esta primera entrada veremos como instalar y configurar CodeIgniter en nuestro servidor (Linux/Windows o incluso Mac -los pasos no varían-) y dar los primeros pasos con el mismo.
¿Porqué seleccionar CodeIgniter?
Antes que nada hablaremos sobre algunas de las características y ventajas que ofrecen este maravilloso framework PHP; para lo que no sepan que es un framework un framework no es más que un esqueleto que nos ofrece o brinda muchas herramientas pre hechas o preconfiguradas para desarrollar aplicaciones, así elementos como el manejo de correos, captchas, login, sesión, etc ya existen y están instaladas (o son muy fáciles de instalar empleando librerías de terceros o del propio framework) y podemos emplearlas fácilmente sin conflictos entre sí; pero esto va mucho más allá.
Patrones a los cuales seguir
Un framework nos ofrece un esqueleto o patrón por el cual seguir que nos ayuda enormemente al momento de desarrollar aplicaciones, en el caso de CodeIgniter el patrón que emplea es MVC (modelo, vista y controlador) y dicho framework está estructurado por tal fin en base al MVC; por lo tanto podemos separar la capa de negocio, de la estructura de datos y la vista de presentación.
CodeIgniter, la mejor selección para proyectos de pequeña envergadura
CodeIgniter es un framework excelente de emplear para proyectos de pequeña o mediana envergadura, su lógica y desarrollo es muy simple, por lo tanto es ideal para programadores novatos ya que su curva de aprendizaje es muy baja.
CodeIgniter es un framework, rápido, fácil de instalar, configurar y de empezar a desarrollar, con una buena documentación oficial y mucho material en otros foros, tutoriales en Internet.
Requisitos de servidor
Como bien sabrás es necesario tener un servidor web con Apache y PHP para emplear el framework por hecho de que ya se tiene instalado y configurado todo el ambiente necesario: servidor web y base de datos (LAMP, WAMP, XAMPP, etc); CodeIgniter 3.19 necesita tener PHP en su versión 5.6 o superior; ahora veamos la tabla de contenido del resto de la entrada:
- Descargando CodeIgniter del site oficial
- Instalando CodeIgniter en cuatro sencillos pasos
- Observaciones adicionales sobre la instalación de CodeIgniter
1. Instalar Lamp: Apache, PHP, MySQL y PHPMyAdmin en MacOS
vamos a ver como instalar nuestro ambiente LAMP en Mac OS, que aunque debería ser un procedimiento sencillo lamentablemente en Mac OS se nos complica un poco el asunto y se asemeja más a instalar estas tecnologías web en un sistema con Linux que con Mac; un punto a favor a Windows en donde podemos instalarlo fácilmente todo este sistema mediante un .exe.
Manejar e instalar Apache, PHP y MySQL de manera independiente
Así que tenemos que manejar cada elemento web que queramos instalar o poner a funcionar de manera independiente como veremos en esta guía.
Habilitar Apache
Lo primero que tenemos que hacer, es ejecutar nuestro Apache; un punto a favor es que ya viene instalado por defecto al menos en las últimas versiones de Mac OS; así que simplemente lanza el siguiente comando:
sudo apachectl startY verás una pantalla como la siguiente en donde verás a tu servidor Apache plenamente funcionando:

Lo siguiente que haremos es ir a nuestro navegador y colocar nuestro típico http://localhost/ en la barra de dirección de tu navegador y esperar que todo vaya bien:

Todo bien hasta el momento y nada complicado.
Habilitar el módulo PHP en nuestro Apache
Lo siguiente que haremos es ir a nuestro /etc/apache2/httpd.conf en la siguiente dirección y con el siguiente comando:
sudo nano /etc/apache2/httpd.conf*Para eso empleamos el siguiente comando con el editor de texto integrado ya en nuestra terminal.

Y descomentar el módulo que corresponde a PHP de nuestro archivo de configuración; tal cual hacemos en Linux:

Luego de esto guardamos y por supuesto reiniciamos nuestro servidor Apache con el siguiente comando:
sudo apachectl restartVamos a ir a la siguiente dirección:
Library/WebServer/DocumentsY creamos un archivo PHP con el nombre que tu quieras y colocamos el típico phpinfo() y deberías ver una pantalla como la siguiente:

Instalar MySQL en tu Mac OS
Para instalar MySQL en nuestro servidor web de nuestra Mac, tenemos que ir al sitio oficial de MySQL que es el siguiente enlace y le damos donde dice Download y descargamos nuestro MySQL:


Unos momentos después iniciamos la instalación y listo, muy pendiente con recordar la contraseña que le colocaste que la vamos a emplear después; en nuestras Preferencias de Sistema veremos que ahora aparece un nuevo ícono o servicio que corresponde a MySQL:


Lo siguiente que vamos a hacer es terminar de configurar nuestro MySQL, para eso empleamos el siguiente comando:
Mac-mini-de-Andres:phpmyadmin andrescruz$ sudo mkdir /var/mysql /var/mysql/mysql.sock Mac-mini-de-Andres:phpmyadmin andrescruz$ sudo ln -s /tmp/mysql.sockLuego nos vamos a la siguiente dirección:

Y le damos el siguiente comando:
sudo ./mysql -u root -po
sudo mysql -u root -p
Como puedes ver, estamos ingresando a nuestra sistema de base de datos indicando el nombre y la contraseña que configuraste al momento de la instalación.
Si no te funciona y te da un error como el siguiente:
mysql command not foundEs decir, que no encuentra la instancia de MySQL, puedes probar colocando el arranque en el PATH de tu Mac; por tal motivo la instalación no agregó el PATH de MySQL a tu PATH de sistema; para eso simplemente escribe:
PATH=$PATH:/usr/local/mysql/binQue es donde está el PATH de instalación de tu MySQL (igual muy pendiente de revisar si ese es tu PATH de instalación); ahora tu PATH será como el siguiente:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:Una vez que puedas ingresar al sistema de MySQL ejecuta el siguiente comando:
ALTER USER root@'localhost' IDENTIFIED BY 'root';De esta manera modificamos el password de nuestra base de datos.
Instalar PhpMyAdmin
Por supuesto, PhpMyAdmin es el manejador de nuestra base de datos por excelencia que no puede faltar y también vamos a instalarlo; para ello vamos al siguiente enlace y lo descargamos; luego lo descomprimimos y movemos a la siguiente dirección:
/Library/WebServer/DocumentsLe cambiamos los permisos para que podamos trabajar con el.
cd /Library/WebServer/Documents
sudo chmod o+x phpmyadmin/Creamos una carpeta para las configuraciones (en el mismo directorio de phpmyadmin):
sudo mkdir config
sudo chmod o+x configEn nuestro navegador nos vamos a:
http://localhost/phpmyadmin/setup/Le damos a New Server (Nuevo servidor):

Y luego en Autentication en donde establecemos el password de nuestro sistema de MySQL:

Le damos al botón de download, descarga un archivo que debemos copiar en la carpeta config que creamos anteriormente.
Y con esto tendremos nuestro servidor funcionando perfectamente y podremos ingresar a nuestra base de datos desde:
http://localhost/phpmyadmin
mysqli_real_connect(): (HY000/2002): No such file or directory
Si te da el siguiente error:
mysqli_real_connect(): (HY000/2002): No such file or directoryPuedes probar con el siguiente comando:
alter user 'root'@'localhost' identified with mysql_native_password by 'root';Habilitar el MOD_Rewrite en Mac OS
Seguramente una vez que tengas ya tu LAMP 100% funcional en tu Mac, lo siguiente que quieres es habilitar el modo de escritura de las URL también llamado como mod_rewrite del cual ya hemos hablado antes lo que tienes que hacer son un par de cambios muy sencillos todos en el archivo de httpd.conf que puedes editar con el siguiente comando:
sudo nano /etc/apache2/httpd.confCon esto, debes ubicar el módulo comentado de:
LoadModule rewrite_module libexec/apache2/mod_rewrite.soEn mi caso está por aquí:
Y descomentar la misma, es decir, remover el #.
Luego de esto, tienes que ubicar un tag Directory como el siguiente:
<Directory "/Library/WebServer/Documents">
***Otras cosas
AllowOverride None
***Otras cosas
</Directory>Y reemplazar el None por un All:
<Directory "/Library/WebServer/Documents">
***Otras cosas
AllowOverride All
***Otras cosas
</Directory>Luego reiniciamos Apache y con esto tendrás el modulo de sobreescrituras de URL funcionando perfectamente y podrás emplear por ejemplo framework como CodeIgniter que requieren de esta característica para poder funcionar correctamente:
sudo apachectl restart
Instalar y configurar composer
Lo siguiente que vamos a ver es cómo podemos configurar composer en nuestra MAC; para eso, vamos a seguir la documentación oficial en el cual nos dice que, lo primero que tenemos que hacer es ir a la página de la documentación oficial y ejecutar un comando similar a este; te recomendamos que ejecutes el que te indica en la documentación oficial por si en algún momento el mismo varía en algo:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e5325b19b381bfd88ce90a5ddb7823406b2a38cff6bb704b0acc289a09c8128d4a8ce2bbafcd1fcbdc38666422fe2806') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"Este comando lo que hace es descargar el instalador, comprobar la descarga, ejecutar el instalador y finalmente borrar el instalador; a la final, tenemos un archivo llamado como:
Composer.pharQue viene siendo nuestro archivo que podemos emplear para instalar o emplear cualquier paquete por composer.
Instalar compose de manera global
Ahora, seguramente tener un archivo suelto por hay en nuestra Mac no viene siendo la mejor idea, qué tal si lo agregamos al path del sistema; para eso simplemente lo movemos al path designado:
mv composer.phar /usr/local/bin/composerAhora, podemos emplear composer de manera global en nuestro equipo.
2. Descargando CodeIgniter del site oficial
CodeIgniter 3 ya es un framework legacy, y lo recomendado es que uses la última que es la 4.
Si vas a comenzar lo recomendable es emplear la versión 3 en vez de la dos, ya que la versión está meramente por darle mantenimientos mínimos y en un futuro cercano dejaran de dar mantenimiento a la misma y la tres sería la única disponible.
3. Instalando CodeIgniter en cuatro sencillos pasos
Paso 1 - descomprimir: Luego de que te hicieras con tu copia de CodeIgniter; lo siguiente que debes hacer es descomprimir el paquete.
Paso 2 - subir al servidor: Luego subimos/cargamos o copiamos la carpeta resultante de la descompresión al servidor que ya tenemos instalado.
Paso 3 (opcional)- configuración general: Ahora configuraremos la URL base de la aplicación, para eso abrimos el archivo application/config/config.php y modificaremos la siguiente línea:
$config['base_url'] ="";Por:
$config['base_url'] ="http://localhost/codeigniter/";En donde:
- 'codeigniter': Es la carpeta que contiene el framework; puedes colocar el nombre que quieras, por ejemplo el nombre que tendrá tu aplicación y haces los cambios correspondientes en la línea de código anterior.
- 'localhost': Es el nombre del servidor.
Si va a emplear CodeIgniter en un servidor contratado, entonces deberá cargar el mismo vía FTP o algo similar.
Paso 4 (opcional) - configuración de la Base de Datos: Generalmente las aplicaciones web emplean base de datos, así que es muy probable que este sea tu caso; para ello debemos de configurar el archivo correspondiente que permite definir la base de datos, para eso nos vamos a application/config/database.php y buscamos las siguientes líneas:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'usuario-bd',
'password' => 'password-usuario-bd',
'database' => 'mi-bd',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);Y llenamos los 5 campos correspondientes, que son:
- dbdriver: Motor de la base de datos; por ejemplo puedes colocar: mysql, mysqli, postgreSQL, odbc y mysqli; según el motor con el que desees trabajar.
- hostname: Host en donde se encuentre alojada la Base de Datos (si tanto la aplicación como la Base de Datos se encuentran en la misma máquina puedes poner localhost).
- username: Usuario de la Base de Datos.
- password: La clave del usuario de la Base de Datos configurado en el paso anterior.
- database: Nombre de la Base de Datos a acceder.
3. Observaciones adicionales sobre la instalación de CodeIgniter
Como observación adicional; acuerdese de tener el mod_rewrite de apache activado.
Si todo ha salido bien; vamos a nuestro navegador web y colocamos:
http://localhost/codeigniterEn donde 'localhost' es el host en donde instalamos CodeIgniter (si fuera desde un servidor, sería el dominio del mismo) y 'codeigniter' es la carpeta que contiene la instalación del framework (si lo instalaste con la carpeta, si simplemente colocaste todo el contenido de la carpeta sobre la raíz del servidor, entonces no es necesario colocar el nombre de la carpeta en la URL).
Conociendo los aspectos básicos de CodeIgniter
Controlador por defecto:
Por defecto CodeIgniter tiene configurado el Controlador llamado Welcome, puedes ver el contenido en:
application\controllers\welcome.phpEste está configurado como controlador por defecto mediante el archivo
application\config\config.php
Que entre varias configuraciones, la misma presenta una similar a la siguiente:
$route['default_controller'] = 'welcome';En dicha línea se indica el nombre del controlador con el cual queremos que se ejecute la aplicación por defecto.
Si remueves la regla; es decir lo dejas así:
$route['default_controller'] ='';Se ejecutaría el controlador index.php; en el mismo podemos colocar cualquier otro controlador por el cual queramos que se ejecute la aplicación.
Helpers: centraliza tu código de propósito común
Los helpers son archivos que nos permiten agregar funciones de una categoría en común, por ejemplo para un blog, podemos crear un helper el cual define la creación de URLs limpias, los comentarios de una entrada, la construcción del contenido de la entrada, etc; por supuesto, también existen helpers provistos ya por el sistema con funciones comunes en base a una misma categoría; para cargar un helper hacemos lo siguiente desde nuestro controlador o componente:
this->load->helper( array('helper1', 'helper2', 'helper3') );Si solo vamos a cargar un helper:
this->load->helper('helper1');Podemos crear nuestros propios helpers en el directorio:
application/helpers
Los cuales son archivos php con el sufijo _helper.
Librerías: crea tu pieza de código más completo y especializado
Las librerías son una solución similar a los helpers, pero es más especializado y podemos emplear clases en las mismas para definirlas; para cargar librerías tenemos que:
$this->load->library('libreria);
También podemos crear nuestras propias librerías.
Autoload: Para la carga automática de componentes
El archivo autoload el cual está ubicado en:
application/config/autoload.phpPodemos indicar componentes que se carguen de manera automática, como librerías y/o helpers:
$autoload['libraries'] = array('database', 'session');
$autoload['helper'] = array('url', 'form');
Acepto recibir anuncios de interes sobre este Blog.
Veremos como instalar CodeIgniter en un servidor en localhost o de un hosting aparte.
| 👤 Andrés Cruz