Resistance is Futile

Editor para PHP


Ya llevo unas 14 horas de trabajo con el Yii Framework y la verdad me ha gustado, se parece mucho a Prado, se pueden hacer componentes, el MVC es facil de desarrollar, la configuracion es rapida y el desempeño tambien, solo he tenido un problema con la intenacionalizacion de los nombres en las formas y que todavia no tiene un esquema de pruebas unitarias.

Pero esta entrada no es para hablar de Yii si no de la busqueda de un editor de PHP que por fin llego a su fin (como tambien la busqueda del Framework). Resulta  que hace tambien algunos dias andaba buscando un editor para PHP, que me permitiera hacer todas esas cosas que hacen hoy en dia para otros lenguajes como Java; estuve probando editores de codigo como el BlueFish y el Notepad++ los cuales son muy utiles cuando no se tiene o no se puede instalar un IDE como tal, pero queria un IDE de esos de verdad entonces mire Eclipse que no me termina de gustar y Aptana que tiene un soporte muy bueno para PHP pero de nuevo es Eclipse, asi que me dio por probar NetBeans 6.5 con soporte para PHP y me gusto, todavia no tiene todas las caracteristicas que tiene para Java, pero el soporte basico es bueno, eso si instale la version solo con PHP por que si instalo la J2EE y los plugins mi pobre maquina no aguanta asi que estoy utilizando el NetBeans de 36MB y funciona muy rapido. Algunas cosas que si me hacen falta es el Refactor y la generacion de pruebas unitarias.

Enlaces :


PHP Frameworks

PHP Frameworks

Despues de unas merecidas vacaciones las cuales aproveche para ver muchas peliculas, vuelvo al camino del desarrollo buscando un Framework para PHP para comenzar a desarrollar algunos proyectos que tengo en la cabeza. Desde mediados del año pasado ando buscando un buen Framework que me permita crear componentes reutilizables, que es una de las principales caracteristicas que busco, pues la idea es crear una serie de componentes y servicios reutilizables en PHP lo que trate de hacer con el Thunder (mi propio Framework ) que no aguanto tanto voltaje  de la Web2.0 y que ya esta obsoleto ... Larga vida al Thunder (OOPS, ahora si se firmo el acta de defuncion).

He estado mirando varias alternativas entre ellas: CakePHP, Zend, CodeIgniter, Symfony, Yii y Prado; este ultimo es el que he estado usando para uno de los proyectos de la Universidad y es el que mas me gusta, desafortunadamente tiene tantas cosas y es tan bueno, que eso mismo lo vuelve pesado y al momento de tener aplicaciones robusta su desempeño comienza a decaer, por tal motivo no me he decidido por el. Esta semana pude probar CodeIgniter que me gusto por su simplicidad y recorde los primeros dias de Thunder, es util para realizar proyectos pequeños pues permite hacer cosas bastante rapido, segui buscando y me di cuenta que todos los frameworks interesantes se pasaron al MVC (Modelo-Visor-Controlador), que habia utilizado en el desarrollo de Thunder y por eso no he tenido problemas en el uso de estos (aunque el Prado es mas orientado a eventos), pero creo que necesito algo mas potente que el CodeIgniter aunque me gusto.

Asi que voy a probar Yii que es la continuacion de Prado pero con MVC, con mejoras en el rendimiento y tambien es mas sencillo, asi que hare mi primera aplicacion en Yii de la cual estare contando aqui.

Enlaces :


Pagina de Prueba en PHP5

Para probar que nuestro servidor este respondiendo a los scripts php, creamos dos paginas de prueba, la primera es el tipico hola mundo, mientras la segunda visualiza las informacion referente a la configuracion y extensiones habilitadas en el servidor.

Hola Mundo en PHP :

  • Abrir una consola
  • Cambiar al directorio de paginas
  • Crear el archivo test.php
    vi test.php
  • Escribir el siguiente codigo :
    <?php echo 'Hola Mundo'; ?>
  • Abrir el navegador favorito y colocar la direccion :

    http://<IpServidor>/~<usuario>/test.php

Informacion de PHP :

  • Crear el archivo info.php
    vi info.php
  • Escribir el siguiente codigo :
    <?php phpinfo(); ?>
  • Abrir el navegador favorito y colocar la direccion :

    http://<IpServidor>/~<usuario>/info.php


Instalando PHP5 y Apache2 en Ubuntu 8.10

Para poder comenzar a desarrollar en uno de los tantos proyectos que tengo debo instalar un servidor web con soporte para PHP, por supuesto estamos hablando de Apache2 y PHP5 en Ubuntu 8.10 y aunque la tarea es muy sencilla, aqui van los pasos :

Instalar Software :

  • Instalar Apache2 y PHP5
    sudo apt-get install apache2 php5
  • Abrir el navegador favorito y entrar a

    http://<IpServidor>

  • Nos debe mostrar el popular
    It works!

Habilitando Paginas para los Usuarios :

  • Para poder publicar de una forma mas rapida y sencilla las paginas, me gusta activar el modulo de directorio de usuario, de tal modo los usuarios pueden publicar sus paginas sin necesidad de muchos permisos sobre el servidor, esto es ideal para el ambiente de desarrollo.
  • Abrimos una consola
  • Habilitar Modulo :
    sudo a2enmod userdir
  • Cambiamos al directorio home del usuario
    cd
  • Creamos el directorio donde publicaremos las paginas, debe tener el nombre public_html
    mkdir public_html
  • Reiniciamos el servidor web
    sudo /etc/init.d/apache2 restart
  • Abrir el navegador favorito y entrar a

    http://<IpServidor>/~<usuario>

  • Nos sale la lista vacia de archivos en el directorio y nos indica la version
    Apache/2.2.9 (Ubuntu) PHP/5.2.6-2ubuntu4 with Suhosin-Patch Server at 192.168.1.3 Port 80

Ahora tenemos nuestro servidor de paginas con soporte para PHP


LionGIS en Amazon EC2

Desafortunadamente al servidor de proyectos donde debia tener el proyecto del Sistema de Informacion Geografico se le quemo la fuente, por tal motivo estuve buscando una solucion para tener un servidor temporal de tal modo que pudieramos hacer pruebas antes de entregar los trabajos de este semestre, pero ya me cojio un poco la tarde para instalar uno en una maquina local, asi que lo monte el servidor utilizando los servicio del Amazon Elastic Compute Cloud.

Estos son los pasos a grandes rasgos que se deben realizar para crear un servidor Ubuntu Linux 8.10 con los paquetes necesarios para el GIS :

  • Tener una maquina con Linux para acceder al servicio, tambien se puede hacer desde Windows
  • Crear una cuenta de usuario en Amazon EC2
    http://aws.amazon.com/ec2/
  • En el menu Your Account seleccione la opcion Access identifiers
  • En la seccion de X.509 Certificate pulse el boton Create New para generar las llaves y certificados de seguridad.
  • Descarge la llave privada (recuerde que esta debe ser bien protegida) y descargue el certificado
  • Cree un directorio ec2 en el home de su cuenta
  • Copie los archivos descargados en el directorio
  • Descargue la herramientas de linea de comando y descomprima en el directorio ec2
    http://developer.amazonwebservices.com/connect/entry.jspa?externalID=351&categoryID=88
  • Exporte las variables utilizadas por los scripts de acceso a EC2
    Cambie los valores deacuerdo a la distribucion de Java, la version de las herramientas ec2 y los nombres de los certificados
    export JAVA_HOME='/usr/lib/jvm/java-6-sun'
    export EC2_HOME=~/ec2/ec2-api-tools-1.3-26369
    export EC2_PRIVATE_KEY=~/ec2/pk-HXN7TZ2KPONB4F4L63M47FMY7F4HNBDF.pem
    export EC2_CERT=~/ec2/cert-HXN7TZ2KEXEB4F4T56M47FMY7F4HNBDF.pem
    export PATH=$PATH:$EC2_HOME/bin
  • Cree un par de llaves para autenticarnos con el servicio de EC2
    ec2-add-keypair gsg-keypair
  • Copie el contenido devuelto al archivo id_rsa-gsg-keypair
  • Cambie los permisos del archivo
    chmod 600 id_rsa-gsg-keypair ; ls -l id_rsa-gsg-keypair
  • Ejecute una instancia utilizando la imagen de sistema operativo mas conveniente
    En este caso utilizamos un sistema base de Ubuntu 8.10, para una lista actualizada visite http://alestic.com
    ec2-run-instances ami-7806e211 k gsg-keypair
  • Identifique el numero de instancia devuelto por el comando, por ejemplo i-ae0bf0c7
  • Describa la instancia para obtener el estado y la URL
    ec2-describe-instances i-ae0bf0c7
  • Identifique el nombre de la maquina, algo como ec2-67-202-7-236.compute-1.amazonaws.com
  • Autorice el acceso por SSH y Web
    ec2-authorize default -p 22
    ec2-authorize default -p 80
  • Conectese a la maquina utilizando ssh
    ssh -i id_rsa-gsg-keypair root@ec2-67-202-51-223.compute-1.amazonaws.com
    En este caso entramos como root al Ubuntu

Debemos instalar los servidores para prestar el servicio web, base de datos, mapas

  • sudo apt-get install sudo apt-get install apache2 php5 php5-mapscript postgresql postgresql-8.3-postgis postgis phppgadmin unzip
  • Habilitamos el modulo de paginas para los usuarios en Apache
    sudo a2enmod userdir
  • Creamos el directorio donde almacenaremos la aplicacion
    sudo adduser liongis
    cd /home/liongis
  • Creamos el directorio para las paginas
    mkdir public_html
  • Reiniciamos el servidor web
    sudo /etc/init.d/apache2 restart
  • Abrimos un navegador en nuestra maquina local y vamos a :

    http://ec2-67-202-51-223.compute-1.amazonaws.com/~liongis

    Nos debe mostrar el contenido del directorio

  • Creamos el usuario y la base de datos
    sudo -u postgres createuser -P liongis
    sudo -u postgres createdb -O liongis liongis
  • Para poder acceder remotamente la PHPPgAdmin debemos modificar su configuracion para habilitar el acceso remoto
    vi  sudo vi /etc/phppgadmin/apache.conf
  • Debemos modificar el estilo de fecha del motor de base de datos postgresql
    sudo vi /etc/postgresql/8.3/main/postgresql.conf
    Buscamos datestyle y cambiamos mdy por dmy
    Reiniciamos el servidor sudo /etc/init.d/postgresql-8.3 restart
  • Copiamos los archivos de la aplicacion :
    El framework de Prado prado.zip. la aplicacion web liongis.zip
    y el backup de la base de datos liongis.tar
    scp prado.zip liongis.zip liongis.tar liongis@ec2-67-202-51-223.compute-1.amazonaws.com:/tmp
  • Decomprimimos en public_html el Prado y el LionGIS
  • Restauramos el backup de la base de datos
    pg_restore -d liongis liongis.tar
  • Abrimos la aplicacion web

    http://ec2-67-202-51-223.compute-1.amazonaws.com/~liongis/liongis

Para detener la instancia debemos ejecutar el comando

  • Para obtener la lista de instancias en ejecucion
    ec2-describe-instances
  • Para terminar la instancia
    ec2-terminate-instances i-10a64379

Guia de Inicio Completa Amazon Elastic Compute Cloud :Getting Started Guide (API Version 2008-08-08)
http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/


Page 4 of 41234
Powered by WordPress | Designed by Elegant Themes