Propagation

Leer más » Comentar

Error de estimación

Leer más » Comentar

Reparar y optimizar todas las bases de datos en MySQL

Probablemente, en alguna ocasión te hayas enfrentado vía log o vía mensaje de urgencia con un mensaje de este tipo: “table marked as crashed and should be repaired” cuando trabajas con MySQL. Más aún si has tenido un reinicio de emergencia, si usas MyISAM o si tienes problema con tu sistema de ficheros (o tus discos).

Puedes tratar de reparar tabla a tabla, sin embargo, lo más productivo es hacer todas de una vez. Antes de cualquier operación de este tipo, haz una copia de todo por si acaso (aquí en Linux Hispano hablé de cómo hacer backups y recuperarlos).

La orden a ejecutar será la siguiente y el resultado lo veréis en la consola, si OK o si hay problemas:

mysqlcheck -u root -p --auto-repair --optimize --all-databases

Leer más » 1 Comentario

“Could not create the index.html file” en tinthumb.php

Logo Timthumbtimthumb es un pequeño script PHP que nos permite de forma simple mediante parámetros GET, redimensionar, recortar o hacer zoom sobre imágenes. Por esta utilidad, ha sido usado ampliamente en temas WordPress y en otros muchos sitios. Aunque tiene cierta fama por su seguridad (por sus fallos, a priori todos ya resueltos), su uso conlleva alguna problemática de vez en cuando.

Uno de los errores que pueden aparecernos es el que ilustra el título de esta entrada: “Could not create the index.html file” y que puede aparecer sólo o en compañía de otros errores típicos que en otra ocasión trataremos. read more

Leer más » 1 Comentario

Fatal error: Allowed memory size of N bytes exhausted en PHP

Uno de los mayores problemas de usar WordPress, es que a pesar de ser un sistema bastante ligero, llega un momento en el que como no tengamos cuidado, puede llegar a ocupar muchos recursos. De cómo aligerar WordPress, he hablado y hablaré (de forma presencial por cierto en la próxima WordPress Meetup Córdoba que es ya mismo) pero esta no es la idea de esta entrada.

La idea de esta entrada es: no puedo aligerar WordPress por cualquier razón (no hay más que aligerar, falta de tiempo…) y el espacio que direcciona de memoria RAM se ha agotado. El indicativo de este problema es un mensaje que dice lo siguiente:

Fatal error: Allowed memory size of N bytes exhausted en PHP

La solución, intentar ampliar la memoria que tenemos disponible para PHP y por lo tanto para WordPress. ¿Cómo? Iremos intentando cada una de estas acciones.

Dentro de php.ini

Si tienes acceso al php.ini global o en su defecto, tienes un php.ini disponible en tu cuenta compartida, busca la línea:

memory_limit = 32M;

Y sustitúyela por esta otra:

memory_limit = 64M;

Leer más » 3 Comentarios

No se pudo abrir el fichero de bloqueo «/var/lib/dpkg/lock»

Es uno de los fallos más frecuentes por despiste o por novato cuando estamos manejando el sistema de paquetes apt en Ubuntu, Debian o derivadas. Intentamos hacer algo así para instalar un paquete (he puesto libpng-dev como ejemplo):

apt-get install libpng-dev

Y aparece este error:

E: No se pudo abrir el fichero de bloqueo «/var/lib/dpkg/lock»
 - open (13: Permiso denegado)
E: No se encontró un archivo de réplica «/var/lib/dpkg/»

¿Cuál es el problema? No tenemos permisos suficientes, por lo que sólo deberemos hacer lo siguiente para solucionarlo:

Leer más » 9 Comentarios

PostgreSQL no arranca: “Fatal: bogus data in lock file ‘postmaster.pid'”

A raíz de un problema en la consistencia del sistema de ficheros de un servidor virtual que ejecuta PostgreSQL, he tenido que ejecutar un fsck. Tras recuperar la consistencia todos los servicios han salido andando sin problema menos el de PostgreSQL.

PostgreSQL logo

Intentaba arrancarlo con:

service postgresql start

Y nada de nada, siempre aparecía el mensaje de “FALLÓ”. Me dirigí a los logs de arranque en mi caso se encuentran en: /var/lib/pgsql dentro del fichero pgstartup.log. Tras hacerle un tail compruebo que aparece el siguiente error en el arranque:

Leer más » 4 Comentarios

Eliminar warning y errores típicos en PHP

Cuando programamos en PHP existe una serie de errores y warnings que son muy típicos y que para el programador más novel pueden suponer un problema. Aquí recopilamos algunos de los más típicos, pero ya que estamos, me gustaría que todos nos contarais errores y soluciones a los mismos que encontráis a menudo.

Logo PHP

Warning: Cannot modify header information – headers already sent by

Que también podemos encontrar como “Warning: session_start(): Cannot send session cache limiter – headers already sent” o “Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by“. Se produce cuando intentamos modificar las cabeceras del paquete HTTP, cuando ya hemos dejado de emitirlas y estamos emitiendo el cuerpo del paquete.

¿Por qué ocurre esto? Podéis verlo dentro del protocolo. Para solucionarlo deberemos ser muy cuidadosos en dos aspectos:

  • Nunca comenzar a emitir el cuerpo antes de tiempo, con un sólo espacio en blanco delante de <?php  ya habríamos provocado el problema (se empieza a emitir un espacio en blanco como parte del cuerpo).
  • No emitir la cabecera en mitad del cuerpo. Es decir, no usar funciones que la puedan modificar como session_start, cuando estamos ya en el cuerpo de nuestro contenido HTTP.
Leer más » 6 Comentarios

Tecla de Windows en el teclado de Ubuntu. WTF?

¿Alguien me lo puede explicar? Esta mañana entrando en la Ubuntu Store me he dado cuenta de que el teclado de la marca, recientemente publicado, incluye la tecla de Windows.

Muchos os preguntaréis que la tecla de Windows o Super es necesaria o que no estaría bien eliminarla, pero esa no es la cuestión, soy poseedor de un netbook, un Asus Eee 901, y este sí incluye la tecla Super pero sin el logo de Windows (este laptop viene sin Windows preinstalado). Lo que me sorprende es que una marca como Ubuntu incluya un logo tan despreciable en un producto que vende en su tienda. read more

Leer más » 14 Comentarios

Oculta la información de errores y “warnings” en PHP

En ocasiones por comodidad, y sobre todo para ahorrarnos dar más información de la cuenta de cara a la seguridad y a que aparezcan mensajes de errores en la pantalla del cliente, es preferible ocultar la información de depuración que nos devuelve el intérprete PHP mediante las típicas líneas de error y warning.

La forma más cómoda para hacerlo instrucción a instrucción es el uso del prefijo @ delante de la misma. El error o warning seguirá existiendo pero no se generará una salida HTML describiéndola. read more

Leer más » 3 Comentarios