Comprimir archivos en Linux

CompressLa compresión de archivos es conocida por todos los usuarios de la informática. Dos son las ventajas que presenta para el día a día:

  1. Como su propio nombre indica, ahorra espacio, lo que facilita la transferencia de archivos a través de internet, y
  2. Transforma un conjunto de archivos en un archivo único, lo que también acelera la transferencia sobre tcp-ip.

En un entorno linux-server sin entorno gráfico, la compresión es uno de los procesos más sencillos para sacar copias de seguridad y restaurar ramas de directorios. Conserva los permisos y usuarios del entorno original. Aún así el uso de terminal puede resultar un poco «ortopédico», y para facilitar ste proceso, os dejo las instrucciones de compresión, expansión de alguno de los formatos más habituales en linux.

ZIP

Es tal vez el formato más común de toda la historia de la compresión de archivos, incluso a día de hoy. Una de sus mayores ventajas es que está disponible en todos los sistemas operativos, ya sea Linux, OSX o Windows. La contrapartida es que no ofrece la mejor tasa de compresión. Tar.gz y tar.bz2 son superiores en este aspecto.

Para comprimir un directorio con zip, la instrucción en el terminal es la siguiente:

# zip -r archivo_destino.zip directorio_a_comprimir

Para extraerla información (en el directorio en el que nos encontramos)

# unzip archivo.zip

TAR

Es el formato más común en el entorno Linux. Su gran ventaja es que consume muy poco tiempo y recursos de CPU, pro la tasa de compresión tampoco es muy elevada.

Para comprimir un directorio con tar, la instrucción en el terminal es la siguiente:

# tar -zcvf archivo_destino.tar directorio_a_comprimir

Para extraerla información (en el directorio en el que nos encontramos)

# tar -zxvf archivo.tar

Si queremos extraerla en un directorio en concreto

# tar -zxvf archivo.tar -C /directorio/de/destino

TAR

Es el formato más común en el entorno Linux. Su gran ventaja es que consume muy poco tiempo y recursos de CPU, pro la tasa de compresión tampoco es muy elevada.

Para comprimir un directorio con tar, la instrucción en el terminal es la siguiente:

# tar -cvf archivo_destino.tar directorio_a_comprimir

Para extraerla información (en el directorio en el que nos encontramos)

# tar -xvf archivo.tar

Si queremos extraerla en un directorio en concreto

# tar -xvf archivo.tar -C /directorio/de/destino

TAR.GZ

Este formato mezcla dos tipos de compresión, la tar con gzip, y es una de las mejores opciones, sino la mejor, respecto a la relación tasa de compresión y consumo de recursos.

Para comprimir un directorio con tar, la instrucción en el terminal es la siguiente:

# tar -zcvf archivo_destino.tar.gz directorio_a_comprimir

Para extraerla información (en el directorio en el que nos encontramos)

# tar -zxvf archivo.tar.gz

Si queremos extraerla en un directorio en concreto

# tar -zxvf archivo.tar.gz -C /directorio/de/destino

TAR.BZ2

Este formato es el que ofrece la mejor tasa de compresión, pero también es el que más consume recursos de todos.

Para comprimir un directorio con tar, la instrucción en el terminal es la siguiente:

# tar -jcvf archivo_destino.tar.bz2 directorio_a_comprimir

Para extraerla información (en el directorio en el que nos encontramos)

# tar -jxvf archivo.tar.bz2

Si queremos extraerla en un directorio en concreto

# tar -jxvf archivo.tar.bz2 -C /directorio/de/destino


Para implementar el formato privativo RAR a vuestra distro, podéis consultar el siguiente enlace.
Thanks to: http://www.simplehelp.net/2008/12/15/how-to-create-and-extract-zip-tar-targz-and-tarbz2-files-in-linux/

VirtualBox 4.3 + PhpVirtualBox en Ubuntu Server 14.04

imgvirtualbox1

Objetivo:

Ejecutar máquinas virtuales en un servidor ubuntu 12.04 LTS, sin interfaz gráfica, para acceder a ellas de forma remota.

 

Instalación de VirtualBox Headless.

 

Añadimos la clave de apt de virtualbox

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

 

Editamos el archivo de fuentes de apt

sudo nano /etc/apt/sources.list

 

Y añadimos el repositorio a apt de VirtualBox, añadiendo la siguiente línea

deb http://download.virtualbox.org/virtualbox/debian trusty contrib

Actualizamos e instalamos VirtualBox y otros paquetes:

sudo apt-get update
sudo apt-get install build-essential virtualbox-4.3 dkms

 

Descargamos e instalamos el “extension pack” para tener acceso a funciones como el USB 2.0, y el servidor rdp que necesitamos para instalar phpvirtualbox. La última versión la podemos encontrar en http://www.virtualbox.org/wiki/Downloads. En el momento actual :

cd /tmp
wget http://dlc.sun.com.edgesuite.net/virtualbox/4.3.16/Oracle_VM_VirtualBox_Extension_Pack-4.3.16-95972.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.16-95972.vbox-extpack

 

Y finalmente añadimos nuestro usuario al grupo VirtualBox (donde user es nuestro nombre de usuario)

sudo adduser user vboxusers

 

Instalar phpvirtualbox.

La página del proyecto es http://sourceforge.net/projects/phpvirtualbox/

Actuamos como root

sudo su

 

Añadimos nuestro usuario habitual al acceso web de VirtualBox editando …

nano /etc/default/virtualbox

Y añadimos la línea

VBOXWEB_USER=User

En User ponemos nuestro usuario

Ahora creamos los enlaces de inicio del vboxwebsrv

update-rc.d vboxweb-service defaults
/etc/init.d/vboxweb-service start

 

Añadimos unos cuantos paquetes para el servidor Apache + PHP

apt-get install apache2 php5 libapache2-mod-php5

Reiniciamos apache

service apache2 restart

 

Descargamos y descomprimimos la última versión de phpvirtualbox en el directorio /var/www/html (en el momento actual la phpvirtualbox-4.3-1)

cd /var/www/html

wget http://heanet.dl.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.3-1.zip
unzip phpvirtualbox-4.3-1.zip
mv phpvirtualbox-4.3-1 phpvirtualbox
rm phpvirtualbox-4.3-1.zip

 


Ahora entramos dentro del directorio de phpvirtualbox y hacemos copia de seguridad del archivo de configuración.

cd /var/www/html/phpvirtualbox/cp config.php-example config.php

 

Modificamos config.php

nano config.php

Y modificamos las siguientes líneas. Introducimos usuario y contraseña de nuestro usuario.

[...]
/* Username / Password for system user that runs VirtualBox */
var $username = 'user';
var $password = 'secret';
[...]

 

Y ya podemos acceder al interface de phpvirtualbox tecleando

http://ip_servidor/phpvirtualbox.

 

El usuario es “admin”, y el password “admin”. Por tanto lo primero que tenemos que hacer es cambiarlo. En File, Chage Password.

A partir de aquí el uso es similar al cliente gtk de virtual box.

Si la máquina virtual que instaláis es linux, os recomiendo que después de instalar los «guest tools», instaléis xrdp en español.

Para optimizar los discos virtuales podéis mirar este enlace.

Gracias a:

http://www.howtoforge.com/managing-a-headless-virtualbox-installation-with-phpvirtualbox-ubuntu-12.04

 

http://www.howtoforge.com/vboxheadless-running-virtual-machines-with-virtualbox-4.1-on-a-headless-ubuntu-12.04-server

 

Owncloud 7 con encriptación SSL en Ubuntu 14.04

Owncloud-7-is-here-620x350

Ubuntu LAMP (Linux+Apache+Mysql+PHP)

( Actualizado aquí).

Nota: os recomiendo que echéis un vistazo a dos de mis posts si instalais el servidor desde cero:

Lo primero que necesitamos es instalar el servidor LAMP de ubuntu. Podemos hacerlo directamente en la instalación del Ubuntu Server, o posteriormente con los siguientes comandos:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install lamp-server^

 

El carácter «^» es importante para que el tipo de instalación del servidor web sea apropiado. En la instalación nos pedirá que introduzcamos el password del root de MySQL. Asegúrate de introducir una buena password que sea fácil de recordar.

Owncloud utiliza los archivos .htaccess de Apache por razones de seguridad. Para poder usarlos necesitamos activar dos módulos con los siguientes comandos

sudo a2enmod rewrite
sudo a2enmod headers

 

Además tenemos que cambiar el archivo de configuración de apache para que reescriba las reglas adecuadamente. Con lo cual ejecutamos el siguiente comando

sudo nano /etc/apache2/sites-enabled/000-default.conf

Una vez quí debemos cambiar la línea

#ServerName www.example.com

AllowOverride None

Por

ServerName fqdn
ServerAdmin webmaster@localhost
 DocumentRoot /var/www/html
var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted

 

Finalmente reiniciamos apache

sudo service apache2 restart

 

Instalar OwnCloud

 

Instalamos paquetes necesarios para owncloud

sudo apt-get install php5 php5-mysql php5-gd php-xml-parser php5-intl libcurl3 php5-curl php5-json php5-mcrypt php5-imagick

 

Ahora localizamos la última versión de owncloud en el momento de redactar este tuto, ejecutamos en el terminal

$ cd /var/www/html

$ sudo wget https://download.owncloud.org/community/owncloud-7.0.2.tar.bz2

$ sudo tar -xjvf owncloud-7.0.2.tar.bz2

$ sudo rm owncloud-7.0.2.tar.bz2

El resto de la instalación se hace a través del navegador, y nos permite elegir entre otras cosas, el directorio donde se guardarán los datos de usuario que carguemos a través del navegador.

 

Si decidimos elegir un directorio distinto al que nos indica por omisión, a este directorio hay asignarle el usuario www-data con el siguiente comando

sudo chown -R www-data:www-data /ruta/al/directorio/de/datos/de/owncloud

 

La dirección de nuestro owncloud será http://host/owncloud.

Si tenemos un fqdn (fully qualified domain name) lo introducimos en vez de host. Podemos obtener uno gratuito en dyndns.com.

Si no tenemos el fqdn, introducimos la ip del servidor. Si accedemos a él, desde el propio servidor, en vez de host, ponemos localhost.

 

En nombre de usuario, introducimos el nombre que queramos para el usuario administrador de owncloud, así como la contraseña.

En directorio de almacenamiento puedo elegir el que quiera, pero recuerdo, debemos asignarle el usuario www-data.

En configurar la base de datos introducimos el usuario, password y nombre de la base de datos que hemos creado para owncloud.

 

Y ya tenemos instalado nuestro servidor owncloud.

 

Antes de salir, recomiendo entrar en personal y añadir nuestro correo electrónico, para poder recuperar la contraseña en caso de que la perdamos.ownpost1

 

Últimos ajustes

Ajustes de php

Necesitamos configurar php para que admita archivos grandes. Podemos hacerlo a través del terminal editando los archivos. /etc/php5/apache2/php.ini /etc/php5/cli/php.ini y pero es más cómodo y seguro hacerlo a través del módulo de webmin.

Para instalar webmin, vamos a http://webmin.com y descargamos el instalador con el comando wget. En el momento actual la última versión es la 1.650

wget http://switch.dl.sourceforge.net/project/webadmin/webmin/1.710/webmin_1.710_all.deb

Instalamos algunos paquetes necesarios

sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python

Instalamos webmin y borramos el paquete

sudodpkg -i webmin_1.710_all.debsudo rm webmin_1.710_all.deb

Ahora podemos acceder al interface de webmin a través del navegador, en la dirección

https://ip_servidor:10000 (si accedemos desde el propio servidor https://localhost:10000)

Introducimos nuestro usuario y password y ya estamos dentro.

En el menú otros, seleccionamos PHP Configuration:

Damos al enlace Manage, y después den Resource Limits en cada uno de los ficheros y modificamos para que quede así.

phpconf2

Como maximum memory allocation, recomiendo poner una cuarta parte de la ram del servidor (pero es cuestión de ir probando).

Ajustes del .htaccess

Abrimos el .htaccess de owncloud con el siguiente comando

sudo nano /var/www/html/owncloud/.htaccess

Y modificamos las siguientes líneas

php_value upload_max_filesize 513Mphp_value post_max_size 513Mphp_value memory_limit 512M

Para que queden como los valores que modificamos en php.

php_value upload_max_filesize 20000Mphp_value post_max_size 20000Mphp_value memory_limit 2048M

Y reiniciamos apache

sudo service apache2 restart

 

Conexión SSL

Primero activamos el módulo SSL de Apache

sudo a2enmod ssl
service apache2 restart

Editamos el archivo de configuración /etc/ssl/openssl.conf

nano /etc/ssl/openssl.cnf

Encontramos y cambiamos las siguientes líneas

dir = /root/SSLCertAuth
default_days = 3650 # 10 years
default_bits = 2048 # recommended by NSA until 2030
countryName_default = ES
0.organizationName_default = Ubuntu Contrib

Creamos el diretorio para guardar todos los archivos de la autoridad certificadora SSL, en nuestro caso lo llamaremos “SSLCertAuth”. Ejecutamos los siguientes comandos

mkdir /root/SSLCertAuth
chmod 700 /root/SSLCertAuth
cd /root/SSLCertAuth
mkdir certs private newcerts
echo 1000 > serial
touch index.txt

Creamos la autoridad certificadora (CA) con el siguiente comando:

openssl req -new -x509 -days 3650 -extensions v3_ca \
-keyout private/cakey.pem -out cacert.pem \
-config /etc/ssl/openssl.cnf

Nos pide:

Enter PEM pass phrase:introducimos una contraseña que usaremos después para firmar cualquier certificado (hay que recordarla). Vamos introduciendo todos los datos, y tenemos especial cuidado cuando nos pir el Common Name, que debe ser nuestro nombre de internet (fqdn: fully qualified domain name).

 

Ahora creamos la solicitud de firma del certificado del sitio:

openssl req -new -nodes \
 -out apache-req.pem \
 -keyout private/apache-key.pem \
 -config /etc/ssl/openssl.cnf

De nuevo introducimos todos los datos que nos pide, y en Common Name de nuevo metemos el fqdn. Los extra atributes… podemos dejarlos en blanco.

Y finalmente generamos el certificado para copiarlo después en el directorio /etc/ssl

openssl ca \
-config /etc/ssl/openssl.cnf \
-out apache-cert.pem \
-infiles apache-req.pem

Introducimos la password de la CA que creamos antes y despues le decimos a todo que si.

Ejecutamos:

mkdir /etc/ssl/crt
mkdir /etc/ssl/key
cp /root/SSLCertAuth/apache-cert.pem /etc/ssl/crt
cp /root/SSLCertAuth/private/apache-key.pem /etc/ssl/key

El paso final consiste en configurar apache para que el servicio por misión HTTPS, sea owncloud.

mkdir /var/www/html/logs sudo nano /etc/apache2/conf-enabled/owncloud5-ssl.conf

Copia y pega la siguiente configuración:

<VirtualHost *:443>
ServerName fqdn
SSLEngine on
SSLCertificateFile /etc/ssl/crt/apache-cert.pem
SSLCertificateKeyFile /etc/ssl/key/apache-key.pem
DocumentRoot /var/www/html/owncloud
CustomLog /var/www/html/logs/ssl-access_log combined
ErrorLog /var/www/html/logs/ssl-error_log
</VirtualHost>

Donde pone fqdn, ponemos nuestro nombre de internet o la ip de nuestro servidor. Damot Ctrl+x para cerrar y “y” para salvar.

Desde dentro de owncloud (Administración) podemos forzar el uso de SSL, lo que es muy recomendable a efectos de seguridad.

owncloud ssl

 

Gracias a:

SSD TRIM en OSX Snow Leopard

trimenablerTodos aquellos que como yo seguís trabajando con Snow Leopard y queréis añadir un disco SSD, seguramente os habréis encontrado con un dolor de cabeza terrible para activar TRIM a través de TRIM enabler 3.0 que es la versión actual a la fecha de este post.

La última versión de TRIM enabler que funciona con Snow Leopard es la 2.0, que podéis descargar en este enlace.

chamaleonAunque a mi no me ha funcionado, os dejo el link a  una nueva aplicación gratuita mas completa denominada Chamaleon SSD Optimizer, que permite no solo activar TRIM, sino ajustar otros parámetros. Entre sus funciones:

– Activación del soporte TRIM
– Desactivación del Sudden Motion Sensor
– Desactivación de Time Machine (local o totalmente)
– Activación de Noatime
– Selector de SleepMode (0, 3, 25)
– Visor de datos S.M.A.R.T
– Reparación de permisos

Funciona incluso con la versión 10.6.7 de Snow Leopard.

Para activar noatime, consultar el siguiente post.

A todos los que tengáis un Mac Pro, os recomiendo también un accesorio de Apricorn que a parte de ser un controlador SATA3, os permite montar directamente encima la SSD.

apricorn

Gracias a:

 

VirtualBox + PhpVirtualBox Ubuntu Server 12.04

imgvirtualbox1

Nota: Versión actualizada a Ubuntu 16.04 aquí.

Objetivo:

Ejecutar máquinas virtuales en un servidor ubuntu 12.04 LTS, sin interfaz gráfica, para acceder a ellas de forma remota.

 

Instalación de VirtualBox Headless.

 

Añadimos la clave de apt de virtualbox

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

 

Editamos el archivo de fuentes de apt

sudo nano /etc/apt/sources.list

 

Y añadimos el repositorio a apt de VirtualBox, añadiendo la siguiente línea

deb http://download.virtualbox.org/virtualbox/debian precise contrib

Actualizamos e instalamos VirtualBox y otros paquetes:

sudo apt-get update
sudo apt-get install build-essential virtualbox-4.2 dkms

 

Descargamos e instalamos el “extension pack” para tener acceso a funciones como el USB 2.0, y el servidor rdp que necesitamos para instalar phpvirtualbox. La última versión la podemos encontrar en http://www.virtualbox.org/wiki/Downloads. En el momento actual :

cd /tmp
wget http://dlc.sun.com.edgesuite.net/virtualbox/4.2.16/Oracle_VM_VirtualBox_Extension_Pack-4.2.16-86992.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.2.16-86992.vbox-extpack

 

Y finalmente añadimos nuestro usuario al grupo VirtualBox

sudo adduser user vboxusers

 

Instalar phpvirtualbox.

La página del proyecto es http://sourceforge.net/projects/phpvirtualbox/

Actuamos como root

sudo su

 

Añadimos nuestro usuario habitual al acceso web de VirtualBox editando …

nano /etc/default/virtualbox

Y añadimos la línea

VBOXWEB_USER=User

En User ponemos nuestro usuario

Ahora creamos los enlaces de inicio del vboxwebsrv

update-rc.d vboxweb-service defaults
/etc/init.d/vboxweb-service start

 

Añadimos unos cuantos paquetes para el servidor Apache + PHP

apt-get install apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common apache2 apache2-doc apache2-suexec libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libapr1 php5-common php5-mysql php5-suhosin php-pear wget unzip

Reiniciamos apache

sudo service apache2 restart

 

Descargamos y descomprimimos la última versión de phpvirtualbox en el directorio /var/www

cd /var/www
wget http://surfnet.dl.sourceforge.net/project/phpvirtualbox/phpvirtualbox-4.2-7.zip
unzip phpvirtualbox-4.2-7.zip
mv phpvirtualbox-4.2-7 phpvirtualbox
rm phpvirtualbox-4.2-7.zip

Ahora entramos dentro del directorio de phpvirtualbox y hacemos copia de seguridad del archivo de configuración.

cd /var/www/phpvirtualbox/

 

cp config.php-example config.php

 

Modificamos config.php

nano config.php

Y modificamos las siguientes líneas. Introducimos usuario y contraseña de nuestro usuario.

[...]
/* Username / Password for system user that runs VirtualBox */
var $username = 'user';
var $password = 'secret';
[...]

 

Y ya podemos acceder al interface de phpvirtualbox tecleando

http://ip_servidor/phpvirtualbox.

 

El usuario es “admin”, y el password “admin”. Por tanto lo primero que tenemos que hacer es cambiarlo. En File, Chage Password.

A partir de aquí el uso es similar al cliente gtk de virtual box.

Si la máquina virtual que instaláis es linux, os recomiendo que después de instalar los «guest tools», instaléis xrdp en español.

 

Gracias a:

http://www.howtoforge.com/managing-a-headless-virtualbox-installation-with-phpvirtualbox-ubuntu-12.04

 

http://www.howtoforge.com/vboxheadless-running-virtual-machines-with-virtualbox-4.1-on-a-headless-ubuntu-12.04-server

 

Owncloud con soporte SSL Ubuntu 12.04

owncloud-logo1

Para seguir este howto primero debemos completar la instalación de Owncloud básica, que podéis encontrar en el siguiente post.

 

Primero activamos el módulo SSL de Apache

sudo a2enmod ssl
service apache2 restart

Editamos el archivo de configuración /etc/ssl/openssl.conf

nano /etc/ssl/openssl.cnf

Encontramos y cambiamos las siguientes líneas

dir = /root/SSLCertAuth
default_days = 3650 # 10 years
default_bits = 2048 # recommended by NSA until 2030
countryName_default = ES
0.organizationName_default = Ubuntu Contrib

Creamos el diretorio para guardar todos los archivos de la autoridad certificadora SSL, en nuestro caso lo llamaremos “SSLCertAuth”. Ejecutamos los siguientes comandos

mkdir /root/SSLCertAuth
chmod 700 /root/SSLCertAuth
cd /root/SSLCertAuth
mkdir certs private newcerts
echo 1000 > serial
touch index.txt

Creamos la autoridad certificadora (CA) con el siguiente comando:

openssl req -new -x509 -days 3650 -extensions v3_ca \
-keyout private/cakey.pem -out cacert.pem \
-config /etc/ssl/openssl.cnf

Nos pide:

Enter PEM pass phrase:introducimos una contraseña que usaremos después para firmar cualquier certificado (hay que recordarla). Vamos introduciendo todos los datos, y tenemos especial cuidado cuando nos pir el Common Name, que debe ser nuestro nombre de internet (fqdn: fully qualified domain name).

 

Ahora creamos la solicitud de firma del certificado del sitio:

openssl req -new -nodes \
 -out apache-req.pem \
 -keyout private/apache-key.pem \
 -config /etc/ssl/openssl.cnf

De nuevo introducimos todos los datos que nos pide, y en Common Name de nuevo metemos el fqdn. Los extra atributes… podemos dejarlos en blanco.

Y finalmente generamos el certificado para copiarlo después en el directorio /etc/ssl

openssl ca \
-config /etc/ssl/openssl.cnf \
-out apache-cert.pem \
-infiles apache-req.pem

Introducimos la password de la CA que creamos antes y despues le decimos a todo que si.

Ejecutamos:

mkdir /etc/ssl/crt
mkdir /etc/ssl/key
cp /root/SSLCertAuth/apache-cert.pem /etc/ssl/crt
cp /root/SSLCertAuth/private/apache-key.pem /etc/ssl/key

El paso final consiste en configurar apache para que el servicio por misión HTTPS, sea owncloud.

mkdir /var/www/logs
nano /etc/apache2/conf.d/owncloud5-ssl.conf

Copia y pega la siguiente configuración:

<VirtualHost *:443>
ServerName fqdn
SSLEngine on
SSLCertificateFile /etc/ssl/crt/apache-cert.pem
SSLCertificateKeyFile /etc/ssl/key/apache-key.pem
DocumentRoot /var/www/owncloud
CustomLog /var/www/logs/ssl-access_log combined
ErrorLog /var/www/logs/ssl-error_log
</VirtualHost>

Donde pone fqdn, ponemos nuestro nombre de internet o la ip de nuestro servidor. Damot Ctrl+x para cerrar y “y” para salvar.

Desde dentro de owncloud (Administración) podemos forzar el uso de SSL, lo que es muy recomendable a efectos de seguridad.

owncloud ssl

 

Gracias a:

http://ubuntuserverguide.com/2013/04/how-to-setup-owncloud-server-5-with-ssl-connection.html