Ir al contenido principal

Codeigniter+Geany en VenenuX Debian para novatos y humanos facil

CodeIgniter son herramientas php para no re codificar, Ejemplo: si siempre trabajas con mysql, bueno codeigniter la tiene ya iniciada y solo envias los querys/consultas ahorrando tiempo al no codificar la conexcion.
Este tutorial es para novatos, con palabras simples y sencillas, hecho para primerizos, ademas que no hay que saber mucho de programacion, pero permitira sentirte como programador.



Forma de trabajo: MVC o normal

Codeigniter es famoso porque emplea MVC pero no lo obliga, es decir, no es estricto lo que hace facil para nosotros los novatos:
  1. M de Modelo (Model), en el modelo codificas como obtienes datos desde la base de datos, aqui es donde haces los “querys” a la base de datos, y obtienes los resultados para manipularlos.
  2. V de Vista (View), en este codificas el como vas presentar los datos despues de haberlos manipulados
  3. C de Controlador (Controller), este es el que une todo, las acciones enviadas desde la vista, el las coordina con el modelo, el modelo le da los datos al controlador y este lo da a la vista.

Instalacion

Trabaja es para PHP y para desarrollar necesitamso herramientas y programas, como adicional si tiene maquinas viejas es mejor usar estas dos opciones:
  • Debian 7 LAMP: Maquinas 2006 al 2012 muy viejas -> https://sourceforge.net/projects/vegnuli/files/VenenuX-1.0/venenux-1.0-osposweb/debian-7-venenux-i386-20190531-snap.iso/download
  • Debian 8 LAMP: Maquinas desde 2010 hasta 2015 -> https://sourceforge.net/projects/vegnuli/files/VenenuX-1.0/venenux-1.0-osposweb/debian-8-venenux-i386-20190531-snap.iso/download
  • Debian actuales: seguir el instructivo:

1 - INSTALACION LAMP (Debian 9 y superiores)

Abrir una consola, y ejecutar “su” para cambiar al usuario root, recuerde que no usamos winbuntu, en esos casos es “sudo”:
x-guides-codeigniter-grocerycrud-debian-01.png
Una vez como root ejecutar los siguientes comandos, cada secuencia o comando que debe ejecutar esta separado por una linea de espacio:

cat > /etc/apt/apt.conf.d/50venenuxcustom << EOF
APT::Get::AllowUnauthenticated "true";
Acquire::AllowInsecureRepositories "true";
Acquire::AllowDowngradeToInsecureRepositories "true";
Acquire::Check-Valid-Until "false";
EOF
 
cat > /etc/apt/sources.list.d/51-mysql.list << EOF
deb http://repo.mysql.com/apt/debian/ $(lsb_release -s -c) mysql-5.6
deb http://repo.mysql.com/apt/debian/ $(lsb_release -s -c) mysql-5.7
deb http://repo.mysql.com/apt/debian/ $(lsb_release -s -c) mysql-tools
EOF

apt-get update

apt-get -y --force-yes install mysql-server mysql-client mysql-common mysql-community-server libmysqlclient20apt-get -y --force-yes install mariadb-server mariadb-client

apt-get -y --force-yes install lighttpd spawn-fcgi apache2-utils

apt-get -y --force-yes install php php-common php-cgi php-fpm php-cli \
  php-curl php-mbstring php-mysql php-bcmath php-xml php-xmlrpc

Despues de un rato de descargar, segun la version de Debian habra instalado el software de programas LAMP (lighttp, Mysql y PHP), ahora hay que integrar sus configuraciones al servidor web, ejecutando los siguientes comandos separados cada uno por una linea vacia:

sed -i 's/bind-address.*=.*/bind-address=127.0.0.1/g' /etc/mysql/mysql.conf.d/mysqld.cnf

/usr/sbin/service  mysql restart

/usr/sbin/lighty-enable-mod accesslog fastcgi-php dir-listing status userdir usertrack

sed -i -r 's|userdir.path.*=.*|userdir.path = "Devel"|g' /etc/lighttpd/conf-available/10-userdir.conf

for i in $(ls /home);do mkdir -p -m 777 /home/$i/Devel ;done

echo "<?php echo phpinfo();" > /var/www/html/infophp.php

rm  /var/www/html/index.lighttpd.html

/usr/sbin/service lighttpd restart

Esto configura el webserver nuestro directorio de documentos, el directorio “Devel” pueda contener archivos de servicio web y php sin tener que ser root:
x-guides-codeigniter-grocerycrud-debian-03-configurar-lighttpd-rapido-con-php.png

Probamos el servidor web y nuestro directorio colocando una tilde en la direccion del nombre de usuario, por ejemplo el /home/usuario/Devel sera en el navegador http://127.0.0.1/~usuario/ asi:

x-guides-codeigniter-grocerycrud-debian-06-localhost-webphp-user.png

2 - INSTALACION HERRAMIENTAS Y CODEIGNITER

Ya tenemos en equivalente a entorno LAMP (web server y php con mysql), ahora necesitamos el editor de texto para codigo fuente y el gestor de cambios y control de versiones:
Abrir una consola, y ejecutar “su” para cambiar al usuario root, recuerde que no usamos winbuntu, en esos casos es “sudo”:
x-guides-codeigniter-grocerycrud-debian-01.png
Como root ejecutar los siguientes comandos, cada secuencia o comando que debe ejecutar esta separado por una linea de espacio:

apt-get --ignore-missing -y install geany geany-plugins giggle git meld  mysql-workbench

NOTA Si el comando resulto en error que no existe el paquete “mysql-workbench” repita pero borrando “myql-workbench”, sucede solo en Debian 10, para este descargar de la pagina web de oracle el de ubuntu 18 e instalar en el Debian 10 con dpkg -i mysql-workbench*.deb desde el directorio donde se descargo.
Despues de instalar tendra listo para ejecutar desde el menu “Desarrolo” :

x-guides-codeigniter-grocerycrud-debian-08-programas-desarrollo.png
x-guides-codeigniter-grocerycrud-debian-07-mysql-workbench.png

El framework en realidad es un conjunto de archvos php, que se copiaran a su proyecto y seran como la base en el cual se trabajara.
IMPORTANTE NO EJECUTAR ESTOS PASOS COMO ROOT SINO COMO USUARIO NORMAL su usuario.
  1. Abrir una consola de linux normal
  2. cambiarse al directorio “Devel” asi:
  3. Descargar el codeigniter en Devel asi:
  4. Descargar GroceryCrud para no hacer vistas de reportes de datos de tablas
  5. Crear un directorio para su nuevo proyecto
  6. Descomprimir el codeigniter para la base de su proyecto y groserycrud
Para cada uno de estos pasos ejecute los siguientes comandos despues de abrir la consola de linux como usuario normal, cada uno separado por una linea vacia:

cd ~/Devel

wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.11.tar.gz -O CI3.tar.gz

wget https://github.com/scoumbourdis/grocery-crud/archive/v1.6.3.tar.gz -O CI3-GC-v1.6.3.tar.gz

mkdir ~/Devel/projectphp1

cd ~/Devel/projectphp1 && tar -xf ~/Devel/CI3.tar.gz --strip 1

cd ~/Devel/projectphp1 && tar -xf ~/Devel/CI3-GC-v1.6.3.tar.gz --strip 1
 

x-guides-codeigniter-grocerycrud-debian-09-directorio-devel.png
El proyecto estara ya listo para empezar codificar, (la siguiente seccion enseña como), se puede verificar en el navegador, usando la ruta:
x-guides-codeigniter-grocerycrud-debian-10-proyecto-devel.png

Usando Codeigniter y Geany

El IDE geany nos da todo lo necesario incluso navegacion web, no necesitamos de un navegador pesadisimo como firefox o chrome, para esto debemos configurar los dos plugins mas importantes: “treebrowser” y “webhelper”.
El geany tiene tres regiones principales, tambien movibles aunque inicialmente viene asi:
  1. Area de codificacion, es el area principal superior y a la derecha.
  2. Area de archivos, es el area secundario, superior y a la iquierda.
  3. Area de mensajes y web, es el area de multiusos, en el inferior.
Despues debemos configurar en el codigo Codeigniter nuestro proyecto, y ver como se ven nuestros cambios en el IDE geany.
x-guides-codeigniter-grocerycrud-debian-13-usando-ci-geany.png
Habilitar el plugin de “treebrowser” para ver archivos del proyecto en contexto:
  1. Abrimos el editor geany desde el menu,
  2. En la barra superior, en “Herramientas” abrimos el apartado “Administracion de complementos”,
  3. Navegamos hacia el final y vemos el complemento “Visor de arbol”
  4. Activamos la casilla y vemos que aparece al lado una nueva pestaña
En esa pestaña nueva es que estableceremos el directorio “Devel”, foto:
x-guides-codeigniter-grocerycrud-debian-14-usando-ci-geany-plugin-tree.png
Abrimos el proyecto desde el area de archivos
  • 1 - Para ver el arbol de proyecto debemos navegar entre las pestañas, estas aparecen con flechas hacia los lados para activar cada pestaña necesitada, la que se necesita es la de “Visor de arbol”
  • 2 - Puede introducir la ruta de su directorio donde esta el proyecto en la direccion directamente en donde esta ubicado los archivos.
  • 3 - Al ubicar el proyecto se pueen navegar los archivos para ubicar el directorio Application/config que es el primero en revisar en un proyecto CI, y estos son los archivos a comenzar modificar:
x-guides-codeigniter-grocerycrud-debian-15-configurando-ci-geany.png
  • config.php Configuracion general en application/config/config.php, en este archivo hay que asegurar los siguientes parametros:
    • base_url es bueno etablecer una autodeteccion , asi que aqui configuraremos para que se establezca automatico con este codigo: ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']); sustituyendo en el espacio donde coloca '';.
    • index_page asegurarse que este establecido en 'index.php'; ya que es la manera mas compatible entre varios servidores web.
    • log_threshold este parametro permite generar un archivo de actividad llamaod “archivo log” y para eso hay que colocarlo en el valor numerico de 4; sin comillas simples (esta en cero).
    • log_file_permissions colocarlo en 666; asi archivo de log que se generara para que tanto el usuario como el servidor web puedan leer y generarse.
    • encryption_key debe colocar una frase aleatoria o sin legibilidad, sin secuencia alguna de letras y numeros de exactamente 32 digitos es decir tiene que tener 32 letras o 32 digitos de numeros o combinacion de ambos, por ejemplo '1234567890asdfghjklñ1234567890as'; claro que este ejemplo es muy simple, use mas creatividad.
  • routes.php Enrutamiento de visitas web en application/config/routes.php aqui se define las rutas que se “llaman” en el navegador:
    • default_controller aqui al instalar CI esta en 'welcome' y es el nombre del archivo php controller que manejara si no se especifica ninguna llamada web hacia el proyecto cuando se visite.
  • autoload.php este permite cargar automaticamente ciertos sistemas ya codificados en el DI framework, y el mas comun es la libreria de base de datos o ayudantes para sustitucion de codigo:
    • heper aqui se pueden carga tre de mucha utilidad, que son el de formularios, el de url y el de html, ayudan a no escribir pedazos de codigo repetitivos, se establecen a el valor: array('form', 'url', 'html'); para cargar los tres.
    • libraries aqui se debe colocar que tipo de carga y logica desea se carge, la principal es la de base de datos, y otra importante es la de tablas html, se cargan asi: array('database', 'table');
  • 4 - al terminar de configurar ya podra “probar” su proyecto en el mismo servidor web acabado de instalar, como “127.0.0.1” en el navegador tal cual se mostro en las imagenes anteriores, sin necesidad de ser root.
Abriremos el mysqlworkbench para poder crear la base de datos que usaremos.
  1. En el menu superio seleccionar el de “Database”, porque no viene en español.
  2. Despues seleccionar el elemento “Manage Connections” para crear la conexcion.
  3. Al abrirse el cuadro de dialogo pulsar el boton “new” abajo en la esquina.
  4. Colocar el nombre por ejemplo “localhost” arriba
  5. Seleccionar “local pipe/Socket” en el tipo de conexcion debajo del nombre.
  6. En el ruta/host colocar “/var/run/mysql/mysql.sock” para casi todos los debian.
  7. colocar el nombre de usuario, generalmente root ya que es local en su maquina.
x-guides-codeigniter-grocerycrud-debian-17-configurando-ci-mysql-workbench.png

Entendiendo a codeigniter para codificar

El funcionamiento es “yo pido en el navegador” -> “el servidor responde si el controlador existe”, este “servidor responde” se le llama “response” y la peticion que realiza “yo pido en el navegador” se le llama “request”, a este par se le denomina en desarrollo coo “peticon - respuesta” o mejor denominado “request - response” (mal llamado cliente servidor).
Codeigniter maneja estas peticiones en los “controller” que estan en applications/controller/ cada archivo es un controllador unico, y cada controlador es uan peticion, entonces
  • tenemos un controlador “welcome” en appliactions/controller/welcome.php
  • en el navegador para llamarlo se usa http://127.0.0.1/~general/projectphp1/index.php/welcome/
  • en eso la url base es http://127.0.0.1/~general/projectphp1/
  • y el controlador es el depeus de “index.php” asi:
x-guides-codeigniter-grocerycrud-debian-12-codeigniter-config-url.png
Para tener una nueva url de “request” en el proyecto hay que:
  1. crear una clase nueva en controller
  2. la clase se llame igual que el archivo php nuevo
  3. la primera letra mayuscula, ojo,
  4. y en este debe existir un metodo “index” siempre.
  5. en el metodo index se puede simplemente escribir un “echo”
  6. vemos en el navegador agregando despues de “index.php” /nuevocontrol/
entonces asumamos el archivo es “nuevocontrol.php” con este codigo:

<?php
class Nuevocontrol extends CI_Controller 
{
 public function index()
 {
  echo "Este es el nuevo conroller, nuevocontrol";
 }
}

Cada uno de los seis pasos anteriores se puede ver en la ilustacion:
x-guides-codeigniter-grocerycrud-debian-18-usando-ci-geany-nuevocontrol.png

RESUMEN

En este documento realizamos las siguientes actividades:
  1. Instalamos los programs para servir como servidor web de desarrollo en la misma maquina que desarrollaremos.
  2. Los programas de servidor fueron lighttpd como servidor web, y mariadb como servidor de base de datos, adicinalmente se instalo el entorno php ya que CI funciona es para php.
  3. Instalamos los programas para herramientas en la maquina de desarrollo para codificar que se muestra en el siguiente documento.
  4. Las herramientas de desarrollo para codificar son geany como editor de texto, mysql-workbench como administrador de la base de datos, y git como gestor de control de versiones.
  5. Configuramos el editor IDE geany para tener el proyecto abierto, navegar en sus archivos, y previsualizar sin usar navegador web.
  6. Descargamos los archvos de Codeigniter para trabajar en un proyecto nuevo, y le agregamos el GreceryCrud que permite trabajar datos.

Comentarios

Entradas más populares de este blog

Zabbix monitorizacion y admnistracion de redes - introduccion

  Esta herramienta, Zabbix se centra en los hosts: por lo que es la opción correcta para monitorear redes distribuidas (se desarrolló originalmente para monitorear servidores). Zabbix también es administrador , y está listo para ipv6! Con un proxy como hombre en el medio y también con funciones para redes ocultas y con cortafuegos. En los casos en los que no existe la opción de instalar un agente, Zabbix ofrece una supervisión básica sin agentes. Con él, puede verificar la disponibilidad de los servicios de red, así como ejecutar comandos remotos, con esta introducción comenzamos una serie de publicaciones sobre el despliegue de Zabbix en alpine y / o debian linux, también para redes distribuidas. Entonces empezemos a entender a zabbix:

Errores de pam_mysql: símbolo my_make_scrambled_password y dlerror

. el viejo Linux siempre funciona, los más nuevos son una mierda, pero aquí estamos y debemos solucionar.. para que se arregle esa basura: pam_mysql simplemente no se carga en Debian, porque se mueve a "ubicaciones segura"s, además, viene con algunos problemas en Debian 7, Debian 8 y Debian 9 si usas diferentes versiones de Mysql / Mariadb. Aquí las soluciones simples y otras:

ostiket 1.9.X solucion a STARTTLS failed code: 220, response OK

  ..en osticket 1.12, 1.10 asi como 1.9 si tiene un sistema de corro fuertemente configurado.. y quiere conectarse localmente (es decir no necesitamos alta seguridad) la configuracion es imposible con localhost aun cuando su puertos estan 100% cerrados y es ILOGICO TANTA SEGURIDAD!!! El mas ilogico de sus problemas fue " oticket authentication failure [SMTP: STARTTLS failed (code: 220, response: Ok)] ",...

bandeja de iconos e indicadores desaparecen con ayatana - Linux no es más GNU linux

En Alpine sabemos que todo es la vieja escuela, si intentas instalar en Alpine todo a mano, o en Debian a mano sin las recomendaciones activadas; en ambos casos, notaras que no apareceran los iconos en la barra de tareas! Si! tal cual sospechas, tiene que ver con una mierda windowisada y estandares! Si caiste de la mata con la inclusion de codigo Microsoft en el kernel, si la mierda ya huele con la invasion de shitstemd, te caeras y volveras a caer cuando te enteres que Canonical creo un estandar para el area de notificacion "que unifica todo los indicadores del sistema"! Si .. mas software que intenta tomar control unificado. Winlinux se acerca.. y no hacemos nada para proteger la libertad de diversidad que ofrecia linux! ! .

libretro viene y pronto estara en tu tv o telefono

Libretro es un multisistema como mame, pero enfocado a multimedia, es decir   no se extrañen pronto jugar viejos games o poner roms emuladores de play en su tv o bluray   player! porque libretro esta hasta para televisores!

Actualizando debian (old)stable a debian (new)stable

Debian 11 fue lanzado, ahora le mostraremos cómo actualizar de cualquier Debian a cualquier Debian nuevo. Significa que puede actualizar cualquiera, por ejemplo, Debian 12 futuro a Debian 13 futuro, o inclusive oldoldstable a siguiente oldstable.

Tomando en cuidado optimizaciones para estupidos novatos

En general, los ignorantes y los lammers al compilar algo, en su mal conocimiento, simplemente siguen algunas palabras y obedecen las introducciones a la mala comodidad ... Si le preguntas a StackOverFlow, solo hay noobs que le darán respuestas incorrectas .. Verifiquemos este caso: ...

Diversidad de los Sistemas de Inicio en peligro en Debian afecta a otras distros

Una posible mancha ocupara la libertad de elección de usuarios avanzados para la distro madre: Debian; uno que respete la diversidad y la libertad de elección a nivel de «Sistemas de Inicio (Init), todo debido a la futura Resolución General del Proyecto DEBIAN sobre como la gran Distro Madre debe abordar la Diversidad existente sobre los Sistemas de Inicio. Resumiendo hay 3 resoluciones que eliminan las libertades de diversidad, dejando solo el "systemd", de allí el que mas gente odie a systemd, a todo esto se le denomina "un enfoque sano de PID1" en el argot técnico. Sus consecuencias: muerte/obstrucción al trabajo de otras distros mediante carga de trabajo extra debido a que solo existirá systemd: Devuan y MXLinux entre otras.

virtualbox GURU_MEDITATION y VERR_PGM_PHYS_PAGE_RESERVED, casos y soluciones

Error ocurre cuando se tiene mala configuracino de CPU, RAM o NET, por ejemplo la maquina esta en 32bit y el os es 64, o se configuro mucha ram o casi mas de la mitad respecto la real. Guru Meditation -1618 (VERR_PGM_PHYS_PAGE_RESERVED pero encontrar como arreglarlo es dificil ya que no se sabe la causa real puesto es un probelma de configuracion del xml/vdm y sucede mcuho cuadno se crean VM por linea de comandos, asi que pongo los casos mas comunes que lo pueden solventar: CASO1: memoria mal asignada o no accedible es muy comun si usas varias VM y estas son de usuarios distintos, aqui es facil si tienes 2G de ram y ya tienes uan VM con 1G asignada, si tratas de arrancar otra VM con tambien 1G asignada esta fallara con ese error la solucion es disminuir ambas a 512 ya que no puedes arrancar varias VM y estas abarquen mas de la mitad de la ram del sistema real. Menos si son desde ditintos usuarios en la misma maquina real. CASO 2: mala configuracion de discos/ide...