24 enero 2013

Solución: PHPMyAdmin No se pudo cargar la extensión mcrypt, <br/> ...

Problema: al ejecutar PHPMyAdmin aparece un error y/o aviso, No se pudo cargar la extensión mcrypt,<br/> ; por favor revise su configuración de PHP. En mi caso particular fue en un Linux Ubuntu, y la solución la describiré para tal sistema.

Solución: Abrir una consola y ejecutar:
alejandro@ubuntu:~$ sudo updatedb
Esto suele tardar varios segundos, luego ejecutamos
alejandro@ubuntu:~$ locate libmcrypt
/usr/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4.4.8 /usr/share/doc/libmcrypt4 /usr/share/doc/libmcrypt4/changelog.Debian.gz /usr/share/doc/libmcrypt4/changelog.gz /usr/share/doc/libmcrypt4/copyright /var/cache/apt/archives/libmcrypt4_2.5.8-3.1_amd64.deb /var/lib/dpkg/info/libmcrypt4.list /var/lib/dpkg/info/libmcrypt4.md5sums /var/lib/dpkg/info/libmcrypt4.postinst /var/lib/dpkg/info/libmcrypt4.postrm /var/lib/dpkg/info/libmcrypt4.shlibs

Las librerías que buscamos están en las dos primeras líneas en la ubicación "/usr/lib" Entonces ahora hay que buscar y modificar los php.ini para indicarles esta ruta Búsqueda: alejandro@ubuntu:~$ locate php.ini /etc/php5/apache2/php.ini /etc/php5/cli/php.ini /usr/share/doc/php5-common/examples/php.ini-development /usr/share/php5/php.ini-production /usr/share/php5/php.ini-production-dist /usr/share/php5/php.ini-production.cli

Modificación: Abrimos los archivos como superusuario (root) :
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
Nos vamos a la sección del archivo donde está [mcrypt]
; For more information about mcrypt settings see http://php.net/mcrypt-module-open ; Directory where to load mcrypt algorithms ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) ;mcrypt.algorithms_dir= ; Directory where to load mcrypt modes ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) ; mcrypt.modes_dir=

Cambiamos las líneas 1841 y 1844 así;
mcrypt.algorithms_dir="/usr/lib"
mcrypt.modes_dir= "/usr/lib"

NOTA: quitar el punto y coma del principio de estas dos líneas

Reiniciamos apache alejandro@ubuntu:~$ sudo /etc/init.d/apache2 restart
Y comprobamos el resultado ejecutando phpMyAdmin, esto es todo.

RedHat lanza la plataforma cloud OpenShift para código abierto

Aprovechando la experiencia de RedHat en las soluciones Jboss y en el mercado de código abierto, OpenShift está diseñada para evitar el bloqueo del modelo cloud PaaS en soluciones propietarias, permitiendo a los usuarios elegir el proveedor de cloud sobre el que ejecutar sus aplicaciones. OpenShift estará disponible como un servicio online.

Red Hat OpenShift proporciona, según la compañía, mayor flexibilidad que cualquier otra PaaS al ofrecer más marcos de desarrollo para Java, Python, PHP y Ruby, entre los que se incluyen Spring, Seam, Weld, CDI, Rails, Rack, Symfony, Zend Framework, Twisted, Django y Java EE. Incluye almacenamiento de datos tanto SQL como No SQL y un sistema de archivos distribuido. Al apoyarse sobre el estándar interoperable cloud de Deltacloud, OpenShift está diseñado para permitir a los desarrolladores en código abierto ejecutar sus aplicaciones en cualquier proveedor de cloud pública certificado de Red Hat, eliminando el bloqueo asociado con la primera generación de proveedores PaaS.

OpenShift dispone de soporte para MongoDB y otros servicios certificados de Red Hat Enterprise Linux. Con la amplia oferta de frameworks y lenguajes, Red Hat OpenShift ofrece una excelente selección de funcionalidades para desarrolladores en el cloud.

A mí en particular me llamo la atención porque se abre una nueva posibilidad para los desarrolladores de poder experimentar con Rails, Djnago y similares en la nube.

Web de OpenShift Extraido de www.networkworld.es

Resolver problemas matemáticos Online ( Resolvedor, Solver, Resolutor..)

Wolframalpha.com les llevara a un sitio capaz de resolver casi cualquier tipo de problema matemático con el que nos podemos encontrar.

Prueben con este ejemplo:
-1≤((|(x^3)-1|)/(x-1))<2 cópienlo y peguenlo en Resolver

Sorprendido con el resultado, copia y pega esto x^2 ahora. ¿Viste la gráfica? genial ¿no?

Wolframalpha.com es una herramienta excelente y una clara carterista positiva de la red, nuestra red, Internet.

23 enero 2013

Instalar un servidor LAMP sobre Ubuntu 10 en cinco minutos (Apache2 PHP5 MySql-Server)

Vamos a proceder a instalar un servidor web Apache2 con PHP5 y un servidor de bases de datos MySQL. La instalación será mediante consola.
  • Instalar Apache2

    sudo apt-get install apache2 Para comprobar que está instalado abrimos un navegador y ponemos la dirección http://localhost Debe aparecer algo como

    It works!

    y un par de lineas más.

  • Instalar PHP5

    sudo apt-get install php5 Para comprobar que el PHP5 esta instalado, creamos un archivo llamado prueba.php y escribimos en el esta linea: < ?php echo 'hola' ?> Luego copiamos este archivo en el directorio /var/www y abrimos un navegador y escribimos la dirección: http://localhost. Pues si en el navegador debería decir la palabra hola.

  • Instalar MySQL Server

    sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql Con estas linea de comando instalamos en servidor mySql y las librerías para incorporarlo con el Apache2. Para comprobar que esta instalado desde la línea de comando tecleamos mysql -u root -p Luego para salir ponemos q. Para gestionar de forma mas cómoda la base de datos podemos instalar el phpmyadmin sudo apt-get install phpmyadmin y también ejecutamos: sudo ln -s /usr/share/phpmyadmin /var/www/ para poder acceder mediante web que es como se utiliza. http://localhost/phpmyadmin.

Pues con estos sencillos comandos tenemos instalado un servidor web que soporta php5 y mySQL. Para gestionar los servidores y muchas cosas mas de Ubuntu echenle un viztaso a la aplicación Webmin.

Existe algo más que Apache y que Subversion... Te suena Nginx o Git

Bien es cierto que cuando uno anda por la sendas del desarrolo de aplicaciones es casi obligatorio que te suene el nombre subversion y si el desarrollo es orientado a web te debe sonar Apache. Hace poco tiempo viendo un caso práctico de desarrolo con Symfony supe que no todo es Apache y Subversion. Una alternativa a Subversion es Git y una alternativa a Apache es Nginx.

Bitácora de comandos Linux

  • Sistema

    • Información de la distro $ lsb_release -a
  • Buscar cadenas en archivos

    • find . | xargs grep 'string' -sl

    • Filtrando por el tipo de archivo:
      find . -iname '*php' | xargs grep 'string' -sl
    • Filtrando también por reciente modificación:
      find . -iname '*php' -mtime -1 | xargs grep 'string' -sl


  • Procesos en ejecución

    • ps -A
    • top
    • htop


Programación orientada a objetos con Perl mediante el sistema Moose

Con Perl podemos desarrollar código orientado a objetos pero tiene sus limitaciones, existe un modulo, sistema de Perl llamado Moose que extiende las funcionalidades estándar de la POO en Perl y también de otros lengujes, por ejemplo "además de la herencia podrás utilizar roles (también conocidos como mixins), tendrás la capacidad de alterar fácilmente el comportamiento de una clase desde un rol, podrás delegar la de una clase en otra de manera mágica, establecer contratos, inicialización perezosa,...". Estas cualidades o funcionalidades no las tienen muchos de los lenguajes con los que se puede escribir código orientado a objetos. Si quieres averiguar más sobre Moose, para empezar recomiendo este articulo desde un blog llamado perliscopio. Para ir más allá véase el aparatado de Moose de la extraordinaria documentación oficial de Perl, también intente comprender el código de las recetas cookbook, aprender con ejemplo resulta fácil a veces.

Centro oficial diseñadores Android

Configurar Virtual Hosts en Apache para un proyecto de Symfony en Ubuntu

El contenido de este post está basado y extraído del libro Practical symfony 1.3 & 1.4. Yo he probado esta configuración y lo que voy a describir en:

  • Ubuntu 10.10 Apache/2.2.16 (Ubuntu)
  • PHP 5.3.3-1ubuntu9.3
  • mysql Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (i686)

Una buena práctica web es poner bajo el directorio raíz web sólo los archivos a los que necesita tener acceso el navegador web: las hojas de estilo, JavaScripts, o imágenes.

Te recomendamos almacenar estos archivos en el subdirectorio web de un proyecto symfony. Si echas un vistazo a este directorio, encontrarás algunos sub-directorios para los recursos web y los dos archivos de los controladores frontales. Los controladores frontales son los únicos archivos PHP que necesitan estar bajo el directorio raíz web. Todos los demás archivos PHP se pueden ocultar del navegador, la cual es una buena idea en lo que respecta a seguridad. A continuación debes modificar la configuración de Apache para hacer accesible el proyecto a cualquier usuario del mundo.

Localiza el archivo de configuración httpd.conf y añade lo siguiente justo al final del archivo:


# Asegúrate de tener sólo una vez esta línea en su configuración
NameVirtualHost 127.0.0.1:8080

# Esta es la configuración de Jobeet
Listen 127.0.0.1:8080

<VirtualHost 127.0.0.1:8080>
   DocumentRoot "/ruta/al/directorio/web"
   DirectoryIndex index.php
   <Directory "/ruta/al/directorio/web">
      AllowOverride All
      Allow from All
   </Directory>

   Alias /sf /ruta/al/archivo/symfony/data/web/sf
   <Directory "/ruta/al/archivo/symfony/data/web/sf">
      AllowOverride All
      Allow from All
   </Directory>
</VirtualHost>

El alias /sf te da acceso a las imágenes y los archivos JavaScript necesarios para adecuadamente mostrar las páginas symfony por defecto y la barra de herramientas de depuración web.

En esta configuración, Apache escucha en el puerto 8080 de tu máquina, por lo que el sitio web de Jobeet será accesible en la siguiente URL: http://localhost:8080/ Puedes cambiar 8080 por cualquier número mayor que 1024, ya que no se requieren derechos de administrador en esos puertos.

Hasta ahora hemos logrado indicarle al apache que nos muestre e interprete el contenido web que tenemos en una determinada carpeta, en este caso la carpeta web de Symfony, pero se puede ir un paso mas allá y establecer un nombre de dominio.

Si eres el administrador de tu equipo, es mejor configurar un virtual host en lugar de añadir un nuevo puerto cada vez que se inicia un nuevo proyecto. En lugar de añadir un puerto y agregar una declaración Listen, elige un nombre de dominio y añade la declaración ServerName:


# This is the configuration for Jobeet
<VirtualHost 127.0.0.1:80>
   ServerName jobeet.localhost
   DocumentRoot "/ruta/al/directorio/web"
   DirectoryIndex  index.php
   <Directory "/ruta/al/directorio/web">
      AllowOverride All
      Allow from All
   </Directory>
   Alias /sf /ruta/al/archivo/symfony/data/web/sf
   <Directory "/ruta/al/archivo/symfony/data/web/sf">
      AllowOverride All
      Allow from All
   </Directory>
</VirtualHost>

El nombre de dominio jobeet.localhost tiene que ser declarado localmente. Si se ejecuta un sistema Linux, que tiene que hacerse en el archivo /etc/hosts. Añade la siguiente línea:

 127.0.0.1 jobeet.localhost 

Recomendación: Cuando se complican con estos pasos, los usuarios de Distribuciones Linux, como Ubuntu, pueden usar una herramienta gráfica que simplifique aún más esta configuración. Rapache, es un software para sistemas Gnome que hace la configuración básica y necesaria, en los archivos /etc/hosts y httpd.conf, en un solo paso además de permitir el reinicio de Apache con un clic.

13 enero 2013

Activar mod_rewrite de Apache2 en Ubuntu

El mod_rewrite es un módulo de Apache que permite modificar lo que aparece en la barra de dirección, supongamos que tenemos lo siguiente: index.php?mod=index&taskid=9, podría quedar: /task/9. La verdad nunca lo he usado a pie, pero se necesita tener activado este módulo para poder utilizar diversas aplicaciones y frameworks (como CakePHP). Veamos como activarlo en Ubuntu 7.10. (ha sido probado tambien en ubuntu 10.10).

Como siempre en Ubuntu todo es más fácil, esta distribución se la recomiendo a todos aquellos que quieran empezar a familiarizarse con GNU/Linux. Entonces tecleamos lo siguiente en la línea de comandos:

$ sudo a2enmod rewrite

El comando a2enmod (podría ser una abreviatura de Apache2 Enable Module) sirve para activar módulos que se encuentren en el directorio /etc/apache2/mods-available y los pasa al directorio /etc/apache2/mods-enabled.

Ahora lo que sigue es modificar nuestro host donde queremos que aplique el rewrite, en mi caso sera para todo lo que este dentro de mi localhost, entonces me voy al directorio /etc/apache2/sites-enabled/ y aquí debe de haber un archivo llamado 000-default, lo abrimos con vim, nano, gedit o kate.

$ sudo vim /etc/apache2/sites-enabled/000-default

Aquí buscamos en las líneas que digan AllowOverride None y las cambiamos por AllowOverride All. Incluso podemos definir que directorios queremos que aplique es rewrite y cuales no.

Por último tenemos que reiniciar Apache2:

$ sudo /etc/init.d/apache2 force-reload

o también

$ sudo /etc/init.d/apache2 restart

Activado el mod_rewrite.