SQLite y el error “attempt to write a readonly database”

Este error es la seguna vez que viene a morderme el culo, hace poco fue con nginx, que se emperraba en decir que no podía leer el fichero index.html de un bloque.

La solución en ambos casos es la misma, así que a ver si escribiéndola me la consigo aprender: no basta con tener permisos en el propio fichero, la carpeta que los contiene tiene que tener el permiso de escritura.

Edición de cinco minutos después: acabo de caer en la cuenta de que en las instrucciones de una clase que subí a Github hace cinco años (phpLoginBlacklist) especifico claramente:

 It is recommended to provide a path outside the web document root (remember to give write permissions on that folder to your web server user).

Así que queda demostrado que en lo referente al sistema de ficheros de Linux mi memoria es equivalente a la del pez Dory. 🤦‍♂️

Ñapa para que Vivaldi no descargue los ficheros que queremos abrir

Una pequeña pega que tiene Vivaldi es que si al pulsar el enlace de un fichero seleccionamos Abrir en vez de Guardar o Guardar como lo guarda siempre en el disco antes de abrirlo. El problema es que no lo guarda en una carpeta temporal, sino en la carpeta de descargas por defecto.

¿Por qué? Ni idea. Esto hace que al final tengamos en la carpeta de descargas muchos ficheros que no queríamos guardar, solo abrir. ¡Qué terribles estos problemas del primer mundo!

En fin, esto de momento no tiene solución pero se puede hacer una pequeña ñapa:

  • Abrimos vivaldi://settings/downloads/ y seleccionamos como carpeta de descarga por defecto /tmp
  • Desactivamos la opción Save Files to Default Location Without Asking

De esta forma Vivaldi nos preguntará si queremos Abrir, Guardar o Guardar como y ahora podremos decidir:

  • Si solo queremos abrir el fichero, pulsamos Abrir. Vivaldi descargará el fichero a /tmp y lo abrirá.
  • Si queremos guardarlo pulsamos Guardar como y especificamos manualmente dónde queremos guardarlo.

La opción Guardar queda entonces inútil, porque no tiene sentido guardar ningún fichero en /tmp, que es una carpeta que se vacía periódicamente.

Modo de recuperación para servidores de OVH

Si en algún momento la liamos con la configuración de nuestro servidor y nos quedamos sin poder acceder a él el proceso para recuperarlo es:

1.- Cambiamos en el panel de control el boot a “Rescue” (rescue-64).

2.- Reiniciamos el servidor, nos llegará por email la contraseña para acceder.

3.- Ejecutamos parted -l para ver qué unidades tenemos. Si tenemos un RAID nos interesa la que empieza por md, por ejemplo md127.

4.- Montamos esa unidad: mount /dev/md127 /mnt/

5.- Hacemos chroot: chroot /mnt/

6.- Buscamos el fichero de configuración donde la hayamos liado y corregimos el error.

7.- Cambiamos en el panel de control el boot a “Hard disk”.

8.- Reiniciamos el servidor y cruzamos los dedos…