Base de conocimientos
1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Esta guía explica cómo convertir una oferta Web Starter gratuita a una oferta de pago más completa y mejorada, como un Alojamiento Web compartido o un alojamiento web en Servidor Cloud.
Prólogo
- Al comprar un nombre de dominio con Infomaniak, obtienes 1 dirección de correo electrónico gratuita y un espacio web básico de 10 Mo.
- En unos pocos clics, es posible hacer evolucionar estas ofertas para beneficiarse de una experiencia enriquecida.
Modificar la oferta Starter - página web básica
Para hacer evolucionar esta oferta gratuita:
- Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿Necesita ayuda?).
- Haga clic en el menú de acción ⋮ ubicado a la derecha del elemento correspondiente.
- Haga clic en Modificar la oferta:
- Siga el asistente para elegir el nuevo tipo de alojamiento, pague para completar el cambio de oferta.
Esta guía explica por qué existe una carpeta /icons/
dentro de los Alojamientos Web Infomaniak.
Carpeta /icons/ en tu Alojamiento Web
En algunos casos, una carpeta llamada /icons/
está presente por defecto en tu alojamiento web. Esta carpeta generalmente es accesible a través de HTTP, pero no es visible en la estructura FTP (www.domain.xyz/icons/
).
Este directorio /icons/
se utiliza a menudo para almacenar iconos o imágenes específicas que sirven para mostrar las listas de directorios. Estos iconos se utilizan generalmente por los servidores web para representar visualmente los diferentes tipos de archivos en los directorios cuando se consultan a través de un navegador.
Esta guía trata sobre la sincronización de los 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 los servidores a través de NTP
Los servidores de Infomaniak están todos 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 tus scripts PHP, usa la función date_default_timezone_set('UTC')
.
MySQL: particularidades temporales
La infraestructura de Infomaniak soporta 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 zonas horarias para almacenar y gestionar la información sobre las zonas horarias.
- La tabla
mysql.time_zone
contiene los datos de los husos horarios, incluyendo la información sobre los desplazamientos de tiempo, 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 New York.
Esta guía proporciona información precisa sobre el soporte del entorno de desarrollo ASP
(Active Server Pages, aspx) dentro de la infraestructura de Infomaniak.
Soporte para ASP
Los servicios de alojamiento web y servidores Cloud se basan en una arquitectura de servidor Apache que no soporta nativamente el módulo Apache::ASP.
Sin embargo, existe la posibilidad de instalar y configurar este entorno ASP en VPS Cloud Infomaniak.
Esta guía explica las diferencias entre un Dominio (o sitio principal), un Subdominio y un Alias.
Prólogo
- Aunque están relacionados, estos tres elementos (Domaine, Subdomaine y Alias) tienen funciones y propósitos diferentes.
- Pueden afectar un Alojamiento Web a través de su nombre de dominio, o incluso el correo electrónico ya que es perfectamente posible tener direcciones de correo electrónico en un subdominio, por ejemplo.
¿Qué es un Dominio?
El dominio o nombre de dominio es la entrada principal a tu sitio web. Es a partir de él que tus usuarios accederán a tu contenido. Es este dominio principal el que define lo que aparecerá en la barra de URL de los navegadores de tus usuarios.
Requisitos previos
- Tener un domaine.
- Tener un alojamiento Web Infomaniak.
Consulte el guía Crear un nuevo sitio en tu alojamiento web.
¿Qué es un Subdominio?
El Subdominio se simboliza con una palabra adicional que se encuentra antes de su nombre de dominio principal. Esto es muy útil en varios casos, p. ej.:
- Esto puede servir para mostrar contenido "exclusivo" o dirigido, por ejemplo, al ir a faq.infomaniak.com llegas a la base de conocimientos donde se encuentran todas las guías
- Esto también puede servir (temporalmente o definitivamente) al crear un nuevo sitio o rediseñar un sitio existente, creando p. ej. new.domain.xyz cuando el sitio principal era hasta entonces domain.xyz
Requisitos previos
- Tener al menos un domaine.
- Tener un alojamiento Web Infomaniak.
Consulte el guía Agregar un subdominio a su alojamiento web.
¿Qué es un Alias?
Un Alias o Dominio Alias es un segundo nombre de dominio que apunta directamente a tu sitio principal, comparten las mismas páginas web. El alias es otra puerta de entrada a tu sitio web. Por ejemplo, el sitio principal de Infomaniak Network SA es www.infomaniak.com y www.infomaniak.ch es su alias.
La ventaja de un Alias es permitirle aumentar la visibilidad de su sitio web para su audiencia, ofreciendo más puntos de entrada para acceder a él.
Requisitos previos
- Tener varios nombres de dominio.
- Tener un alojamiento Web Infomaniak.
Consulte el guía Agregar un alias a su alojamiento web.
Lo equivalente también existe para un Service Mail.
Esta guía explica cómo agregar direcciones IP a la lista blanca de un sitio Web Infomaniak.
Prólogo
- Permitir direcciones IP en
xmlrpc.php
permite acceder a las URLs que están bloqueadas por defecto, ya que se consideran de riesgo. - Este tipo de bloqueo es efectivo en todos los servidores recientes.
- En cuanto a WordPress, su funcionalidad XML-RPC solo está disponible por defecto a través de los servicios Infomaniak y JetPack por razones de seguridad.
Agregar direcciones IP a la lista blanca de xmlrpc.php
Para acceder a la gestión del sitio web:
- Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿Necesita ayuda?).
- Haga clic directamente en el nombre asignado al producto correspondiente:
- Haga clic en Gestionar bajo Configuración avanzada:
- Haga clic en la pestaña PHP / Apache.
- Complete la línea correspondiente:
- Haga clic en el botón para guardar.
Esta guía explica cómo personalizar los límites de un sitio alojado en un Hébergement Web compartido o un Serveur Cloud.
Desbloquear o ajustar los límites de un sitio
Para acceder a la gestión del sitio web:
- Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿necesita ayuda?).
- Haga clic directamente en el nombre asignado al producto correspondiente:
- Haga clic en Gestionar bajo Configuración avanzada:
- Haga clic en la pestaña PHP / Apache.
Podrá, entre otras cosas:
- Desbloquear durante 60 minutos el límite de memoria (
memory_limit
= 1280 Mo) y el tiempo máximo de ejecución de los scripts (max_execution_time
= 60 minutos):- Este desbloqueo es posible un máximo de 10 veces al año.
- Personalizar los límites de:
max_execution_time
(en segundos)memory_limit
(en Mo)post_max_size
&upload_max_filesize
(tamaño máximo de archivo para envío, en Mo)- Solo Servidor Cloud:
Max children
(consulte este otro guía) - Solo Servidor Cloud:
Max input time
No olvides guardar los cambios al final de la página.
Valores máximos por tipo de alojamiento
Límites | Compartido | Servidor Cloud | CLI (solo Serveur Cloud) |
---|---|---|---|
tiempo máximo de ejecución | 300 s | 3600 s | 0 (ilimitado) s max |
límite de memoria | 1280 Mo | 2048 Mo max | 512 MB max |
post_max_size + upload_max_filesize | 9223372036854775807 Mo max | 9223372036854775807 Mo max | 48 MB máx |
max_children | 20 max | 20 (por defecto, modificable) | |
conexiones simultáneas por IP | 30 max | 30 (por defecto, modificable) | |
max_input_time | 0 (ilimitado) | 0 (por defecto, modificable) | 0 (ilimitado) |
archivos (inodos) | sin límite en el número de archivos por alojamiento |
Esta guía permite resolver un error de tipo "Invalid query: MySQL server has gone away
".
Prólogo
- Este tipo de error a menudo se debe a mantener una conexión MySQL abierta sin enviar consultas durante un intervalo de tiempo más allá del cual la conexión se cierra: http://dev.mysql.com/doc/refman/5.7/en/gone-away.html
- Las variables
wait_timeout
yinteractive_timeout
que controlan esta desconexión están a 30 segundos: http://dev.mysql.com/doc/refman/5.0/en/communication-errors.html
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 verificar si la conexión MySQL sigue activa. Si la conexión se ha cerrado, puede restablecerla automáticamente antes de continuar con su consulta. Aquí tienes 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 método 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ías 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 Cloud)
Con un Servidor Cloud, 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.
En esta guía se explica cómo establecer un red de sitios de WordPress para administrar varios sitios desde una misma instalación de WordPress Infomaniak, con direcciones URL tipo site1.domain.xyz
, site2.domain.xyz
, o incluso con domain1.com
, domain2.com
, etc.
⚠Para la ayuda suplementaria Póngase en contacto con un socio o Haga una licitación gratuita Averigüe también el rol del hospedador.
Instalación de WordPress multisite
Para ello:
- Instale WordPress a través de Infomaniak en su espacio de alojamiento.
- Inicie sesión por FTP.
- Editar archivo
wp-config.php
. - Por encima de la línea "
/* That's all, stop editing! Happy blogging. */
Añade:
define('WP_ALLOW_MULTISITE', true);
A continuación, visite OUTILS de su WordPress para crear una red.
Siga las indicaciones. Entre las medidas que se han de adoptar figuran las siguientes:
- Retirar cualquier certificado SSL.
- Desactivar extensiones de WordPress:
Añadir sitios a su red WP
Para ello:
- En WordPress, vuelva bajo ÚTILES > Creación de la red
- Elija el método de creación de sus diferentes WordPress (en subdominios)
- Agregue las indicaciones necesarias en el wp-config.php y .htaccess en el servidor
- Después de volver a conectar a su WordPress obtendrá un nuevo menú "Mis sitios" en el que podrá agregar y administrar sus diferentes sitios de la misma red
- En el Manager, añádase un alias a su sitio forma *.su dominio aquí (el asterisco permite crear un alias wildcard) con actualización DNS para que el correcto
CNAME
se añada automáticamente en el área. - Cuando cree un nuevo sitio web dentro de la red, por ejemplo, nombre
site1
Entonces se hará accesible a través desite1.domain.xyz
y así sucesivamente.
Subdominio y dominio entero
Justo después de la adición en la red de WordPress, usted tiene la posibilidad de Cambiar URL desde el sitio añadido:
Haga clic en Editar sitio para especificar la URL completa:
Esta guía explica cómo resolver un problema de importación de archivo .csv en una tabla MySQL. La alternativa propuesta consiste en leer el archivo CSV línea por línea utilizando 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 en una tabla MySQL y, desafortunadamente, es cada vez más utilizada por los piratas para obtener acceso a ciertos sitios alojados en máquinas que aceptan esta función.
Para combatir los actos de malicia y seguir protegiendo tanto como sea posible los datos de los clientes, Infomaniak ha desactivado la función LOAD DATA LOCAL INFILE
. No están afectadas por este cambio las personas que importan sus archivos CSV (siempre y cuando no marquen "CSV via LOAD DATA") a través de phpMyAdmin.
Aquí tienes una alternativa para seguir importando datos en formato CSV a una tabla MySQL, un ejemplo completo (en francés) del código con una gestión correcta de los errores para la apertura del archivo CSV y la inserción de los datos en la base de datos.
Esta versión utiliza mysqli
para conectarse a la base de datos y las consultas preparadas para insertar los datos, ofreciendo así una mejor seguridad y compatibilidad con las versiones recientes de PHP y una facilidad para implementarlo en su script PHP o simplemente en un nuevo archivo PHP de su directorio /web:
$NomDuFichier = "data.csv";
// Connexion à la base de données MySQL avec mysqli
$link = new mysqli("localhost", "username", "password", "database");
// Vérification de la connexion
if ($link->connect_error) {
die("Échec de la connexion : " . $link->connect_error);
}
// Ouverture du fichier CSV en lecture
if (($handle = fopen($NomDuFichier, "r")) !== FALSE) {
// Décomposition de chaque ligne du fichier CSV
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
// Préparation de la requête SQL
$query = "INSERT INTO `test` VALUES (" . str_repeat('?,', count($data) - 1) . "?)";
$stmt = $link->prepare($query);
// Vérification de la préparation de la requête
if ($stmt === FALSE) {
die("Échec de la préparation de la requête : " . $link->error);
}
// Liaison des paramètres
$types = str_repeat('s', count($data)); // Assume que toutes les colonnes sont de type string
$stmt->bind_param($types, ...$data);
// Exécution de la requête
if (!$stmt->execute()) {
die("Échec de l'exécution de la requête : " . $stmt->error);
}
// Fermeture de la déclaration
$stmt->close();
}
// Fermeture du fichier CSV
fclose($handle);
} else {
echo "Erreur : impossible d'ouvrir le fichier.
";
exit(1);
}
// Fermeture de la connexion à la base de données
$link->close();
?>
Obtener ayuda
Lamentablemente, no es posible indicarte exactamente en qué parte de tu script deben añadirse estas líneas de código.
Si la alternativa propuesta causa problemas al enviar varios archivos CSV para leer y el procedimiento, por ejemplo, finaliza sin devolver un mensaje a pesar de los puntos de gestión de mensajes en el archivo PHP, es posible que las tablas y los campos utilizados estén mal indexados. En ese caso, también contacte a su webmaster.
Consulte la documentación de PHP sobre fgetcsv
.
⚠️ Para obtener ayuda adicional contacte a un socio o lanza una oferta gratuita — también descubre el rol del proveedor de alojamiento.