Base de conocimientos

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

Esta guía explica cómo aumentar el valor max_children en Servidor Cloud para aumentar el número de procesos PHP simultáneos que pueden ser utilizados por su sitio. Esto será muy útil para resolver problemas de carga infinita de las páginas de su sitio.

 

Prólogo

  • Por defecto en cualquier alojamiento, el límite de max_children está fijado a 20.
    • Aunque es posible aumentar este valor desde el Manager Infomaniak, el límite de max_children se ajusta automáticamente en función de la configuración de su Servidor Cloud.
    • Para aumentar este límite en alojamiento compartido, migre a Servidor Cloud.
  • Para comprender cómo calcular con la mayor precisión los max_children necesarios, consulte este artículo sobre el tema.

 

Aumentar el valor max_children

Requisitos previos

  • Asegúrese de disponer de los recursos necesarios en el servidor Cloud.
  • Asegúrese de que todos los recursos del servidor Cloud no estén siendo utilizados; si resulta que estos están totalmente utilizados, el aumento del valor max_children no tendrá ningún efecto (Modificar los recursos del Servidor Cloud).
  • Controlar el monitoreo de los recursos de su servidor, en el caso de que los recursos de su servidor estén alcanzados, será necesario verificar la optimización de los procesos y de su sitio antes de considerar aumentar el valor max_children.
  • Consulte los informes de error PHP desde la carpeta /ik-logs (master process php logs - nombre del archivo: php-fpm.log) para verificar si el límite "max_children" ha sido superado... ejemplo de error: [05-Jul-2024 09:08:58] WARNING: [pool www.infomaniak.ch] server reached max_children setting (20), consider raising it

Para acceder a la gestión de los parámetros PHP / Apache del sitio del cual se debe aumentar el valor max_children en Servidor Cloud, consulte esta otra guía.

Podrá, en particular…

  • … elegir un nuevo valor de max_children:

No olvide guardar los cambios al final de la página.

 

Límites según el servidor

Límite de max_children según los recursos del Servidor Cloud:

Configuración Servidor Cloudmax_children
2 CPU / 6 Go RAM20
4 CPU / 12 Go RAM40
6 CPU / 18 Go RAM60
8 CPU / 24 Go RAM80
12 CPU / 36 Go RAM120
16 CPU / 48 Go RAM160
24 CPU / 72 Go RAM240
32 CPU / 96 o 128 Go RAM320

¿Le ha sido útil esta FAQ?

Esta guía se refiere a Laravel, un framework web de código abierto escrito en PHP que sigue el principio modelo-vista-controlador (MVC). Consulte también su documentación.

 

Requisitos previos

 

Instalación de Laravel 11

Para ello:

  1. Conéctese al servidor a través de SSH (¿necesita ayuda?).
  2. Vaya al directorio del sitio ejecutando el comando “cd ruta-al-sitio” (por ejemplo cd sites/laravel.domain.xyz).
  3. Cree un nuevo proyecto ejecutando el comando composer create-project laravel/laravel example-app.
  4. Modifique el archivo .env en la raíz del alojamiento para actualizar los parámetros de conexión a la nueva base de datos:
    • DB_CONNECTION=mysql
    • DB_HOST=xxxx.myd.infomaniak.com
    • DB_PORT=3306
    • DB_DATABASE= el nombre de la base de datos MySQL (xxxx_newbdd)
    • DB_USERNAME= el usuario de MySQL con permisos en esta base
    • DB_PASSWORD= su contraseña
  5. Vaya al directorio del proyecto y publique a través de SSH:
    cd example-app
    php artisan migrate
  6. Modifique el directorio de destino para que apunte al subdirectorio «public» del proyecto, aquí /sites/laravel.domain.xyz/example-app/public.

¿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 se refiere a Redis, un módulo PHP para Servidor Cloud de Infomaniak.

 

Preámbulo

  • Redis se utiliza con PHP para acelerar el rendimiento sirviendo como caché para datos temporales y para gestionar las sesiones de usuario, mejorando así la eficiencia de las aplicaciones web.
  • Redis también permite implementar sistemas de cola y almacenar temporalmente datos para tareas asíncronas o estadísticas.

 

Instalar Redis

Redis se instala desde Fast Installer, las aplicaciones disponibles en unos pocos clics en Servidor Cloud:

  • Después de la instalación, Redis es accesible a través de la IP/puerta localhost:6379 o 127.0.0.1:6379
  • La contraseña para Redis debe tener entre 15 y 99 caracteres (inclusive).

¿Le ha sido útil esta FAQ?

Esta guía explica cómo modificar el valor de la directiva PHP include_path.

 

Modificar el include_path

Al igual que cualquier otro parámetro PHP, include_path se define en el archivo .user.ini.

Aquí tienes un ejemplo de ruta a utilizar en tu archivo .user.ini:

include_path = ".:/home/clients/123456789a12345b12fc345d/web/www.domain.xyz/include"
  • El punto (.) al principio permite conservar el directorio actual en la búsqueda.
  • Los dos puntos (:) se utilizan como separadores entre las diferentes carpetas.

Consulta esta otra guía sobre el phpinfo para verificar la aplicación de tu nueva directiva (la modificación puede tardar unos minutos en aparecer).

Aunque este método sigue siendo funcional, el uso delautoloader de Composer es hoy en día la solución preferida para la gestión de las inclusiones.


¿Le ha sido útil esta FAQ?

Esta guía explica cómo desactivar o configurar HSTS para un sitio web.

 

Prólogo

  • Cuando HSTS está activado para un sitio web, el servidor indica al visitante del sitio (si su navegador web es compatible) que reemplace todos los enlaces no seguros por enlaces seguros.
  • Ejemplo: http://www.domain.xyz.com/one/page/ se reemplaza automáticamente por https://www.domain.xyz/one/page/.
  • Después de activar un certificado SSL en un sitio web, el HSTS se configura de la siguiente manera: max-age=16000000.

 

Desactivar HSTS…

 

… con un CMS (WordPress, Joomla, etc.)

Incluir en todas las páginas generadas por el CMS la siguiente línea:

header( 'Strict-Transport-Security: max-age=0;' );

Por ejemplo, para WordPress, es posible agregar esta directiva en el archivo functions.php de su tema:

add_action( 'send_headers', 'add_header_xua' );
function add_header_xua() {
header( 'Strict-Transport-Security: max-age=0;' );
}

Más detalles sobre WordPress

 

… con un sitio PHP

Incluir la siguiente línea en todas las páginas php:

header( 'Strict-Transport-Security: max-age=0;' );

Para hacer esto sin tener que modificar cada página php de un sitio, es posible utilizar la directiva auto_prepend_file en el archivo .user.ini del sitio correspondiente:

auto_prepend_file=/home/clients/xxxx/web/hsts_disable.php

... con el archivo hsts_disable.php siguiente:

header( 'Strict-Transport-Security: max-age=0;' );

 

… con un sitio de contenido estático (no PHP)

Incluir este encabezado en un archivo .htaccess:

# BEGIN DISABLE HSTS
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=0; includeSubDomains;"
</IfModule>
# END DISABLE HSTS

 

Personalizar el HSTS

El valor predeterminado se puede modificar en sus archivos php de su sitio web con la siguiente directiva:

header( 'Strict-Transport-Security: max-age=X; includeSubdomains; preload' );

(X siendo el número de segundos deseado).

 

Activar HSTS para todos los subdominios alojados

includeSubDomains; está activado por defecto y, como su nombre indica, incluirá los subdominios en las "Strict Transport Security".

Cuando el visitante va a un subdominio no seguro, el navegador redirigirá automáticamente al HTTPS y provocará un error de seguridad.

Si este comportamiento no es deseado, debe eliminar esta cabecera.

 

Borrar la caché HSTS del navegador…

… en Chrome

  1. En Chrome, escriba chrome://net-internals/#hsts.
  2. Introduzca el nombre de dominio en el campo de texto de la sección "Eliminar políticas de seguridad del dominio".
  3. Haga clic en el botón Eliminar.
  4. Introduzca el nombre de dominio en el campo de texto de la sección "Consultar HSTS".
  5. Haga clic en el botón Consultar.
  6. La respuesta debe ser "No encontrado" (no encontrado).

… en Safari

  1. Con Safari, comience cerrando el navegador.
  2. Elimine el archivo ~/Library/Cookies/HSTS.plist.
  3. Vuelva a abrir Safari.

… en Firefox

  1. Con Firefox, cierre todas las pestañas.
  2. Abra el menú de Firefox y haga clic en Historial / Ver historial.
  3. Busque la página de la que desea eliminar las preferencias HSTS.
  4. Haga clic derecho en una de las entradas que le correspondan.
  5. Seleccione Olvidar este sitio.

¿Le ha sido útil esta FAQ?

Esta guía detalla las bibliotecas de software que permiten manipular el formato PDF y que son compatibles con las diferentes ofertas de alojamiento web de Infomaniak.

 

Prólogo

  • Las extensiones PHP PDF permiten, entre otras cosas, generar un PDF a partir de datos dinámicos para la creación de facturas personalizadas, por ejemplo.

 

PDF y Servidor Cloud

En el Servidor Cloud, puede instalar aplicaciones como PDFtk

En alojamiento compartido, ImageMagick está activo y admite los formatos EPDF, PDF y PDFA.


¿Le ha sido útil esta FAQ?

Esta guía está dirigida a desarrolladores y webmasters que encuentran problemas de visualización de caracteres especiales (por ejemplo acentos, caracteres árabes, chinos, emojis, etc.), ya sea en un sitio web de Infomaniak o en su base de datos.

 

Preámbulo

  • Causas frecuentes de caracteres mal visualizados que aparecen en lugar de caracteres especiales o emojis como ??:
    • Conexión PHP en utf8 en lugar de utf8mb4
    • Tabla o columna MySQL en latin1 o utf8 en lugar de utf8mb4
    • Archivo SQL codificado de manera diferente al parámetro de importación
    • Archivos HTML/CSS/JS mal codificados
    • Ausencia o mala declaración del charset en HTML, PHP o HTTP
  • Soluciones habituales:
    • Usar utf8mb4 en todas partes: base, conexiones, tablas, columnas, archivos, encabezados
    • Validar la codificación de todos los archivos y volcados
    • Probar la visualización de emojis, acentos y otros caracteres multilingües
  • También consulte esta otra guía para forzar otra codificación al conectarse a una base de datos MySQL.

 

Use un editor de texto que soporte el guardado en UTF-8 sin BOM (Visual Studio Code, Sublime Text, Notepad++...)

 

1. Usar UTF-8 o UTF-8MB4 en todas partes

La codificación utf8 de MySQL no soporta caracteres de 4 bytes, como los emojis. Estos se mostrarán como ??. Por lo tanto, debe usar utf8mb4, que es una implementación completa real de UTF-8.

 

2. HTML – Declaración correcta de la codificación

En el <head> de sus páginas HTML:

<meta charset="UTF-8">

Asegúrese también de que los archivos CSS/JS estén guardados en UTF-8 (sin BOM).

 

3. PHP – Forzar UTF-8 o UTF-8MB4

a) Encabezados HTTP

header('Content-Type: text/html; charset=utf-8');

b) Conexión MySQL (API MySQL)

$connection = mysql_connect($host, $user, $pass);
mysql_set_charset('utf8mb4', $connection);

c) Conexión PDO

 $dsn = "mysql:host=localhost;dbname=ma_base;charset=utf8mb4";
$pdo = new PDO($dsn, $user, $pass, [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);

 

4. Base de datos MySQL

a) Configuración en phpMyAdmin

  • La base de datos, las tablas y las columnas deben estar en utf8mb4_unicode_ci o utf8mb4_general_ci.
  • En la pestaña Operaciones, elija utf8mb4_unicode_ci para la codificación.

b) Comandos SQL útiles

ALTER DATABASE ma_base CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE ma_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

c) Después de la conexión PHP

mysqli_query($conn, "SET NAMES 'utf8mb4'");
mysqli_query($conn, "SET CHARACTER SET 'utf8mb4'");

 

5. Archivo .user.ini / .htaccess

Para forzar la codificación en el lado del servidor (Apache):

AddDefaultCharset utf-8
Header set Content-Type "text/html; charset=utf-8"
# Pour PHP
php_value default_charset UTF-8
php_value mbstring.internal_encoding UTF-8

 

6. Importar / exportar volcados SQL

Los errores como é convirtiéndose en ? o un emoji ☺ convertiéndose en ?? suelen deberse a un desajuste de codificación.

Verifique la codificación del archivo SQL antes de importar. Use iconv si es necesario:

iconv -f ISO-8859-1 -t UTF-8 dump.sql > dump_utf8.sql

En phpMyAdmin, especifique la codificación de importación (por ejemplo UTF-8, UTF-8MB4 o latin1 según el archivo).


¿Le ha sido útil esta FAQ?

Esta guía explica cómo gestionar Memcached y, en particular, cómo saber si este sistema de caché en memoria funciona correctamente en su Servidor Cloud gestionado.

 

Requisitos previos

 

Verificar la ejecución de Memcached

Para verificar el correcto funcionamiento de Memcached:

  1. Copie el siguiente código en un archivo PHP (conexión al servidor memcache local):

    $fp = fsockopen("localhost", 11211);
    if ($fp) {
    // on demande les stats
    fwrite($fp, "stats\n");
    while (!feof($fp)) {
    $buf = rtrim(fgets($fp));
    if (preg_match('/^STAT curr_items ([0-9]+)$/', $buf, $matches)) {
    // le nombre d'items stockes
    print $matches[1] . PHP_EOL;
    } elseif (preg_match('/(END|ERROR)/', $buf)) {
    // fin des stats
    break;
    }
    }
    fclose($fp);
    } else {
    print "Error: cannot connect to local memcached server: $!" . PHP_EOL;
    }
  2. Suba el archivo PHP a su alojamiento.
  3. Ejecute el archivo PHP.

El script devuelve el número de elementos almacenados en caché en la memoria del servidor.

 

Activar Memcached en…

… Prestashop

La integración nativa de Memcached en la aplicación Prestashop simplifica su configuración. Para activarla:

  1. Acceda a su espacio de administración Prestashop.
  2. Vaya a la pestaña Configuración avanzada.
  3. Seleccione Rendimiento.
  4. Elija en el menú desplegable bajo Usar la caché en la sección Caché.
  5. Seleccione CacheMemcached.
  6. Agregue un servidor proporcionando la información requerida, como
    1. la dirección IP: 127.0.0.1
    2. el puerto: 11211
    3. el peso: 1

Puede verificar la información haciendo clic en el botón "Probar el servidor" antes de guardarla al final de la sección "Caché".

Una vez completado este paso, su aplicación PrestaShop está lista para usar Memcached para almacenar en caché ciertas llamadas de API, llamadas a la base de datos y objetos.


¿Le ha sido útil esta FAQ?

Esta guía explica cómo beneficiarse de nuevas versiones de PHP, MySQL y muchos otros paquetes migrando un Servidor Cloud a una nueva infraestructura de Infomaniak.

 

Prólogo

  • La migración es gratuita y se realiza en 3 etapas:
    1. Infomaniak pone a disposición un Servidor Cloud de última generación con las mismas características que el actual, al mismo precio y con la misma duración de compromiso.
    2. Dispones de un mes para mover tus alojamientos al nuevo Servidor Cloud puesto a tu disposición (lee más abajo).
    3. Cuando tus alojamientos se hayan movido al nuevo servidor, cancela el antiguo Servidor Cloud.
  • Los accesos FTP y las bases de datos no cambian.
  • Solo cambian, en cuanto a los alojamientos, las versiones soportadas de PHP y MariaDB, así como las direcciones IPv4 e IPv6 del servidor.
  • Los nombres de host (hostnames) no cambian y se actualizan automáticamente para apuntar a las nuevas direcciones IP.
  • Durante esta operación, las estadísticas se reinician.

 

Procedimiento de migración

Al migrar tus datos a la nueva infraestructura Cloud, aumentas el rendimiento y la fiabilidad de tus sitios que accederán a las últimas tecnologías:

  1. Haz clic aquí para acceder a la gestión de tu producto en el Manager Infomaniak (¿Necesitas ayuda?).
  2. Haz clic directamente en el nombre asignado al producto concernido.
  3. Haz clic en el botón azul en el recuadro "Actualizar tu Servidor Cloud" (o en Gestionar):

¿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 se refiere al módulo Apache mod_auth_mysql que permite la autenticación de usuarios y la autorización de acceso a través de una base de datos MySQL.

 

Con un alojamiento compartido

El módulo mod_auth_mysql no está disponible con los alojamientos compartidos; es necesario considerar un Servidor Cloud o usar scripts PHP y sesiones.


¿Le ha sido útil esta FAQ?

Esta guía explica el funcionamiento, la configuración y la gestión de ModSecurity en los servidores de Infomaniak.

 

Introducción

  • ModSecurity (mod_secure) está disponible y activado por defecto en los servidores de Infomaniak:
    • Todas las solicitudes HTTP se someterán a las reglas de seguridad definidas por ModSecurity.
    • La extensión PHP uploadprogress no está disponible en los servidores de Infomaniak, ya que PHP se utiliza en su versión FPM.
  • No es posible desactivar ModSecurity en los servidores de Infomaniak:
    • El parámetro es global para el servidor donde se aloja su sitio web, lo que significa que todas las reglas de seguridad definidas se aplicarán a su sitio.

 

En caso de problemas

Error de idioma en el navegador (código 403)

Si aparece el mensaje de error ModSecurity: Access denied with code 403 (phase 2). Operator EQ matched 0 at REQUEST_HEADERS. (...) relacionado con ModSecurity, debe verificar que un idioma predeterminado esté configurado correctamente en su navegador web. Este error a veces puede ser causado por parámetros de idioma mal configurados en el navegador.

Advertencia "Request body larger than configured limit"

Si observa mensajes relacionados con el error o la advertencia Request body larger than configured limit, tenga en cuenta que se trata solo de una advertencia; la solicitud se procesa de todos modos y no se bloquea. Esta configuración es específica de algunas versiones antiguas de alojamiento (tipo jessie) y permite que todas las solicitudes se procesen en el servidor sin afectar a sus visitantes.


¿Le ha sido útil esta FAQ?

Esta guía detalla el encabezado X-Frame-Options, utilizado para proteger su sitio contra los ataques de clickjacking (desevío de clics).

El valor ALLOW-FROM ahora está obsoleto. Para permitir un dominio específico, se recomienda usar el encabezado Content-Security-Policy (CSP) con la directiva frame-ancestors.

 

Valores para el encabezado X-Frame-Options

Este encabezado indica al navegador si debe permitir o no la visualización de su página en una etiqueta <frame> o <iframe>.

  1. "DENY" : Prohibición total. El sitio no puede cargarse en ningún marco, incluso si proviene de su propio sitio.
  2. "SAMEORIGIN" : Permite la visualización en iframe solo si el sitio padre tiene el mismo dominio que el contenido.

Implementar el encabezado

Mediante el archivo .htaccess (recomendado para todo el sitio) :

Header set X-Frame-Options "SAMEORIGIN"

O mediante PHP (para una página específica) :

<?php
header('X-Frame-Options: SAMEORIGIN');
?>

 

La alternativa moderna: Content-Security-Policy (CSP)

Si debe permitir que un sitio externo específico (por ejemplo, domain.xyz) integre su contenido, no use más X-Frame-Options, sino el siguiente encabezado en su .htaccess :

Header set Content-Security-Policy "frame-ancestors 'self' https://domain.xyz"

Esta regla permite que su propio sitio ('self') y domain.xyz lo muestren en un iframe.


¿Le ha sido útil esta FAQ?

Esta guía explica cuáles son los protocolos y puertos que se pueden utilizar con los servicios de mensajería de Infomaniak (Servicio de Correo en particular).

 

Puertos y parámetros recomendados para la configuración del cliente

Cuando se le solicite durante una configuración de software/cliente de mensajería (Outlook, Thunderbird, móvil, etc.), priorice los siguientes parámetros:

 IMAPs - Tráfico Entrante (Recomendado)SMTP - Tráfico Saliente (Opción 1: estándar IETF)SMTPs - Tráfico Saliente (Opción 2: cifrado implícito)
Puertos993587465
Mecanismo de SeguridadSSL / TLS (implícito)STARTTLS (explícito)SSL / TLS (implícito)
Nombre del Servidormail.infomaniak.com
AutenticaciónObligatorio (nombre de usuario = dirección de correo completa)

Nota técnica: El puerto 587 con STARTTLS es la práctica estándar IETF para la presentación de correo electrónico seguro. El puerto 465 es una alternativa segura que utiliza cifrado implícito.

Si especifica otras indicaciones o desactiva el cifrado, pueden producirse errores de mensajería.

 

Otros puertos compatibles (no cifrados o retrocompatibilidad)

  • puerto 143 (Puerto estándar para la recepción IMAP - no cifrado, usar 993)
  • puerto 110 (Puerto estándar para la recepción POP3 - no cifrado, usar 995)
  • puerto 995 (Puerto seguro para la recepción POP3s - opción segura POP3)
  • puerto 25 (Puerto estándar para la transferencia de servidor a servidor - puede soportar STARTTLS para la presentación, pero el 587 es la norma para los clientes).
  • La autenticación STARTTLS es compatible con los puertos no cifrados (143, 110, 25) para activar el cifrado TLS.
  • Autenticación SMTP soportada (métodos LOGIN o PLAIN).

 

Uso de la API y Seguridad de las Transferencias

La API de Infomaniak no ofrece ninguna conexión al correo electrónico, ya que IMAP y SMTP son las "API". Utilice una librería (como Python: email.examples y imaplib) que utilice IMAP y SMTP.

Para mostrar los correos electrónicos desde PHP:
imap_open("{mail.infomaniak.com:993/imap/ssl}", $email, $password);

El mecanismo MTA-STS no está implementado ni verificado, ya que Infomaniak utiliza DANE (DNS-based Authentication of Named Entities) para garantizar una conexión cifrada entre servidores cuando se cumplen las siguientes condiciones:

  • El cliente envía un correo electrónico a un dominio que ha configurado DANE.
  • El cliente recibe un correo electrónico de un servidor SMTP que utiliza DANE.
  • En todos los demás casos (en ausencia de DANE), la conexión cifrada sigue siendo oportunista.

¿Le ha sido útil esta FAQ?

Esta guía se refiere a ImageMagick, una suite de software poderosa para la manipulación de imágenes, disponible en los Alojamientos Web y Servidores Cloud de Infomaniak.

 

Instalación simplificada: Para instalar ImageMagick o sus extensiones, se recomienda utilizar Fast Installer desde su Manager.

 

ImageMagick y soluciones de manipulación de imágenes

Varios herramientas están a su disposición para tratar sus visuales (redimensionamiento, conversión, marcas de agua):

  1. ImageMagick (CLI): la suite principal utilizable en línea de comandos (a través de SSH); el comando moderno es magick, pero la antigua sintaxis convert sigue disponible.
  2. Extensión PHP imagick: es la solución más común para los sitios web (WordPress, etc.); permite utilizar ImageMagick directamente en sus scripts PHP.
  3. Biblioteca GD: una alternativa más ligera, a menudo preinstalada, ideal para manipulaciones simples (miniaturas, texto sobre imagen).
  4. PerlMagick: interfaz dedicada a los scripts Perl para acceder a las funcionalidades de ImageMagick.

 

Rutas de acceso y comandos

En las infraestructuras de Infomaniak, ImageMagick está instalado de manera estándar. Los ejecutables se encuentran en el siguiente directorio:

/usr/bin/

Estos son los principales comandos disponibles:

ComandoUso principal
magick (o convert)Convertir, redimensionar y transformar imágenes.
identifyObtener los metadatos de un archivo (formato, tamaño, etc.).
mogrifyAplicar una modificación directamente en el archivo original.
compositeSuperponer varias imágenes (por ejemplo, agregar un logo como marca de agua).

Para probar la presencia del módulo Perl Image::Magick, puede utilizar el siguiente comando:

perl -e 'use Image::Magick; print "Installed\n"';

¿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 explica qué es un proveedor de alojamiento web como Infomaniak y precisa su papel, su ámbito de acción y los límites de su asistencia técnica.

 

Infomaniak, proveedor de alojamiento desde 1996

Según Wikipedia, un proveedor de alojamiento web es una empresa que proporciona alojamiento en Internet de sistemas informáticos a personas o entidades que no desean hacerlo por sus propios medios.

Infomaniak, también es:

  • … décadas de experiencia en alojamiento y soluciones en línea de alto rendimiento.
  • … más de un millón de usuarios en Suiza y Europa confiando la gestión de sus datos críticos.
  • … una empresa certificada ISO 27001, 9001, 14001, 50001 y comprometida con un digital sostenible.
  • … 100% de saber hacer tecnológico "Swiss made" con datos alojados en Suiza en sus propios centros de datos.
  • … una rica base de conocimientos y un soporte al cliente disponible para guiarlo.

 

Responsabilidades y límites de intervención

Como proveedor de alojamiento, Infomaniak instala, asegura y mantiene actualizada la infraestructura del servidor, hace evolucionar sus interfaces de gestión (Manager) y acompaña a sus clientes en el uso óptimo de las herramientas proporcionadas. Infomaniak se esfuerza por ofrecer soluciones accesibles a todos; sin embargo, el soporte humano para los productos gratuitos es por naturaleza restringido para garantizar la sostenibilidad de estos servicios.

Por razones de seguridad y confidencialidad, no se proporcionará ninguna asistencia sin una identificación formal del interlocutor.

El soporte se dirige exclusivamente a los administradores de la Organización. Los clientes finales o los usuarios que disfrutan de un contrato a través de un Socio revendedor deben dirigirse a su administrador o proveedor dedicado en primer lugar.

 

Ámbito del soporte técnico

La asistencia técnica no interviene para:

  • El desarrollo y la programación: depuración de sitios, corrección de código fuente, scripts personales (PHP, JS, etc.)
  • El uso e integración de las API.
  • El mantenimiento aplicativo y el webmastering: depuración, actualización o gestión de contenido para aplicaciones de terceros (por ejemplo, CMS como WordPress, clientes de correo como Outlook, etc.).
  • Las intervenciones locales y personalizadas: toma de control remoto, configuración de su propio hardware, instalaciones o migraciones manuales complejas.

Pero el soporte le asistirá con gusto para:

  • La infraestructura y el Manager: resolución de incidentes relacionados con la red, el hardware o las interfaces de gestión de Infomaniak.
  • El uso de los servicios de Infomaniak: aclaración de los procesos de configuración y ayuda para empezar a usar nuestras funcionalidades nativas.
  • La orientación documental: guiarle hacia los recursos y guías técnicas adecuados para que sea autónomo.

Una asistencia Premium y un servicio de migración están disponibles para necesidades más específicas.

 

Encontrar ayuda externa

Para obtener ayuda relativa al contenido de su sitio, su programación o la organización avanzada de sus buzones de correo, utilice la plataforma de licitaciones de Infomaniak que cuenta con más de 1000 profesionales verificados, o consulte el directorio.


¿Le ha sido útil esta FAQ?

Esta guía explica cómo resolver un problema de importación de un archivo .csv en una tabla MySQL. La alternativa propuesta consiste en leer el archivo CSV línea por línea con PHP e insertar los datos en la base de datos MySQL.

 

Función "LOAD DATA LOCAL INFILE" desactivada

La función LOAD DATA LOCAL INFILE permite importar un archivo CSV directamente en una tabla MySQL. Sin embargo, esta funcionalidad es a menudo explotada por atacantes para obtener acceso no autorizado a sitios alojados en servidores que la aceptan.

Con el fin de prevenir cualquier riesgo de seguridad y proteger los datos de los clientes, Infomaniak ha desactivado la función LOAD DATA LOCAL INFILE. Los usuarios que importan sus archivos CSV a través de phpMyAdmin (sin marcar la opción “CSV via LOAD DATA”) no están afectados.

Aquí hay un método alternativo para importar datos en formato CSV en una tabla MySQL. El ejemplo a continuación muestra cómo manejar correctamente los errores al abrir el archivo CSV y al insertar los datos en la base de datos.

Este script utiliza mysqli para conectarse a la base de datos y consultas preparadas para insertar los datos. Esto garantiza una mejor seguridad, compatibilidad óptima con las versiones recientes de PHP y una integración sencilla en su proyecto, ya sea en un script existente o en un nuevo archivo ubicado en el directorio /web:

$fileName = "data.csv";

// Connect to MySQL database using mysqli
$link = new mysqli("localhost", "username", "password", "database");

// Check database connection
if ($link->connect_error) {
   die("Connection failed: " . $link->connect_error);
}

// Open the CSV file for reading
if (($handle = fopen($fileName, "r")) !== FALSE) {

   // Read each line of the CSV file
   while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {

       // Prepare the SQL query dynamically
       $query = "INSERT INTO `test` VALUES (" . str_repeat('?,', count($data) - 1) . "?)";
       $stmt = $link->prepare($query);

       // Check if query preparation was successful
       if ($stmt === FALSE) {
           die("Query preparation failed: " . $link->error);
       }

       // Bind parameters (assuming all columns are strings)
       $types = str_repeat('s', count($data));
       $stmt->bind_param($types, ...$data);

       // Execute the query
       if (!$stmt->execute()) {
           die("Query execution failed: " . $stmt->error);
       }

       // Close the statement
       $stmt->close();
   }

   // Close the CSV file
   fclose($handle);

} else {
   echo "Error: unable to open the file.\n";
   exit(1);
}

// Close the database connection
$link->close();
?>

 

Obtener ayuda

Lamentablemente, es imposible indicar con precisión en qué parte del script deben insertarse estas líneas de código.

Si este método presenta problemas (por ejemplo, en caso de importación simultánea de varios archivos CSV sin mensaje de error), es posible que la estructura de las tablas o la indexación de los campos sea la causa. En este caso, contacte a su webmaster para verificación.

Consulte también la documentación oficial de PHP relativa a la función fgetcsv().


¿Le ha sido útil esta FAQ?

Esta guía detalla las reglas específicas a seguir al crear una contraseña de usuario con mysqli_connect() que contiene el carácter “dólar” $ en las plataformas Infomaniak.

 

Prólogo

  • Si al utilizar mysqli_connect(), obtienes el mensaje de error "Acceso denegado para el usuario" y tu contraseña de usuario de base de datos contiene un signo $, el problema puede deberse al funcionamiento de las cadenas de caracteres en PHP.
  • El problema también puede surgir con scripts de mensajería.

 

Reglas a seguir

Cuando se utiliza el carácter especial $ en una contraseña de usuario y este es seguido por cualquier otro carácter que no sea un número, el nombre de la variable no es válido y la sustitución no se realiza correctamente.

Aquí hay soluciones para corregir esto:

  • Coloca la contraseña entre comillas simples: '$******'
  • Asegúrate de que un número siga directamente al dólar: "$2*****"
  • Usa una barra invertida para "escapar" el dólar en la contraseña: "\$****"

¿Le ha sido útil esta FAQ?