Base de conocimientos

1 000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!

Esta guía detalla las restricciones relativas al número de conexiones simultáneas permitidas en las bases de datos MySQL de los alojamientos web.

 

Límites de conexiones MySQL simultáneas

Para preservar la estabilidad, la seguridad y la reactividad del servidor para todos los usuarios, se aplican límites de conexiones simultáneas por el sistema.

Para cada usuario de base de datos en Infomaniak, el límite está fijado en 38 conexiones MySQL simultáneas.

Este cupo previene la saturación de los recursos compartidos. Si se supera este límite, el acceso se bloquea temporalmente y pueden aparecer errores del tipo User has already more than 'max_user_connections' active connections o Too many connections.

En la práctica, este límite rara vez se alcanza. Si es necesario, es perfectamente posible repartir la carga creando usuarios MySQL distintos para los diferentes scripts o servicios de su sitio.

 

Sin cuota de conexiones por hora

Infomaniak no impone ninguna restricción sobre el volumen de consultas por hora. Los parámetros como MAX_QUERIES_PER_HOUR o MAX_CONNECTIONS_PER_HOUR no están activados.

A diferencia de algunas ofertas competitivas, no encontrará errores de exceso de recursos del tipo SQL Error : 1226 relacionados con un volumen de actividad horaria.

 

Más información


¿Le ha sido útil esta FAQ?

Esta guía técnica detalla los límites de recursos en los alojamientos web de Infomaniak; es esencial distinguir el tiempo real (reloj) del tiempo de cálculo (procesador) para comprender el origen de las interrupciones de scripts.

 

1. Tiempo de conexión MySQL (I/O)

Límite: 30 segundos reales

Este límite corresponde al tiempo absoluto transcurrido "de reloj". Se refiere a la comunicación entre PHP y el servidor de base de datos (MySQL/MariaDB).

Tan pronto como se abre una conexión, el servidor de base de datos asigna un máximo de 30 segundos para recibir la consulta, ejecutarla y devolver los resultados. Si este plazo se excede (a menudo debido a una consulta SQL mal optimizada), el servidor MySQL corta bruscamente la conexión. Esto generalmente genera el error MySQL server has gone away.

 

2. Tiempo de procesamiento PHP (CPU)

Límite: 10 segundos CPU

Este límite se refiere exclusivamente a la potencia de cálculo consumida por el servidor web para ejecutar el código PHP.

Es crucial tener en cuenta que el tiempo de espera no cuenta. Cuando PHP espera una respuesta de la base de datos, está en pausa y no consume casi tiempo de CPU. Por lo tanto, un script será interrumpido por el servidor web solo si realiza cálculos intensivos (bucles complejos, criptografía, procesamiento de archivos) durante más de 10 segundos acumulados.

 

Interacción de los dos límites

Para garantizar la estabilidad de la aplicación, cada operación debe cumplir simultáneamente con estas dos restricciones distintas:

  • La aplicación dispone de 30 segundos de tiempo total para interactuar con la base de datos (latencia de red + ejecución SQL).
  • La aplicación dispone de 10 segundos de tiempo de cálculo puro para procesar los datos recibidos.

Ejemplo de funcionamiento válido: un script que espera 25 segundos una respuesta compleja de MySQL (I/O) y luego procesa el resultado durante 2 segundos (CPU) funcionará perfectamente, ya que no ha excedido ninguno de los dos límites individuales, aunque el tiempo total sea de 27 segundos.


¿Le ha sido útil esta FAQ?

Esta guía explica cómo forzar la visualización del nombre del alojamiento web en la barra de direcciones del navegador a uno de los nombres de dominio instalados como alias/sinónimo o cómo mostrar en la barra de direcciones el dominio principal en lugar del alias.

 

Limitar el "duplicate content" o contenido duplicado

Imagine que tenga el alojamiento su-dominio.com en Infomaniak y que como nombre de dominio sinónimo haya instalado www.dominiosino.xyz.

Por defecto, cuando escriba uno u otro de los nombres de dominio (su-dominio.com o dominiosino.xyz) en la barra de direcciones de su navegador, será el que haya escrito el que se mostrará en la barra de direcciones.

Por lo tanto, tiene la posibilidad de forzar la visualización de otra dirección que la que se ha escrito. Así, si alguien escribe dominiosino.xyz, entonces será su-dominio.com el que se mostrará automáticamente en la barra de direcciones.

Un código debe escribirse en un archivo llamado .htaccess que debe encontrarse en la raíz de su alojamiento (en la carpeta /web de su FTP). Si este archivo no existe aún, debe crearlo en el servidor.

A continuación, inserte estas directivas en el archivo:

RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://votre-domaine.com/$1 [R=301,L]

Adapte el código anterior según estas indicaciones:

  • Reemplazar su-dominio.com por su nombre de dominio con la extensión adecuada (.com, .fr, .ch, etc.) que desea ver en la barra de direcciones del navegador del visitante. Agregar www. antes de su-dominio.com si es necesario.
  • Reemplazar la segunda línea del código anterior por "RewriteCond %{HTTPS} off‍" si ocurre un error de bucle, esto significa que el HTTP/2 está activo para este sitio

Tenga también en cuenta las redirecciones automáticas a httpS.


¿Le ha sido útil esta FAQ?

Esta guía trata sobre la sincronización de servidores a través del protocolo NTP (Network Time Protocol) y la configuración de la zona horaria en los servidores de Infomaniak.

 

Sincronización precisa de servidores a través de NTP

Todos los servidores de Infomaniak están sincronizados a través del protocolo NTP. La empresa pone a disposición sus propios servidores NTP stratum-1 accesibles al público para un uso flexible.

Para integrar estos servidores en sus parámetros, utilice la siguiente entrada: pool.ntp.infomaniak.ch.

La configuración predeterminada de la zona horaria es UTC. Sin embargo, las funciones PHP están diseñadas para tener en cuenta diferentes zonas horarias según las necesidades específicas.

Para ajustar la zona horaria en sus scripts PHP, utilice la función date_default_timezone_set('UTC').

 

MySQL: especificidades temporales

La infraestructura de Infomaniak admite las funcionalidades que permiten trabajar con datos temporales de manera precisa y eficiente, teniendo en cuenta los husos horarios, lo cual es crucial para muchas aplicaciones modernas:

  • MySQL utiliza una base de datos de husos horarios para almacenar y gestionar la información sobre los husos horarios.
  • La tabla mysql.time_zone contiene los datos de los husos horarios, incluidas las informaciones sobre los desplazamientos horarios, los nombres de los husos horarios, etc.
  • La función CONVERT_TZ se utiliza para convertir una hora de un huso horario a otro en MySQL con la siguiente sintaxis: CONVERT_TZ(dt, from_tz, to_tz), donde:
    • dt es la fecha/hora a convertir.
    • from_tz es el huso horario de origen.
    • to_tz es el huso horario de destino.
  • Ejemplo: CONVERT_TZ('2024-05-14 12:00:00', 'UTC', 'America/New_York') convertirá la hora 12:00:00 UTC a la hora local de Nueva York.

¿Le ha sido útil esta FAQ?

Esta guía permite resolver un error de tipo "Invalid query: MySQL server has gone away".

 

Prólogo

 

Soluciones

Para evitar el error "MySQL server has gone away", aquí hay varias aproximaciones posibles:

Verificación y reconexión automática

Antes de ejecutar una consulta, se recomienda probar si la conexión MySQL sigue activa. Si la conexión ha sido cerrada, puede restablecerse automáticamente antes de continuar con su consulta. Aquí hay un ejemplo en PHP:

if (!mysqli_ping($connexion)) {
mysqli_close($connexion);
$connexion = mysqli_connect($host, $user, $password, $database);
}

La función mysqli_ping() verifica si la conexión sigue siendo válida. Si no lo es, el script cierra la conexión y abre una nueva.

Envío de "Ping" regular

Otro medio consiste en ejecutar un script que envía regularmente un "ping" a la base de datos para mantener la conexión activa. Por ejemplo, podría crear una tarea programada (cron job) que envía una consulta ligera, como SELECT 1; a intervalos regulares.

Ajuste de los parámetros MySQL (Servidor en la nube)

Con un Servidor en la nube, puede aumentar los valores de las variables wait_timeout y interactive_timeout desde el menú MySQL de su servidor para prolongar la duración de la conexión antes de que se cierre.


¿Le ha sido útil esta FAQ?

Esta guía trata sobre "browscap.ini", un archivo de configuración histórico utilizado por PHP para identificar las características de los navegadores web (nombre, versión, capacidades, SO) a partir de su cadena User-Agent.

El uso de browscap.ini hoy en día se considera obsoleto para nuevos proyectos debido a su impacto negativo en el rendimiento y la evolución de los estándares web.

 

Información sobre el archivo y uso legado

Para que la función nativa de PHP get_browser() funcione, debe apuntar a un archivo browscap.ini actualizado. La ruta predeterminada en los servidores generalmente es:

/opt/php/lib/php/browscap.ini

Aunque no se recomienda para producción debido al tamaño del archivo (varios megabytes a cargar en memoria), puede consultar su contenido a través de este script:

<?php
header("Content-type: text/plain");
if (file_exists("/opt/php/lib/php/browscap.ini")) {
    echo file_get_contents("/opt/php/lib/php/browscap.ini");
} else {
    echo "Fichier introuvable.";
}
?>

 

Alternativas modernas recomendadas

Para los proyectos actuales, los desarrolladores prefieren las siguientes soluciones:

  1. Bibliotecas a través de Composer: herramientas como matomo/device-detector o whichbrowser/parser son más precisas, más rápidas y se actualizan fácilmente a través de las dependencias del proyecto.
  2. User-Agent Client Hints (UA-CH): la nueva norma HTTP que permite obtener información estructurada y fiable directamente del navegador.
  3. Detección de características (Feature Detection): usar JavaScript (o consultas @supports en CSS) para verificar si una función existe, en lugar de adivinar el nombre del navegador.

¿Le ha sido útil esta FAQ?

Esta guía se refiere a Django, un framework de código abierto para el desarrollo web en Python, especialmente conocido por su robustez y rapidez de desarrollo.

 

Instalación de Django

Requisitos previos

  • Un alojamiento adecuado:
    • El despliegue de una aplicación Python requiere un servidor de aplicaciones que funcione de forma continua, por lo que un alojamiento web compartido estándar no es adecuado.
    • Se requiere acceso completo al servidor a través de SSH.
  • Entorno técnico:
    • Python 3 instalado en el servidor, así como el gestor de paquetes pip.
  • Conocimientos básicos:
    • Familiaridad con la interfaz de línea de comandos (CLI) en Linux y la gestión de entornos virtuales de Python (como venv).

A continuación, se indican los pasos generales para inicializar su entorno en su servidor:

Es necesario instalar Django en ofertas web que garanticen un control total sobre el entorno de ejecución, como los VPS Cloud / VPS Lite: descubra los diferentes alojamientos web de Infomaniak.

  1. Conéctese a su servidor VPS a través de SSH.
  2. Cree y active un entorno virtual dedicado a su proyecto para aislar sus dependencias (por ejemplo, python3 -m venv my_environnement y, a continuación, source my_environnement/bin/activate).
  3. Proceda a la instalación del framework a través del gestor de paquetes: pip install django.
  4. Inicialice su nuevo proyecto con el comando: django-admin startproject name_of_project.

 

Puesta en producción

Atención: el servidor de desarrollo integrado en Django (que se inicia con runserver) no está diseñado para un entorno de producción. Para que su sitio web sea accesible de forma segura en Internet en su VPS de Infomaniak, será necesario configurar un servidor de aplicaciones (como Gunicorn o uWSGI) detrás de un proxy inverso (Reverse Proxy), como Nginx o Apache.


¿Le ha sido útil esta FAQ?

Esta guía le ayudará a encontrar la dirección IP pública de su dispositivo, lo cual puede ser útil en determinadas solicitudes de asistencia técnica.

 

Mostrar la dirección IP pública en el dispositivo conectado

Haga clic aquí para obtener la dirección IP pública de su dispositivo en formato IPv4 y IPv6.

 

Métodos alternativos

Visite ipinfo.io o ifconfig.me.

… en macOS

  1. Desde una aplicación de tipo Terminal (interfaz de línea de comandos, CLI /Command Line Interface) en su dispositivo, ejecute el comando curl ifconfig.me y pulse Intro.
  2. La dirección que se muestra es la dirección IP pública del ordenador.

 

Tenga en cuenta que esta dirección puede cambiar periódicamente, especialmente si el router se reinicia o si el proveedor de servicios de Internet utiliza una asignación dinámica de direcciones IP.

 

Para automatizar la búsqueda de la dirección IP pública, utilice comandos o scripts que consulten servicios como api.ipify.org...


¿Le ha sido útil esta FAQ?

Esta guía explica cómo utilizar PHPMailer con los servicios de alojamiento web de Infomaniak para enviar correos electrónicos desde un sitio web.

 

⚠ ATENCIÓN ⚠

Infomaniak garantiza la conformidad de sus servicios con los protocolos estándar (IMAP, S3, etc.), pero no ofrece asistencia adicional para servicios o software externos, ya que su configuración puede cambiar según el proveedor o el editor. Por lo tanto, esta guía se proporciona únicamente como referencia, y su implementación es su responsabilidad (véase: Política de soporte / Art. 11.9 de las CGU). Si es necesario, una persona cualificada puede ayudarle.


 

Introducción

  • PHPMailer es una biblioteca PHP que permite crear y enviar correos electrónicos desde un sitio web, especialmente a través de SMTP.
  • Permite, entre otras cosas, enviar mensajes en formato HTML, añadir una versión de texto alternativa, gestionar archivos adjuntos y utilizar la autenticación SMTP.
  • Para el envío autenticado a través de SMTP, el entorno PHP utilizado por el sitio debe ser compatible con una conexión cifrada reciente, especialmente TLS 1.2 o superior.
    • Una versión demasiado antigua de PHP o de la biblioteca OpenSSL utilizada por PHP puede provocar un error de conexión o autenticación, incluso si la dirección de correo electrónico y la contraseña son correctas.
    • No utilice PHP 5.3/5.4 para este tipo de envío; utilice una versión de PHP reciente y con soporte.
  • Con el envío SMTP autenticado, la dirección utilizada como remitente debe coincidir con la dirección de correo electrónico utilizada para la autenticación SMTP.

 

Instalar PHPMailer

Para utilizar PHPMailer, instale la biblioteca en los archivos de su sitio web.

  1. Descargue PHPMailer desde su repositorio oficial o instálela con Composer si su proyecto lo utiliza.
  2. Copie los archivos de PHPMailer en un directorio de su sitio web a través de FTP.
  3. Cargue los archivos necesarios en su script PHP, adaptando la ruta según la ubicación elegida:

    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    
    require **DIR** . '/PHPMailer/src/Exception.php';
    require **DIR** . '/PHPMailer/src/PHPMailer.php';
    require **DIR** . '/PHPMailer/src/SMTP.php';

 

Configurar el envío SMTP con Infomaniak

Utilice los siguientes parámetros SMTP autenticados:

  • Servidor SMTP: mail.infomaniak.com
  • Puerto: 465
  • Cifrado: SMTPS / SSL-TLS
  • Autenticación: obligatoria
  • Nombre de usuario: la dirección de correo electrónico completa
  • Contraseña: la contraseña de la dirección de correo electrónico utilizada

Ejemplo de configuración completa:

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require **DIR** . '/PHPMailer/src/Exception.php';
require **DIR** . '/PHPMailer/src/PHPMailer.php';
require **DIR** . '/PHPMailer/src/SMTP.php';

$mail = new PHPMailer(true);

try {
// Configuration SMTP
$mail->isSMTP();
$mail->Host       = 'mail.infomaniak.com';
$mail->SMTPAuth   = true;
$mail->Username   = '[sender@domain.xyz](mailto:sender@domain.xyz)';
$mail->Password   = 'mot_de_passe_de_l_adresse_mail';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port       = 465;
$mail->CharSet    = 'UTF-8';

```
// Expéditeur
// L'adresse doit correspondre à celle utilisée pour l'authentification SMTP.
$mail->setFrom('sender@domain.xyz', 'Nom du site');

// Destinataire
$mail->addAddress('recipient@example.com');

// Adresse de réponse facultative
$mail->addReplyTo('sender@domain.xyz', 'Nom du site');

// Contenu du message
$mail->isHTML(true);
$mail->Subject = 'Message envoyé depuis le site';
$mail->Body    = '<p>Contenu HTML du message.</p>';
$mail->AltBody = 'Contenu texte du message.';

$mail->send();
echo 'Message envoyé';
```

} catch (Exception $e) {
echo 'Le message n’a pas pu être envoyé. Erreur: ' . htmlspecialchars($mail->ErrorInfo);
}

Si su aplicación requiere el uso del puerto 587, utilice STARTTLS:

$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port       = 587;

 

Verificar la versión de PHP y la compatibilidad TLS

El envío SMTP autenticado requiere una conexión cifrada reciente. Si el sitio utiliza una versión demasiado antigua de PHP, por ejemplo, PHP 5.3, o una biblioteca OpenSSL demasiado antigua, PHPMailer puede fallar antes o durante la autenticación. Los errores pueden ser engañosos, por ejemplo:

  • SMTP connect() failed
  • Could not authenticate
  • stream_socket_enable_crypto()
  • un error de autenticación, aunque la contraseña sea correcta

En este caso, compruebe los siguientes puntos:

  1. la versión de PHP utilizada por el sitio web;
  2. la versión de OpenSSL utilizada por PHP;
  3. la versión de PHPMailer utilizada por su proyecto;
  4. la correspondencia entre el puerto SMTP y el cifrado elegido.

Para una configuración fiable, utilice una versión reciente de PHP, compatible con TLS 1.2 o superior, así como una versión actual de PHPMailer. Consulte estas guías si es necesario:

 

Resolver un error de "Sender mismatch"

El error Sender mismatch SMTP code: 550 Additional SMTP info: 5.7.1 puede ocurrir cuando la dirección utilizada como remitente no coincide con la dirección de correo electrónico utilizada para la autenticación SMTP. Ejemplo a evitar:

$mail->Username = 'sender@domain.xyz';
$mail->setFrom('another-address@domain.xyz', 'Nom du site');

En este ejemplo, el script se autentica con sender@domain.xyz, pero intenta enviar el mensaje con otra dirección de remitente.

Utilice la misma dirección de correo electrónico para la autenticación SMTP y para el remitente:

$mail->Username = 'sender@domain.xyz';
$mail->setFrom('sender@domain.xyz', 'Nom du site');

El nombre del remitente se puede personalizar, pero la dirección de correo electrónico debe seguir siendo coherente con la cuenta SMTP utilizada.

Caso de un formulario de contacto

Si un visitante introduce su dirección de correo electrónico en un formulario, no la utilice como dirección de remitente del mensaje. Utilice la dirección de correo electrónico autenticada como remitente y, a continuación, añada la dirección del visitante como dirección de respuesta.

Ejemplo:

$mail->Username = 'sender@domain.xyz';
$mail->setFrom('sender@domain.xyz', 'Formulaire du site');
$mail->addReplyTo($email_visiteur);

Esta configuración permite responder al visitante desde su programa de correo electrónico sin enviar el mensaje con una dirección de remitente no autorizada.

 

Activar el modo de depuración temporalmente

En caso de error, active temporalmente el modo de depuración de PHPMailer para obtener más detalles sobre la conexión SMTP:

$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';

Desactive este modo después de realizar las pruebas para evitar mostrar información técnica a los visitantes del sitio.

 

Más información


¿Le ha sido útil esta FAQ?

Esta guía se refiere al uso de la tecnología Java, que, en particular en términos de consumo de memoria RAM, es incompatible con las restricciones de las ofertas de alojamiento compartido de Infomaniak. Las aplicaciones Java suelen ser intensivas en recursos, lo que puede afectar el rendimiento y la estabilidad de los servidores compartidos entre varios usuarios.

 

Soporte limitado a las applets del lado del cliente

Solo las applets Java del lado del cliente, es decir, las ejecutadas en el navegador web del usuario, son compatibles con los servidores compartidos. Estas applets no requieren recursos importantes del servidor y, por lo tanto, no plantean los mismos problemas que las aplicaciones Java del lado del servidor. En consecuencia, ningún producto que utilice la tecnología Java del lado del servidor es compatible.

 

Productos y tecnologías no compatibles

A continuación, se presenta una lista no exhaustiva de los productos y tecnologías específicas que no son compatibles con los servidores compartidos:

Esta política permite garantizar un rendimiento óptimo y un uso equitativo de los recursos para todos los usuarios de los servidores compartidos.


¿Le ha sido útil esta FAQ?

Esta guía explica cómo activar la opción MultiViews a través de un archivo .htaccess en los sitios alojados por Infomaniak.

 

Prólogo

  • En algunos casos, la opción MultiViews debe estar activada para gestionar problemas de redirección y reescritura de URL.
  • Esta opción permite al servidor adivinar qué archivo está buscando el usuario. Ejemplo:
    • Si la carpeta configuration y el archivo configuration.php se encuentran en la raíz de su sitio y intenta acceder a la dirección domain.xyz/configuration, la opción MultiViews debe estar activada para que el servidor pueda adivinar que desea acceder al archivo configuration.php.
  • La opción MultiViews puede entrar en conflicto a veces con reglas de reescritura de URL más complejas definidas por mod_rewrite (utilizadas por muchos CMS).

 

Activar la opción MultiViews

Para ello:

  1. Abra o cree el archivo .htaccess que se encuentra en la raíz del sitio correspondiente.
  2. Agregue la siguiente directiva:

    Options +MultiViews
  3. Guarde los cambios.

¿Le ha sido útil esta FAQ?

Esta guía trata sobre la ejecución del lenguaje C# y el framework .NET a través de la implementación Mono en los alojamientos de Infomaniak.

 

Tecnologías para el desarrollo de software

Para utilizar el lenguaje C# y el framework .NET con la implementación Mono, con el fin de desarrollar aplicaciones de software desplegables y ejecutables en múltiples plataformas, fuera del entorno Windows, se recomienda optar por soluciones como:

La flexibilidad y portabilidad ofrecidas por estos entornos multiplataforma significan que un alojamiento web compartido no permite la ejecución de proyectos basados en C#, .NET o Mono.


¿Le ha sido útil esta FAQ?

Esta guía explica cómo modificar una oferta de Hosting Web existente para, por ejemplo, poder alojar sitios web adicionales si se ha alcanzado el límite máximo de sitios, o obtener una solución de alojamiento más reciente para beneficiarse de las últimas versiones de PHP & MySQL.

 

Modificar la oferta de alojamiento web para…

 

… pedir sitios, espacio en disco o IPs adicionales

Para acceder al configurador del alojamiento web:

  1. Haga clic aquí para acceder a la gestión de su alojamiento en el Gestor Infomaniak (¿necesita ayuda?).
  2. Haga clic en el menú de acción ⋮ situado a la derecha del alojamiento correspondiente.
  3. Haga clic en Modificar la oferta:
  4. Aumente los valores que desea modificar.
  5. Haga clic en el botón Siguiente para acceder al pago de las modificaciones realizadas en el alojamiento:

 

… pasar a un servidor más reciente

Para obtener una solución de alojamiento en un servidor más reciente y así beneficiarse, entre otras cosas, de las últimas versiones de PHP & MySQL, puede…

  • … consultar esta otra guía siguiendo el procedimiento indicado en ella hasta el final:
  • … consultar esta otra guía siguiendo el procedimiento indicado en ella hasta el punto 4 y luego haga clic en el botón para actualizar:

Si no se muestra ningún banner de información, es que ya disfruta de una oferta de alojamiento reciente.


¿Le ha sido útil esta FAQ?

Esta guía detalla la integración del entorno ASP / ASP.NET dentro del ecosistema Infomaniak.

 

Compatibilidad & Infraestructura

Las soluciones de Hosting Web y Servidores Cloud gestionados están optimizadas para entornos Linux/Apache. Por lo tanto, el módulo Apache::ASP no es compatible de forma nativa con estas ofertas compartidas.

 

Alternativas & soluciones Cloud

Para desplegar sus aplicaciones ASP de manera fluida, varias opciones están disponibles para usted:

  • VPS Cloud: instale y configure su propia pila ASP/IIS o utilice Mono/Core en una distribución de su elección.
  • Jelastic Cloud (PaaS) : despliegue sus aplicaciones ASP.NET Core a través de contenedores Docker en unos pocos clics con un escalado horizontal automático.
  • Public Cloud: para infraestructuras de alta disponibilidad que utilizan OpenStack, ideal para arquitecturas de microservicios.

¿Le ha sido útil esta FAQ?

Esta guía le permite proteger sus recursos contra el hotlinking en sus Alojamientos Web de Infomaniak.

 

Prólogo

  • El hotlinking ocurre cuando un sitio web de terceros muestra sus imágenes, videos o música utilizando directamente la URL de su servidor; el sitio remoto utiliza sus recursos y la potencia de su servidor a su costa, a menudo sin citar la fuente.
  • Aunque el ancho de banda sea más generoso hoy en día, el hotlinking sigue siendo un problema para la protección de sus derechos de autor y para evitar la sobrecarga innecesaria de su servidor.

 

Evitar el hotlinking a través de .htaccess

Puede bloquear estos accesos no autorizados agregando reglas en el archivo .htaccess en la raíz de su sitio. Aquí tiene una versión optimizada que incluye los formatos de imagen modernos (WebP, AVIF):

RewriteEngine on

# 1. Autoriser les requêtes avec un Referer vide (certains navigateurs pour la vie privée)
RewriteCond %{HTTP_REFERER} !^$

# 2. Autoriser votre propre site (remplacez par votre domaine)
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?votre-domaine\.com [NC]

# 3. AUTORISER LES MOTEURS DE RECHERCHE (Indispensable pour votre SEO)
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google\. [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing\. [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo\. [NC]

# 4. Bloquer le hotlinking (renvoie une erreur 403 Forbidden)
RewriteRule \.(jpg|jpeg|png|gif|svg|webp|avif)$ - [F,NC,L]

Recomendaciones:

  • Reemplazar: cambie su-dominio\.com por su nombre de dominio real.
  • SEO: no elimine las líneas de Google/Bing a menos que desee voluntariamente que sus imágenes nunca aparezcan en los resultados de búsqueda.
  • Alternativa 403: la regla anterior utiliza [F] (Prohibido). Es más ecológico y eficiente que cargar una imagen de reemplazo que aún consume ancho de banda.
Consejo: Si utiliza un CDN como Cloudflare frente a su alojamiento de Infomaniak, puede activar la "Protección contra Hotlinking" en un clic en su interfaz de gestión.

¿Le ha sido útil esta FAQ?

Esta guía presenta comandos que se pueden ejecutar con el fin de probar una conexión o una red y, por lo tanto, precisar más la fuente de un posible error.

 

Realizar un Telnet…

TELNET permite probar la conexión a un servidor sin tener en cuenta todos los ajustes adicionales de una aplicación de correo electrónico o FTP para determinar el origen de un problema. Si la conexión no se realiza en un servidor SMTP, por ejemplo, deberá verificar si su firewall no bloquea el puerto 587 o 465.

 

… en macOS

  1. Busque Utilidad de red.
  2. Vaya a la pestaña Ping, Lookup o Traceroute según lo que desee probar.
  3. También puede usar una aplicación de tipo Terminal (interfaz de línea de comandos, CLI /Command Line Interface) en su dispositivo y, según lo que desee probar, ingrese:
    traceroute [server] 
    nc [server] [port] 
    Reemplace [server] por el nombre del servidor o su dirección IP, lo mismo para [port]

 

… en Windows

Active Telnet de antemano si es necesario.

  1. Use una aplicación de tipo Terminal (interfaz de línea de comandos, CLI /Command Line Interface) en su dispositivo, por ejemplo, escribiendo Ejecutar y luego cmd.
  2. En la ventana que se abre, según lo que desee probar, escriba:
    tracert [server] 
    telnet [server] [port] 
    Ejemplo: telnet mail.infomaniak.com 587 (permite probar el puerto SMTP si su software/cliente de correo electrónico no permite el envío de correos electrónicos)…

 

… en Android

  1. Use la aplicación Simple Telnet Client que permite probar muy fácilmente a través de 2 campos para completar (por ejemplo mail.infomaniak.com y el puerto 143 o 993)…

 

Realizar un PING

PING permite saber si una máquina es accesible por Internet. También puede controlar con esta herramienta si se está dirigiendo a la máquina correcta, por ejemplo, durante un cambio de DNS, mirando la dirección IP obtenida. Es posible realizar un ping en un nombre de dominio, un hostname o una dirección IP.

PING está definitivamente bloqueado en los alojamientos compartidos.


¿Le ha sido útil esta FAQ?

Esta guía explica cómo trabajar sin el módulo PECL SSH2 client no disponible en los alojamientos web y servidores cloud de Infomaniak, utilizando en su lugar la biblioteca phpseclib, que funciona en PHP nativo sin necesidad de ninguna extensión específica.

 

Prólogo

  • El uso de PECL SSH2 client provoca errores de tipo No compatible key exchange algorithms found o Unable to exchange encryption keys en su última versión disponible.
  • Phpseclib permite:
    • La autenticación SSH por contraseña o clave privada.
    • La ejecución de comandos remotos.
    • La transferencia de archivos seguros (SFTP).
    • La gestión de claves SSH.

 

Usar phpseclib

Para integrar una conexión SSH en un script PHP, utilice phpseclib de la siguiente manera:

use phpseclib3\Net\SSH2;
use phpseclib3\Crypt\PublicKeyLoader;

$ssh = new SSH2('domain.xyz');
$key = PublicKeyLoader::load(file_get_contents('/path/to/private_key'));

if (!$ssh->login('utilisateur', $key)) {
    exit('Authentication Failed');
}

echo $ssh->exec('ls -la');

¿Le ha sido útil esta FAQ?

Esta guía detalla las acciones a realizar con prioridad si no ve ninguna diferencia entre su sitio web después de un cambio que haya realizado y su versión antes del cambio. Estos consejos también son válidos si encuentra problemas al usar la interfaz de productos Infomaniak.

 

Prólogo

  • Durante su navegación, un navegador web guarda en un espacio reservado los datos consultados, con el fin de evitar solicitar nuevamente al servidor los datos ya consultados, para ganar tiempo y recursos.
  • Su caché puede contener una gran cantidad de datos y, a veces, el navegador se confunde. Los sitios pueden entonces mostrarse mal o mostrar una versión obsoleta.
  • Borrar la caché permite asegurarse de tener la última versión de la página o carpeta consultada.

 

Borrar la caché del navegador web...

 

... en Safari

Seleccione su versión de macOS para conocer la ayuda de Apple correspondiente.

 

... en las herramientas de Google (Chrome, Android, etc.)

Consulte la ayuda de Google.

 

... en Firefox

Consulte la ayuda de Mozilla.

 

... en Edge / Internet Explorer

Consulte la ayuda de Microsoft.


¿Le ha sido útil esta FAQ?

Esta guía detalla las funcionalidades disponibles en cuanto a la gestión de bases de datos relacionales en los alojamientos de Infomaniak.

 

Uso de Vistas, Triggers, Procedimientos almacenados y Rutinas

En cuanto a la gestión de bases de datos relacionales, la funcionalidad de las vistas ("views") está disponible por defecto, permitiendo así a los usuarios crear vistas para simplificar la gestión y presentación de los datos.

Sin embargo, algunas funcionalidades avanzadas que permiten una manipulación más precisa y compleja de los datos, como…

  • triggers (disparadores)
  • procedimientos almacenados ("stored procedures")
  • rutinas
  • y la creación de funciones

… solo están disponibles en Servidores Cloud.

No están permitidas en los servidores compartidos.

Esta restricción se debe principalmente a los riesgos potenciales para la estabilidad de la infraestructura. Una mala configuración o un uso excesivo de estas funcionalidades podría crear bucles infinitos o sobrecargas importantes, afectando no solo el rendimiento del servidor en cuestión, sino también la experiencia de todos los clientes alojados en la misma infraestructura.

 

Resolver un problema de importación de volcado MySQL/MariaDB

Al exportar e importar una base de datos MySQL o MariaDB a través de la interfaz de alojamiento de Infomaniak, puede ocurrir que la operación falle debido a errores relacionados con los DEFINER de los triggers o de las views. Este caso ocurre cuando los objetos de la base se crearon con un usuario específico (llamado definer) que ya no existe en el momento de la importación.

Concretamente, el proceso de exportación e importación utiliza un usuario temporal, que solo se usa durante estas operaciones. Después de eliminar a este usuario, las vistas o triggers definidos con esta cuenta como DEFINER se vuelven inválidos, provocando errores del tipo:

General error: 1449 The user specified as a definer ('xxxx_temp_1'@'%') does not exist

 

Para evitar este problema, es posible corregir el archivo de copia de seguridad (dump.sql o dump.sql.gz) antes de su importación reemplazando las definiciones de definer por CURRENT_USER. Esto permite vincular automáticamente los triggers y vistas al usuario actual en el momento de la importación.

Aquí hay un ejemplo de comando que permite modificar el volcado antes de la importación:

sed -E 's/DEFINER=`[^`][^`]*`@`[^`][^`][^`]*`/DEFINER=CURRENT_USER/g' dump.sql > dump-corrected.sql

 

Una vez realizado este reemplazo, el archivo corregido puede ser importado normalmente a través del Manager de Infomaniak. Este comportamiento es conocido y está relacionado con el funcionamiento de los usuarios temporales durante el volcado/restablecimiento. No se planea ninguna modificación del proceso de exportación/importación a corto plazo, pero el tema sigue en evaluación por parte de la infraestructura.

Para obtener más información sobre la variable CURRENT_USER, consulte la documentación oficial de:


¿Le ha sido útil esta FAQ?

Esta guía explica cómo cambiar la contraseña de una base de datos MySQL / MariaDB de un Alojamiento Web.

 

Prólogo

  • Consulte esta otra guía si está buscando información sobre la actualización de las credenciales de conexión (scripts, sitios...) relacionadas con un cambio de contraseña de la base de datos.
  • Un usuario de base de datos creado tras la instalación de una Aplicación Web (propuesta por Infomaniak) no podrá ser modificado (un candado se muestra junto a este, cf punto 5 a continuación).
  • Para acceder a la base de datos a la que está vinculado, debe crear un nuevo usuario de base de datos con la contraseña de su elección y luego asignarle los permisos en la base de datos deseada.

 

Cambiar la contraseña MySQL MariaDB etc.

Para ello, es necesario intervenir en el usuario vinculado a la base de datos en cuestión y cambiarle la contraseña (sin tener que proporcionar la anterior) desde el Manager Infomaniak:

  1. Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿necesita ayuda?).
  2. Haga clic directamente en el nombre asignado al producto en cuestión.
  3. Haga clic en Bases de datos en el menú lateral izquierdo.
  4. Haga clic en la pestaña Usuarios.
  5. Haga clic en el menú de acción ⋮ situado a la derecha del elemento en cuestión.
  6. Haga clic en Modificar:
  7. Haga clic en Modificar la contraseña.
  8. Introduzca la nueva contraseña deseada.
  9. Haga clic en el botón Guardar:
  10. Si es necesario, puede configurar los nuevos permisos posibles (lectura / escritura / administración) del usuario para acceder a las bases de datos existentes en el alojamiento.

¿Le ha sido útil esta FAQ?