Actualizar la versión de PHP que usamos en Wamp

Aquellos que usamos Wamp, para desarrollar aplicaciones PHP en Windows, hay veces que nos vemos limitados a trabajar con las versiones que este nos instala (en mi caso estaba con Apache 2.4, PHP 5.4.12 y mysql 5.6). Desde hace tiempo vengo pensando en cambiar esta situación y hoy me he puesto a ello. Voy a mostraros cómo actualizar la versión de PHP en nuestro WAMP, pasando de la 5.4.12 a la 5.6.14. Os lo dejo en sencillos pasos:

  1. Descargar la nueva versión de PHP (en mi caso http://windows.php.net/downloads/releases/php-5.6.14-Win32-VC11-x64.zip)
  2. Descomprimirla en wamp/bin/php con el nombre de la versión (php5.6.14)
  3. Eliminar ficheros de la carpeta wamp/bin/apache/Apache2.4.4/bin que ya no usaremos por estar con PHP 5.6 en Apache 2.4: php5isapi.dll y php5ts.dll
  4. Copiamos a la carpeta wamp/bin/apache/Apache2.4.4/bin el fichero php5apache2_4.dll, que viene en el fichero descargado con la nueva versión de PHP (php-5.6.14-Win32-VC11-x64.zip)
  5. Movemos el fichero wamp/bin/apache/Apache2.4.4/bin/php.ini a wamp/bin/php/php5.6.14/phpForApache.ini
  6. Eliminamos la carpeta wamp/bin/php/php5.4.12 o la renombramos de modo que, ordenando el contenido de la carpeta wamp/bin/php/ alfabéticamente, esta quede después de la nueva php5.6.14.
  7. Editamos los ficheros wamp/wampmanager.conf, wamp/wampmanager.ini y wamp/bin/apache/apache2.4.9/conf/httpd.conf en los que sustituimos la cadena “5.4.12” (la versión actual de PHP) por “5.6.14” (la nueva).
  8. Editamos los ficheros php.ini (en la carpeta de php y en la bin de apache) para corregir las rutas de la carpeta de extensiones de php.

Tras estos pasos, si inicias Wamp y accedes a la página http://localhost/?phpinfo debieras ver que la versión de PHP es la nueva 5.6.14

Wamp server con PHP actualizado a 5.6.14
Wamp server con PHP actualizado a 5.6.14

Nota: debemos dejar dos ficheros php.ini, uno en la carpeta bin de php (para la ejecución de este desde la consola) y otro en el bin de apache (para cuando PHP se ejecuta dentro de Apache). El por qué lo puedes leer aquí.

Usar jquery.noConflict en plantillas html pre-procesadas

Si alguna vez necesitáis no usar $ para jquery, porque estáis usando una plantilla HTML que debe ser pre-procesada antes de mostrarse y el procesador usa esa misma variable, podéis hacer uso de jquery.noConflict(). A la luz de uno de sus ejemplos:

// http://api.jquery.com/jquery.noconflict/
$.noConflict();
jQuery( document ).ready(function( $ ) {
// Code that uses jQuery's $ can follow here.
});

podemos cambiarlo para no usar $ (que, repito, es intepretada por el procesador de la plantilla):

jQuery.noConflict();
jQuery( document ).ready(function( __ ){
// código que usa __ en lugar de $
__('body').addClass('no-backbround');
});

Seguro que muchos ya lo sabíais pero lo dejo para los que no 😉

Netbeans no encuentra Cordova al crear un proyecto “Cordova application”

Con la idea de probar Cordova me decido a instalarlo sobre Netbeans 8 como IDE. Según las indicaciones de Netbeans el proceso está chupado: instalas nodejs, instalas Git, instalas cordova [2], abres Netbeans y sigues el asistente …hasta la pantalla del error (que nadie esperaba):

Netbeans cannot found cordova or git on your PATH. Please, install cordova and git.

image

Se acabó lo que se daba. Tras emplear un rato, más largo de lo que me hubiera gustado, encontré la solución al leer este bug de Netbeans: “Bug 234870Cordova or Git not found on Windows”. A pesar de que el mensaje dice que no ha encontrado cordova o git lo que quiere decir es que no ha encontrado a Cordova y a Git (a los dos). Revisando qué tengo en el PATH veo que me falta la referencia a Git, con lo que al incluirla todo funciona como debiera.

Espero que esto le ayude a alguien.

Comprobación del estado de las tablas de una base de datos mysql

Haciendo uso de mysqlcheck podemos comprobar el estado de las tablas de una, o varias, bases de datos en un servidor mysql. Su uso es muy sencillo:

mysqlcheck base-de-datos -u usuario -p password

Al hacerlo, mysqlcheck nos genera una salida con las tablas de la base de datos indicada y su estado:

base-de-datos.tabla-1 OK
base-de-datos.tabla-2 OK
base-de-datos.tabla-3 OK
base-de-datos.tabla-4
warning : Table is marked as crashed
warning : 2 clients are using or haven't closed the table properly
warning : Size of datafile is: 448416 Should be: 447568
error : Wrong record length 168 of 176 at 87156
error : Corrupt

Si la lista es muy larga la selección de sólo aquellas tablas con problemas puede no ser inmediata. Un modo de verlas sólo a estas es ejecutando:

mysqlcheck base-de-datos -u usuario -p password | grep -v OK$

con lo que seleccionamos sólo las lineas que no terminen en OK, que son las que tienen problemas:

base-de-datos.tabla-4
warning : Table is marked as crashed
warning : 2 clients are using or haven't closed the table properly
warning : Size of datafile is: 448416 Should be: 447568
error : Wrong record length 168 of 176 at 87156
error : Corrupt

Ahí os queda eso 🙂 Ah, un modo de reparar todas las tablas de todas las bases de datos lo podéis encontrar en Shell script to optimize all tables in all databases (MySQL)