Knowledge base
1000 FAQs, 500 tutorials and explanatory videos. Here, there are only solutions!
This guide explains how to convert a free Web Starter offer to a more complete and enhanced paid offer, such as a Web Hosting shared or a Web Hosting on Cloud Server.
Preamble
- By purchasing a domain name from Infomaniak, you get 1 free email address as well as a basic Web space of 10 MB.
- In just a few clicks, it is possible to upgrade these offers to enjoy an enhanced experience.
Modify the Starter Offer - Basic Web Page
To upgrade this free offer:
- Click here to access the management of your product on the Infomaniak Manager (need help?).
- Click on the action menu â‹® located to the right of the relevant item.
- Click on Modify the offer:
- Follow the assistant to select the new type of hosting, pay to complete the offer change.
This guide explains why there is a folder /icons/
within the Web Hosting.
/icons/ folder on your Web Hosting
In some cases, a folder named /icons/
is present by default on your web hosting. This folder is generally accessible via HTTP, but is not visible in the FTP directory structure (www.domain.xyz/icons/
).
This directory /icons/
is often used to store specific icons or images used to display directory lists. These icons are generally used by web servers to visually represent the different types of files in directories when they are viewed through a browser.
This guide concerns the synchronization of servers via the NTP (Network Time Protocol) and the configuration of the timezone on Infomaniak servers.
Precise server synchronization via NTP
All Infomaniak servers are synchronized via the NTP protocol. The company provides its own public-accessible stratum-1 NTP servers for flexible use.
To integrate these servers into your settings, use the following entry: pool.ntp.infomaniak.ch
.
The default timezone configuration is set to UTC. However, PHP functions are designed to accommodate different timezones according to specific needs.
To adjust the timezone in your PHP scripts, use the function date_default_timezone_set('UTC')
.
MySQL: time specifics
Infomaniak's infrastructure supports features for working with time data precisely and efficiently, taking into account time zones, which is crucial for many modern applications:
- MySQL uses a time zone database to store and manage time zone information.
- The table
mysql.time_zone
contains time zone data, including information about time offsets, time zone names, etc. - The function CONVERT_TZ is used to convert a time from one timezone to another in MySQL with the following syntax:
CONVERT_TZ(dt, from_tz, to_tz)
, where:dt
is the date/time to convert.from_tz
is the source timezone.to_tz
is the target timezone.
- Example:
CONVERT_TZ('2024-05-14 12:00:00', 'UTC', 'America/New_York')
will convert the time 12:00:00 UTC to local time in New York.
This guide provides precise information on the support for the ASP
(Active Server Pages, aspx) development environment within the Infomaniak infrastructure.
ASP support
The Web hosting and Cloud Servers services are based on an Apache server architecture that does not natively support the Apache::ASP module.
However, it is possible to install and configure this ASP environment on VPS Cloud Infomaniak.
This guide explains how to add IP addresses to the whitelist of an Infomaniak Web site.
Preamble
- Allowing IP addresses on
xmlrpc.php
enables access to URLs that are blocked by default due to being considered risky. - This type of blocking is effective on all recent servers.
- Regarding WordPress, its XML-RPC feature is only available by default through Infomaniak services and JetPack for security reasons.
Add IP addresses to the xmlrpc.php whitelist
To access the website management:
- Click here to access the management of your product on the Infomaniak Manager (need help?).
- Click directly on the name assigned to the relevant product:
- Click on Manage under Advanced Settings:
- Click on the PHP / Apache tab.
- Complete the relevant line:
- Click the button to save.
This guide helps resolve an error of type "Invalid query: MySQL server has gone away
".
Preamble
- This type of error often occurs when a MySQL connection is kept open without submitting queries for a period of time beyond which the connection is closed: http://dev.mysql.com/doc/refman/5.7/en/gone-away.html
- The variables
wait_timeout
andinteractive_timeout
that control this disconnection are set to 30 seconds: http://dev.mysql.com/doc/refman/5.0/en/communication-errors.html
Solutions
To avoid the "MySQL server has gone away" error, here are several possible approaches:
Automatic verification and reconnection
Before executing a query, it is recommended to test if the MySQL connection is still active. If the connection has been closed, you can re-establish it automatically before proceeding with your query. Here is an example in PHP:
if (!mysqli_ping($connexion)) {
mysqli_close($connexion);
$connexion = mysqli_connect($host, $user, $password, $database);
}
The function mysqli_ping()
checks if the connection is still valid. If it is not, the script closes the connection and opens a new one.
Sending regular "Pings
Another method involves running a script that regularly sends a "ping" to the database to keep the connection active. For example, you could create a scheduled task (cron job) that sends a light query, such as SELECT 1;
at regular intervals.
Adjusting MySQL parameters (Cloud Server)
With a Cloud Server, you can increase the values of the variables wait_timeout
and interactive_timeout
from the MySQL menu of your server to extend the duration of the connection before it is closed.
This guide is for you if you wish to perform vulnerability tests on your site/server hosted by Infomaniak.
Allowed and restricted
You are free to perform vulnerability tests (SQL injection, XSS, etc.), intrusion, or penetration testing (pentest) on your Infomaniak hosting only under the following conditions:
- … between 9 AM and 5 PM CET
- … from Monday to Friday
- … with the minimum number of attack packets, regardless of the software used (AppScan, for example)
- … never performing a single DoS or DDoS (Denial of Service) attack
- … by respecting the TOS of Infomaniak, particularly the shared services framework
This guide explains how to set up a WordPress network to manage multiple sites from a single WordPress installation, with URLs like site1.domain.xyz
, site2.domain.xyz
, or even domain1.com
, domain2.com
, etc.
Make your life easier! If needed, local partners recommended by Infomaniak can handle these procedures. Launch a free tender. They take care of everything, freeing you from technical details.
WordPress multisite installation
To begin:
- Install WordPress via Infomaniak on your hosting space with a main domain name:
- This first WordPress site must be reachable and function correctly:
- This first WordPress site must be reachable and function correctly:
- Log in via FTP.
- Edit the
wp-config.php
file of this first WordPress site concerned. - Above the line "
/* That's all, stop editing! Happy blogging. */
" (#94) copy and paste the codedefine('WP_ALLOW_MULTISITE', true);
:
- Save your changes.
- Then log in to the administration of your WordPress site.
- Temporarily disable all WordPress plugins:
- Go to the TOOLS menu to create a Network:
- Choose the method for creating your different WordPress sites (on subdomains)…
- Click on the installation button:
- Add the instructions displayed on the screen to the
wp-config.php
and.htaccess
on the server. - After reconnecting to your WordPress, you will get a new menu "My Sites" where you can add and manage your different sites on the same network:
- In the Manager, add an alias to your site in the form
*
.your-domain-here (the asterisk allows you to create a wildcard alias) with DNS update so that the correctCNAME
is automatically added to the zone: - Install or update your SSL certificates:
- When you create a new site within the network, by naming it for example
home2
it will become accessible viahome2.domain.xyz
and so on:
This guide explains how to solve a problem importing a .csv file into a MySQL table. The proposed alternative is to read the CSV file line by line using PHP and insert the data into the MySQL database.
"load data local infile" function disabled
The function LOAD DATA LOCAL INFILE
allows you to import a CSV file into a MySQL table and is unfortunately now frequently used by hackers to gain access to certain sites hosted on machines that accept this function.
To combat malicious acts and continue to protect clients' data as much as possible, Infomaniak has disabled the LOAD DATA LOCAL INFILE
function. This change does not affect users importing their CSV files (provided they do not check "CSV via LOAD DATA") via phpMyAdmin.
Here is an alternative to continue importing CSV formatted data into a MySQL table, a complete example (in French) of the code with proper error handling for opening the CSV file and inserting the data into the database.
This version uses mysqli
to connect to the database and prepared statements to insert the data, thus offering better security and compatibility with recent versions of PHP and ease of implementation in your PHP script or simply in a new PHP file in your /web directory:
$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();
?>
Getting help
Unfortunately, it is impossible to precisely indicate where these lines of code should be added in your script.
If the proposed alternative causes issues when you submit multiple CSV files to read and the procedure, for example, ends without returning a message despite the error handling points in the PHP file, it is possible that the tables and fields used are not properly indexed. In this case, also contact your webmaster.
Refer to the PHP documentation regarding fgetcsv
.
Make your life easier! If needed, local partners recommended by Infomaniak can handle these tasks. Launch a free tender. They take care of everything, freeing you from the technical details.
This guide presents the DNS Diagnostic tool, which allows you to check that the relationships between…
- DOMAIN NAME at Infomaniak
and
- WEB HOSTING at Infomaniak
… are correct, so that Web traffic goes to the right place.
Introduction
- To check, the tool verifies the A, CNAME records, etc.
- You will thus be able to detect and correct certain web issues, especially if they are related to DNS (technical information that, broadly speaking, determines where such and such web traffic should be directed) by acting at the level of your domain.
- Automatic correction is only possible when the domain name is present in the same Organization as the product to which it must be attached.
- If this is not the case, then the correction will need to be done manually.
Diagnose a DNS issue
To access the DNS diagnostic for your domain name:
- Click here to access the management of your product on the Infomaniak Manager (need help?).
- Click directly on the name assigned to the product in question.
- Click on Web in the left sidebar.
- Click on DNS Diagnostic in the left sidebar:
- If DNS issues are detected, a red display on the table indicates this:
- Correct each error individually by clicking on the action menu ⋮ located to the right of the concerned element…
- … or all errors at once…
- … or, if necessary and you are sure, ignore these warnings.
- If DNS issues are detected, a red display on the table indicates this:
Refer to this other guide regarding the same automatic verification process but for Mail Services.