Corregir el error “Illegal string offset ‘data’…” en Drupal 5

Para los que somos un poco vagos y todavía mantenemos páginas en Drupal 5, una de las cosas más molestas son los continuos errores que aparecen en el registro debido a las nuevas versiones de PHP que van saliendo. Uno de ellos es el error “Illegal string offset ‘data’ en la línea 110 del archivo /nuestro_drupal5/includes/tablesort.inc.”

La solución la tenemos en este enlace, que nos cuenta que para corregirlo hay que cambiar dicha línea 110 de código del archivo /nuestro_drupal5/includes/tablesort.inc de la siguiente forma. Donde dice:

if (isset($header[$i]) && $header[$i]['data'] == $ts['name'] && $header[$i]['field']) { 

Lo cambiamos a:

if (isset($header[$i]) && isset($header[$i]['data']) && $header[$i]['data'] == $ts['name'] &&  isset($header[$i]['field']) && $header[$i]['field']) { 

Y con esto desaparecen los molestos mensajes de error.

 

 

 

Activar xdebug en XAMPP

Después de instalar XAMPP en Windows, para poder hacer debug de una aplicación en PHP con Netbeans hay que hacer unos pequeños cambios en el php.ini que viene por defecto. A partir de este momento consideraremos <xampp_home> el directorio donde hayamos instalado XAMPP, por ejemplo “c:\xampp”

Abrimos el fichero <xampp_home>\php\php.ini

Al final del mismo encontraremos la parte que se refiere a Xdebug. Tendremos que descomentar, es decir, quitar el “;” (las líneas que comienzan con un “;” son consideradas comentarios) de las líneas siguientes:

zend_extension = “C:\xampp\php\ext\php_xdebug.dll”

xdebug.remote_enable = 1
xdebug.remote_handler = “dbgp”
xdebug.remote_host = “127.0.0.1”

Ojo: también tendremos que poner el remote_enable a “1”, que por defecto viene a “0”. De forma que esas líneas del fichero nos quedan así:

xdebug_php_ini

Reiniciamos el servidor Apache y ya podemos hacer debug de programas PHP en Netbeans

(Tomado de la entrada: http://www.wikihow.com/Configure-XDebug-in-XAMPP-%281.7.2/Later%29-on-Windows )

Instalar Linux junto a Windows 10 en un portátil Acer Aspire E5

El siguiente procedimiento describe la instalación de Ubuntu 15.10 en un portátil Acer Aspire E5, pero debería de funcionar también para cualquier otra distribución que tenga incorporado ya el sistema UEFI (Ubuntu 14.04+) y cualquier otro portátil Acer más o menos parecido a éste. El procedimiento es sencillo, pero tiene varios pasos muy diferenciados que tenemos que hacer en ese mismo orden. Empecemos.

Actualizar la BIOS

Lo primero que hay que hacer es actualizar la BIOS del equipo, porque algunas de sus versiones no permiten ni la instalación de Linux ni el arranque en modo Live desde un USB. Para ello hay que acceder a la página de descargas de Acer, seleccionar el tipo y modelo de portátil, pulsar en la pestaña BIOS/Firmware y descargarse la versión más moderna de la BIOS, que en mi caso fue la v1.35. La versión 1.31 creo que también es válida, o al menos eso dicen en los foros; si es la que tiene el portátil de fábrica, no es necesario actualizarla. La que sí que no funciona es la versión 1.25, que era justo la que traía el mío. La actualización de la BIOS no conlleva ninguna complicación y se puede hacer fácilmente siguiendo las instrucciones del ejecutable que descargamos.

Desactivar el fast-boot en Windows

Para ello seguimos las instrucciones que tenemos en la página de Acer, las cuales nos dicen que tenemos que ir a Panel de Control / Opciones de energía / Elegir lo que hacen los botones de encendido / Cambiar ajustes actualmente no disponibles y desmarcar el check-box que pone “Activar arranque rápido” que aparece en la parte de abajo de la pantalla.

Dejar espacio libre en el disco duro

El siguiente paso es hacer sitio en el disco duro, algo que tenemos que hacer obligatoriamente desde dentro de Windows 10, no nos sirve hacerlo desde la distribución Live de Linux ni desde GParted. Para ello pulsaremos con el botón derecho en el icono de Windows 10 abajo a la izquierda y seleccionaremos la opción “Administración de discos”. En la ventana que se nos muestra nos aparecen tres particiones, nos fijamos en una de ellas etiquetada C y con formato NTFS, la más grande. La seleccionamos, pulsamos el botón derecho sobre ella y seleccionamos la opción “Reducir volumen”. Tras un tiempo calculando nos muestra cuánto tenemos libre. Ajustamos el espacio que queramos, por ejemplo yo he utilizado 90 Gb pero con 10-20Gb puede ser más que suficiente, depende de lo que vayamos a instalar posteriormente en el sistema linux. Cuando termine, dejamos el espacio libre vacío, sin asignar ni formatear.

Modificar el orden de arranque en la BIOS

Ahora ya podemos arrancar desde un USB en el que previamente hayamos instalado Ubuntu para iniciar en modo Live, pero antes tenemos que cambiar los parámetros de la BIOS para que el sistema arranque primero desde el USB. Para ello reiniciamos el equipo y al inicio del arranque pulsamos F2, lo que nos permite entrar a cambiar la configuración de la BIOS. Vamos a Boot, y en el orden de arranque ponemos en primer lugar el USB (mediante las teclas de función F5 y F6 podemos cambiar el orden de las unidades). Guardamos los cambios en la BIOS, salimos y si tenemos el USB insertado, al pulsar F12 en el arranque ya podremos seleccionar que lo haga desde el dispositivo USB con Ubuntu.

Iniciar desde un USB Live de Ubuntu e instalar el sistema Linux

Cuando arranca Ubuntu en modo Live, seleccionaremos la opción “Try Ubuntu…” y cuando finalmente se muestre el escritorio veremos que todo va bien menos la conexión inalámbrica (conseguir que funcione el wifi es tema para otra entrada del blog), por lo que tendremos que trabajar con el equipo conectado por cable si queremos actualizar el sistema tras su instalación.

Pulsamos el icono de “Instalar Ubuntu” y procedemos con el conocido y facilísimo proceso de instalación de Ubuntu en el disco duro, seleccionando cuando nos lo pregunte la opción “Instalar Ubuntu junto a Windows 10”. Esta forma de instalación de Ubuntu es específica para sistemas con UEFI activado, por lo que no se instala el grub de la manera habitual en sistemas anteriores, sino que lo hace de forma que Ubuntu pueda arrancarse posteriormente desde el Windows Boot Manager.

Cuando termina la instalación pulsamos reiniciar el equipo y extraemos el USB para que se arranque desde el disco duro.

Incluir el nuevo sistema en el arranque de Windows

Cuando el sistema arranca vemos que directamente entramos en Windows 10, como si no hubiéramos hecho nada. Bien, eso es porque todavía no le hemos dicho al arranque de Windows que hay otro sistema operativo en el disco que queremos poder seleccionar cuando queramos. Así que volvemos a reiniciar el equipo, pulsamos F2 para entrar en las opciones de la BIOS y vamos a Security. Primero tenemos que seleccionar la opción de dar una password al supervisor (que somos nosotros). Lo hacemos, confirmamos la password y vemos que ahora ya nos permite seleccionar más opciones. Seleccionamos la opción “Elegir un fichero UEFI seguro”. Nos aparece una pantalla en la que solamente aparece HDD0 o algo parecido. Pulsamos Intro. En la siguiente pantalla vemos que ya nos aparece una etiqueta que pone Ubuntu, la seleccionamos y pulsamos Intro. Posteriormente aparece una lista de ficheros de los que seleccionamos el correspondiente a Grub. Y ya está, guardamos las modificaciones en la BIOS, salimos y al reiniciar ya nos aparece el conocido menú de arranque de Grub en el que tenemos tanto la opción de iniciar Ubuntu como la de iniciar en el sistema Windows 10 con el que convive en el mismo disco duro.

 

Error #2006 – MySQL server has gone away importando archivo en PhpMyAdmin

Utilizando un entorno WAMP (Windows 10, Apache, MySQL, PHP), cuando intento importar un archivo con el volcado de una base de datos en MySQL utilizando PhpMyAdmin me encuentro con que la carga se detiene y se genera el error “#2006 – MySQL server has gone away”.
El archivo es bastante grande, y aunque he puesto los límites de memoria y de tamaño de archivo suficientemente altos en el archivo php.ini, está claro que también es necesario modificar la configuración de mysql para poder hacer la carga. El truco está en modificar la línea
max_allowed_packet = 1M
en el archivo <directorio de WAMP>/mysql/bin/my.ini dejándola como
max_allowed_packet = 10M

Curiosamente, este error nunca me había dado cuando he trabajado en Linux, debe de ser que la configuración por defecto de mySQL en Linux ya viene preparada para cualquier eventualidad 🙂

Lo he visto en Stack OVerflow (como casi todas las soluciones)

Actualizar a Fedora 23 por consola con dnf

Actualizar a Fedora 23 mediante dnf es fácil, solamente tiene la pega de que es necesario descargar 1,4 Gb y eso lleva tiempo si no se tiene una conexión rápida. La forma de hacerlo sería la siguiente:

  1. Haz una copia de respaldo de tu sistema y de la información importante que guardes en el disco. Se dice siempre, pero nunca se hace. Luego vienen los lamentos.
  2. Desinstala todo lo que realmente no necesites. La actualización necesitará espacio en disco y si has hecho la instalación standard de Fedora con el directorio root en una partición aparte no muy grande, es posible que te quedes sin espacio. Después de hacer todos los sudo dnf remove <lo_que_sea> que hagan falta, es muy conveniente hacer un sudo dnf clean all para obtener espacio libre limpiando todo lo que ya no se necesita.
  3. Actualiza primero tu sistema con sudo dnf update --refresh. Si se te instala un nuevo kernel, tienes que reiniciar el sistema antes de continuar. Si no estás seguro de que haya pasado, reinicia por si acaso.
  4. Instala el plugin de actualización con sudo dnf install dnf-plugin-system-upgrade
  5. Descarga los paquetes necesarios con sudo dnf system-upgrade download --releasever=23 --best --allowerasing
  6. Si todo termina sin errores, ya puedes lanzar la actualización a Fedora 23 con sudo dnf system-upgrade reboot

Esta entrada ha sido escrita a partir del contenido de esta página, en la que tienes más información sobre el plugin dnf-system-upgrade, y de esta otra en donde tienes también una serie de pantallazos con el proceso de actualización.

Instalar LAMP en Fedora 22

Para instalar el entorno de desarrollo LAMP en Fedora 22 tenemos que realizar los siguiente pasos en una terminal:

  1. Instalar (como root) el servidor web con el comando: dnf groupinstall “Web Server”
  2. Instalar la base de datos: dnf install mariadb-server
  3. Modificar el fichero /etc/php.ini para adaptarlo a nuestras necesidades
  4. Arrancar el servidor web con: service httpd start
  5. Arrancar la base de datos con: service mariadb start
  6. Asegurar la base de datos con el comando: mysql_secure_installation
  7. Instalar phpmyadmin (si lo vas a usar, claro): dnf install phpmyadmin
  8. Habilitar el directorio de usuario de Apache:
    1. Editamos el fichero /etc/httpd/conf.d/userdir.conf para que quede así (sustituyendo usuario por nuestro nombre de usuario)etc_httpd_conf.d_userdir.conf
    2. Creamos el directorio ~/public_html con: mkdir ~/public_html
    3. Le damos los permisos necesarios con: chmod 755 ~/public_html
    4. Le damos los permisos necesarios a /home con: chmod 711 /home/usuario
    5. Configuramos SELinux para permitir los directorios de usuario con:
      setsebool P httpd_enable_homedirs true
    6. Reiniciamos el servidor con: service httpd start

Y ya está. Tenéis más información en este artículo y este otro, que son los que he consultado para hacer esta entrada.

Cómo habilitar las clean url de Drupal en el directorio de usuario de Apache2 en Debian/Ubuntu y Fedora

  1. Habilitar el módulo mod_rewrite de Apache. En Debian/Ubuntu hay que lanzar el comando: sudo a2enmod rewrite. En Fedora ese módulo ya viene habilitado por defecto.
  2. Editar el fichero /etc/apache2/mods-enabled/userdir.conf en Debian/Ubuntu cambiando la linea con AllowOverride FileInfo AuthConfig Limit Indexes de forma que solo tenga AllowOverride All. En Fedora dicho fichero está en /etc/httpd/conf.d/userdir.conf
  3. Editar el fichero .htaccess de nuestro directorio de Drupal descomentando la linea con la opción RewriteBase y dejándola como  RewriteBase /~MiUsuario/miDirectorioDrupal/
  4. Reiniciar Apache. En Debian/Ubuntu con el comando: sudo service apache2 restart y en Fedora con: sudo service httpd restart

Este procedimiento me ha funcionado con Ubuntu 14.04 con Drupal 8, y también en Fedora 23 con Drupal 7

En esta entrada recojo mi experiencia personal tras seguir las indicaciones de:
http://tolocalhost.blogspot.com.es/2013/04/enabling-drupal-clean-url-in-apache2.html