Archive for the ‘entorno’ tag
Habilitar cURL en Ubuntu
La imagen que acompaña este post-nota no tiene mucho que ver con el contenido pues es muy surfera aunque pensándolo bien algo sí, ¿o no?, ¿tú que opinas?
La utilidad básica de cURL es esa leer información de diferentes protocolos, escribo este artículo porque la necesito para una classe bajo PHP que permite integrar el motor de traducción de idiomas de Google en una de mis aplicaciones web.
Mi configuración actual es Apache2 + PHP5 en un entorno Ubuntu 9.10 Karmic 64 Bits donde si realizo un phpinfo(); no me figura módulo alguno para usar las librerías de php para cURL necesarias para algunas classes php que toman datos de APIs externas.
Además de un módulo para PHP es un comando ejecutable desde línea de comando por ejemplo:
curl www.google.com
Te mostrará en la terminal el código HTML que hay tras esa dirección.
Instalar las librerías cURL para PHP
Os comento el proceso de habilitar cURL en mi versión de Ubuntu.
Lo primero es darte una vuelta por el archivo de configuración de PHP el famoso php.ini , para ello ejecuta en un terminal:
sudo nano /etc/php5/apache2/php.ini
Obviamente si no dispones del editor nano instalado o te es más cómodo el más visual gedit sustituye nano por gedit, eso sí nano es una excelente opción que merece la pena aprender a utilizar pues la podrás utilizar en servidores donde no tengas entorno gráfico, hay seguidores incondicionales de VI pero yo no lo soy en absoluto y prefiero nano.
También ten en cuenta que ese comando puede variar dependiendo de donde se encuentre el php.ini en tu máquina o si la versión de PHP o del Apache difieren.
Una vez dentro busca la cadena “curl” en Nano se hace presionando CTRL + W, si no la encuentras es que cURL no está instalado en tu sistema o en tu servidor, así que toca instalarlo, sal del editor, CTRL + Q y vamos de nuevo a la línea de comando para instalar cURL en Ubuntu:
sudo apt-get install php5-curl
Ahora se bajará los paquetes necesarios y comenzará el proceso de instalación. Una vez finalizado tan sólo te quedará reiniciar el servicio Apache2 con:
sudo /etc/init.d/apache2 restart
¡A programar!
Condiciones en mod_rewrite para la redirección
El denominado mod_rewrite es el módulo para el servidor web Apache que permite a nuestro servidor el uso de enlaces semánticos también denominados enlaces limpios o permalinks, por ejemplo:
http://www.dedavid.com/area/Aplicaciones+web/Programa+de+facturacion
en lugar de :
http://www.dedavid.com/?area=12&_id=244
Condiciones y excepciones para la redirección
Ahora bien, en ciertas ocasiones podemos necesitar lo utilizar ciertas excepciones. Por ejemplo cuando partiendo de un dominio queremos tener dos específicos, donde nos interesa redireccionar al nuevo dominio sólo cuando se consulta determinada página o cuando la URL contiene ciertos parámetros.
En los siguientes trozos de código definimos excepciones para que no se ejecute un redireccionamiento si se cumple la condición.
Este código que debe introducirse, al igual que todas las reglas y reescrituras deseadas en el fichero .htaccess que debe hallarse en la raíz de tu servidor web.
Ejemplos de redirección por llamada a fichero html y por valor de variable en la URL
Vamos con el primero donde si la página llamada es programas-facturacion.html direccionamos al dominio invOOice.com
RewriteCond %{REQUEST_URI} =/programas-facturacion.html
RewriteRule ^(.*)$ http://invOOice.com/$1 [R=301]
En la condición puedes utilizar los típicos comparadores aritméticos “=” para condicionar si es igual o “!=” para que se cumpla la redirección si no es igual.
Vamos ahora a por la segunda excepción, en este casi mirando la URL en lugar del nombre del archivo al que se llama, esto nos servirá para condicionar comportamiento atendiedo a las variables que contenga la URL:
RewriteCond %{QUERY_STRING} =21
RewriteRule ^(.*)$ http://invOOice.com/$1 [R=301]
Crear el fichero .htaccess en un servidor Windows
Cómo curiosidad y apunte comentaremos que si bien este tipo de archivos .htaccess es fácil crearlo bajo entornos Linux, existe una gran dificultad para su creación en sistemas operativos Windows porque no permiten crear archivos sin nombres ya que Windows entiende que .htaccess es únicamente un tipo de archivo o extensión, así que si tu servidor web es Windows deberás crearlo utilizando la siguiene triquiñuela, un comando de PHP que nos generará el archivo, luego para editarlo con un editor como Notepad++ (programa gratuito) será suficiente:
<?php
touch('.htaccess');
?>
Posicionamiento en buscadores
Por último y no menos importante recalcar el gran valor que representa el uso de enlaces limpios en el posicionamiento en internet, a modo de ejemplo podemos citar que en la web de cablematic.com, cliente al que le proporcionamos servicio de posicionamiento hemos conseguido un incremento del 50% en el volumen de visitas tras el uso de este sistema de enlaces en su tienda online.
Base de datos Cassandra
Migración de grandes hacia Cassandra db
Por la red ha saltado la alarma ya que Twitter pretende migrar al sistema de base de datos Cassandra, hasta la fecha los de Twitter confiaban en la base de datos mysql con un complejo sistema de Twitter.
No es la primera compañía que migra hacia Cassandra tras la adquisición de MySQL por Oracle, un movimiento que no ha sido del agrado de prácticamente ningún desarrollador, además con estos movimientos tan sólo acrecentamos el temor de que Oracle acabe ahorcando el proyecto libre MySQL en favor de sus sistemas de bases de datos de pago.
La base de datos Cassandra fue liberada por Facebook en el año 2008, en la actualidad es usada por servicios web de alto tránsito y de alta actividad en cuanto a base de datos se refiere, nombres como Rackspace, Digg, Facebook, Cisco, etc son algunas de las compañías que ya trabajan bajo Cassandra el echo de que muchas redes sociales de gran renombre la utilicen es garantía de su funcionalidad pues bien es sabido que tanto Twitter como Facebook y Digg son las aplicaciones web que mueven un mayor volumen de registros de bases de datos.
Características destacadas de Cassandra
Cassandra DB dispone de algunas características muy interesantes entre las que destacamos:
Tolerancia a fallos
Los datos son replicados en múltiples nodos de forma que si falla uno el sistema es capaz de leer los datos desde cualquier otro nodo sin problema alguno sin ningún tipo de downtime o tiempo de espera, elevando así el tiempo de operatividad muy por encima de MySQL.
Descentralización de los datos
Todos los clusters que conforman una base de datos disponen de la misma información por lo que los datos están replicados y se encuentran en todos los puntos aportando toda la ventaja que implica la descentralización de los datos.
Modelo de datos avanzado
Cassandra dispone de lo que se denomina un Rich Data Model es decir un sistema eficiente y simple para la ejecución de consultas a la base e datos.
Elasticidad
Te permite leer y escribir simultáneamente sin interrupciones.
Requerimientos de Cassandra
Servidor Apache, 1Gb. de mínimo de memoria RAM bajo entornos virtualizados, si el hardware es dedicado debería ser superior a 4Gb. de todas formas es habitual encontrarse cluster con 16 y 32 Gb. de memoria RAM.
A nivel de CPU Cassandra trabaja de forma excelente con sistemas multi-núcleo así que a mayor número de cores, mayor rendimiento. Así pues si precisas de un gran rendimiento, no te cortes y tira por sistemas de cuatro u ocho núcleos.
Capacidad de disco, ideal 2 discos por cada cluster, en uno se almacena el llamado CommitLogDirectory o fichero de registro de activicidad (log) y en el otro los datos o DataFileDirectories.
Sistema operativo, lo mejor un sistema operativo de 64bits, a mayor estabilidad mejor rendimiento. Por supuesto, Unix o Linux, incluído Mac OSX.
Enlace: http://incubator.apache.org/cassandra/
