Categorías
GNU/Linux Microsoft OneDrive

Acceder a documentos almacenados en OneDrive desde Linux con Rclone

Para poder acceder a los documentos de OneDrive desde Linux puede usarse el programa Rclone, que mediante rsync nos permite montar un sistema de ficheros en local que refleje nuestros documentos en la nube de Microsoft.

En esta página hay unas instrucciones detalladas para instalarlo. La mayor pega que le encuentro es que es software propietario, aunque gratuito. Lo he probado en Debian 10 y ha funcionado correctamente. Permite subir, borrar y renombrar archivos o directorios. El borrado de documentos, sin embargo, no permite almacenamiento en la papelera, por lo que solo pueden eliminarse.

Una vez instalado el programa y configurado con nuestra cuenta de OneDrive, para poder acceder hay que lanzar un comando que monta en nuestro directorio local la unidad remota. Cuando paramos el comando, la unidad desaparece, por lo que si queremos que se mantenga continuamente montado y accesible tenemos que incluir el montaje en las aplicaciones al inicio.

Categorías
GNU/Linux

Error PXE-E53 No boot filename received

Este error me aparecía al arrancar el ordenador tras instalar Fedora 28 en un ordenador Acer en el que he tenido que activar la opción Legacy en la BIOS porque se resistía a arrancar en modo UEFI. Esto es debido a que al activar este comportamiento del firmware está habilitada por defecto la opción de arranque en red. Para que el error desaparezca y el arranque sea más rápido, pues no se queda esperando contestación por DHCP por un tiempo, basta con deshabilitar dicha opción. Para hacerlo tenemos que entrar en el menú del firmware o BIOS, en mi caso pulsando F2 al arrancar. Después, buscaremos en la configuración algún sitio donde aparezca la opción de “Network Boot” (dependerá de cada ordenador dónde aparezca dicha opción) y la marcaremos como “Disabled”. Salimos guardando los cambios y ya está. El ordenador arrancará mucho más rápido y sin mostrar dicho mensaje.

(Imagen de  cabecera tomada de: www.itsupportguides.com)

Categorías
GNU/Linux

Migrar una web con Drupal 8 a un virtual host local de apache

Migrar una instalación ya funcionando de Drupal 8 desde la web a un servidor local en nuestro equipo es ligeramente más complicado que con otras versiones de Drupal, la forma de hacerlo que a mí me ha funcionado es la siguiente:

Partimos de un equipo en el que tenemos instalado linux Mint 18.1, pero estas instrucciones podrían valer también para cualquier distribución linux, cambiando convenientemente las rutas de los ficheros.

Instalamos el servidor web:

sudo apt-get install apache2

Para comprobar que funciona, accedemos con un navegador a la dirección http://localhost  y deberíamos ver la página raíz del servidor apache

Instalamos PHP, que en esta versión de Linux Mint (18.1) es el PHP 7.0, y algunos módulos de php que nos serán necesarios:

sudo apt-get install php7.0 php7.0-mysql libapache2-mod-php7.0 php7.0-cli php7.0-cgi php7.0-gd php7.0-curl php7.0-gd php7.0-intl php7.0-imap php7.0-mcrypt php7.0-pspell php7.0-recode php7.0-snmp php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php-pear php-imagick php-apcu

Comprobamos que PHP funciona creando como root el fichero /var/www/html/info.php con una única línea que ponga

<?php phpinfo(); ?>

Reiniciamos el servidor web

sudo service apache2 restart

Accedemos a la dirección http://localhost/info.php y deberíamos de ver la página de información de PHP

Habilitamos el  módulo rewrite

sudo a2enmod rewrite

Instalamos MySQL

sudo apt-get install mysql-client mysql-server

Aseguramos la instalación de MySQL con el script

sudo mysql_secure_installation

Instalamos y configuramos SSL, para ello creamos una carpeta

sudo mkdir /etc/apache2/ssl

Nos situamos en ella y y ejecutamos el comando de creación de un certificado autofirmado (en este comando y en las instrucciones siguientes habrá que cambiar “misitio” por el nombre de nuestra web)

cd /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/misitiossl.key -out /etc/apache2/ssl/misitiossl.crt

Se nos hará una serie de preguntas, acerca de nuestra identidad etc. Cuando termine el comando, cambiamos los permisos de los ficheros creados en el directorio

sudo chmod 600 *

Ahora configuramos el host virtual en Apache, para ello creamos el directorio al que copiaremos los ficheros de nuestra web, y luego creamos el fichero de configuración del host virtual

sudo mkdir -p /var/www/misitio
sudo vim /etc/apache2/sites-available/misitio.conf

En este fichero tenemos que tener el siguiente contenido:

<VirtualHost *:80>
 ServerName www.misitio.local
 DocumentRoot /var/www/misitio

RedirectMatch 301 (.*) https://www.misitio.local$1
</VirtualHost>

<VirtualHost _default_:443>

ServerName www.misitio.local
 ServerAlias misitio.local
 ServerAdmin webmaster@localhost

DocumentRoot /var/www/misitio

ErrorLog ${APACHE_LOG_DIR}/misitio-error.log
 CustomLog ${APACHE_LOG_DIR}/misitio-access.log combined

SSLEngine on
 
 SSLCertificateFile /etc/apache2/ssl/misitiossl.crt
 SSLCertificateKeyFile /etc/apache2/ssl/misitiossl.key

<Directory "/var/www/misitio">
 Options FollowSymLinks
 AllowOverride All
 Require all granted
 </Directory>

<FilesMatch "\.(cgi|shtml|phtml|php)$">
 SSLOptions +StdEnvVars
 </FilesMatch>

<Directory /usr/lib/cgi-bin>
 SSLOptions +StdEnvVars
 </Directory>

BrowserMatch "MSIE [2-6]" \
 nokeepalive ssl-unclean-shutdown \
 downgrade-1.0 force-response-1.0
 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>

Modificamos el fichero /etc/hosts añadiendo una línea en la que apuntamos a nuestro host virtual. Para ello incluimos en este fichero una línea al principio que ponga:

127.0.0.1      www.misitio.local

Copiamos los ficheros de la web que queremos migrar a la carpeta /var/www/misitio, creamos en nuestro MySQL local una base de datos ideńtica a la que tenemos en la base de datos de la web, y creamos el usuario con el que se accede a ella desde el sitio web. Para ello podemos usar adminer, phpmyadmin, etc. Si en vez de migrar una web estamos creando una web desde cero, pues entonces usamos el método habitual de instalación de una web Drupal, usando la dirección de nuestro host virtual como inicio del proceso.

Solamente si estamos haciendo una migración, una vez que tenemos los ficheros transferidos y la base de datos configurada, accedemos al fichero:

sudo vim /var/www/misitio/sites/default/settings.php

y modificamos la parte correspondiente a los host de confianza, incluyendo la dirección de nuestro host virtual. Buscamos trusted_host_patterns y el fichero debería de quedar tal que así:

$settings['trusted_host_patterns'] = array(
 '^www\.misitio\.com$', 
 '^www\.misitio\.local$'
);

Y ya debería funcionar todo, accediendo a la página https://www.misitio.local deberíamos de ver la página principal de nuestra nueva web en local. La primera vez que accedamos a ella nos saltará una advertencia de seguridad en el navegador porque estamos usando un certificado autofirmado, por lo que deberemos de añadir una excepción de seguridad para poder acceder las siguientes veces sin que salte este aviso.

Este post está basado en gran parte en lo que se explica en: https://kreationnext.com/support/how-to-install-drupal-8-with-apache-mysql-and-ssl-on-ubuntu-15-10/

Categorías
Debian

Instalar Guest Additions de Virtual Box en Debian

Para instalar las Guest Additions de Virtual Box en Debian hay que seguir el siguiente procedimiento:

  • En el menú de VirtualBox de la máquina “guest” con Debian pulsamos en Dispositivos / Insertar imagen de CD de las Guest Additions.
  • Ya en la máquina virtual, editar el fichero /etc/fstab y añadir la opción “exec” a la unidad cdrom0. La línea correspondiente del fichero tiene que quedar así:
/dev/sr0    /media/cdrom0   udf,iso9660 user,noauto,exec     0       0
  • Ejecutar como root

# apt-get install build-essential

# apt-get install linux-headers-$(uname -r)

A continuación ejecutamos (ya no hace falta ser root, es más, cuando se ejecuta como root curiosamente falla la ejecución):

$ cd /media/cdrom0

$ ./autorun.sh

Una vez que acabe la ejecución, reiniciamos y ya deberíamos ver la máquina Debian a pantalla completa, síntoma de que se han instalado correctamente las Guest Additions. (Probado en Debian 9 y Virtualbox 5.2.18)

Categorías
Sin categoría

Cómo cargar archivos .sql mayores que el límite del servidor

Cuando tienes que hacer una carga de base de datos es posible que te encuentres que el archivo .sql que quieres cargar tenga un tamaño mayor que el que permite el servidor, por lo que tanto el phpMyAdmin como el adminer muestran un mensaje de error, impidiendo la carga.
La solución con adminer es sencilla si tienes acceso FTP al servidor:

  1.  Sube el fichero adminer.php al directorio raiz web del servidor. Lo puedes descargar previamente de aquí. Antes de subirlo puedes renombrarlo para quitar la versión, así el acceso posterior será más fácil.
  2. Sube el fichero sql que quieres cargar en la base de datos al mismo directorio que has subido el fichero anterior, llamándolo “adminer.sql”. También puedes comprimirlo y llamarlo “adminer.sql.gz”.
  3. Accede a tu servidor a la página adminer.php que acabas de subir.
  4. Ve a la opción “Import”. Verás que aparece una opción “From server” y un botón “Run file”. Si lo pulsas, hará la carga del fichero sql.

Importante: el fichero a cargar tiene que llamarse exáctamente así, y localizarse en el mismo directorio que el fichero de ejecución de adminer.

Y ya está, un problema menos.

Categorías
GNU/Linux

¿No funciona chmod -R?

Cuando alguna vez hemos tenido que cambiar los permisos a los ficheros de una carpeta y de las subcarpetas incluidas de forma recursiva, hemos usado por ejemplo el comando chmod -R 755 y ha funcionado perfectamente. Sin embargo, si tratamos de hacer los mismo seleccionando a qué tipo de ficheros queremos hacer el cambio con el comando chmod -R 755 *.php nos encontramos con que no funciona, que el comando no nos da error, pero solo cambia los ficheros de la carpeta actual, no lo hace sobre los ficheros con esa extensión incluidos en carpetas dentro del directorio.
Realmente no es un error, simplemente funciona así, pero como para todo hay arreglo, la forma de conseguir lo que queremos es combinando los comando find y chmod de la forma siguiente:
find . -type f -name '*.php' -exec chmod 755 {} \;
Con este comando buscamos (find) en el directorio actual (el .) todos los ficheros (-type f) que tienen extensión php (‘*.php’), y la lista recuperada la dirigimos (-exec) hacia el comando chmod, que la recibe en {}. El \; final solamente es para indicar que se acaba la orden.
Parece un comando complicado, pero cuando entiendes qué hace cada cosa resulta más fácil de recordar.
En esta entrada hay un ejemplo algo más complicado, que sirve para cuando queremos cambiar los permisos solamente a aquellos ficheros que tienen ya unos permisos determinados, por ejemplo cambiar al permiso 755 a aquellos ficheros que en ese momento tienen permisos 777.

Categorías
Drupal

El menú responsive del tema Bootstrap de Drupal no funciona

Después de instalar el tema Bootstrap de Drupal 7 para un nuevo sitio de comercio online me he encontrado con que el menú responsive, el que aparece como un icono con tres rayitas cuando la pantalla es pequeña, no funciona. Googleando un poco me encuentro con este enlace en el que cuentan que el problema puede ser que la versión de JQuery que esté usando no sea la correcta. En Drupal 7 podemos mantener actualizada la versión de JQuery si instalamos el módulo Jquery Update, el cual ya viene incluido por defecto en el núcleo de Drupal 8.
Una vez instalado dicho módulo, lo activamos y ya tenemos funcionando el menú en el móvil.

Categorías
Ubuntu

PhpMyAdmin muestra una página en blanco en Ubuntu/Kubuntu 16.04

Después de instalar Kubuntu 16.04, y supongo que lo mismo pasará después de instalar Ubuntu 16.04, una vez puesto el entorno LAMP en funcionamiento según la guía de Linode ,  y después de instalar el paquete phpmyadmin desde los repositorios oficiales, me encuentro con que al acceder a la página http://localhost/phpmyadmin solo se muestra una página en blanco.

Mirando por ahí veo que le pasa a más gente, como era de esperar, y se debe a que faltan por instalar algunos paquetes. La solución es instalarlos con el comando:

sudo apt-get install libapache2-mod-php php-mbstring php7.0-mbstring php-gettext

Una vez hecho esto, he desinstalado phpmyadmin y lo he vuelto a instalar, a lo mejor no hacía falta, pero después de esta segunda instalación y con los paquetes anteriores ya instalados, la página localhost de phpyadmin ha vuelto a funcionar.

Categorías
Drupal

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.

 

 

 

Categorías
Windows

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 )