Knowledge base
1000 FAQs, 500 tutorials and explanatory videos. Here, there are only solutions!
This technical guide details the resource limits on Infomaniak's web hostings; it is essential to distinguish real time (clock) from processing time (processor) to understand the origin of script interruptions.
1. MySQL connection time (I/O)
Limit: 30 real seconds
This limit corresponds to the absolute time elapsed "clock in hand". It concerns the communication between PHP and the database server (MySQL/MariaDB).
As soon as a connection is opened, the database server allocates a maximum of 30 seconds to receive the request, execute it, and return the results. If this deadline is exceeded (often due to a poorly optimized SQL query), the MySQL server abruptly cuts the connection. This usually generates the error MySQL server has gone away.
2. PHP processing time (CPU)
Limit: 10 CPU seconds
This limit concerns exclusively the computing power consumed by the web server to execute the PHP code.
It is crucial to note that waiting time does not count. When PHP waits for a response from the database, it is paused and consumes almost no CPU time. Consequently, a script will be interrupted by the web server only if it performs intensive calculations (complex loops, cryptography, file processing) for more than 10 cumulative seconds.
Interaction of the two limits
To ensure the stability of the application, each operation must simultaneously respect these two distinct constraints:
- The application has 30 seconds of total time to interact with the database (network latency + SQL execution).
- The application has 10 seconds of pure computing time to process the received data.
Example of valid operation: A script that waits 25 seconds for a complex response from MySQL (I/O) and then processes the result for 2 seconds (CPU) will work perfectly, as it has not exceeded either of the two individual quotas, even if the total time is 27 seconds.
This guide explains how to convert a free Web Starter offer to a more comprehensive and enhanced paid offer, such as Shared Web Hosting or Web hosting on a Cloud Server.
Preamble
- By purchasing a domain name from Infomaniak, you get 1 free email address and a basic 10 MB web space.
- In a few clicks, it is possible to upgrade this offer to benefit from 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 item concerned.
- Click on Modify the offer:
- Follow the wizard to choose the new type of hosting, pay to complete the offer change.
This guide covers 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 in UTC. However, PHP functions are designed to accommodate different timezones based on specific needs.
To adjust the timezone in your PHP scripts, use the function date_default_timezone_set('UTC').
MySQL: temporal specifics
Infomaniak's infrastructure supports features for working with temporal data accurately and efficiently, taking into account timezones, which is crucial for many modern applications:
- MySQL uses a timezone database to store and manage timezone information.
- The
mysql.time_zonetable contains timezone data, including time offset information, timezone names, etc. - The CONVERT_TZ function 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:dtis the date/time to convert.from_tzis the source timezone.to_tzis the target timezone.
- Example:
CONVERT_TZ('2024-05-14 12:00:00', 'UTC', 'America/New_York')will convert 12:00:00 UTC to local time in New York.
This guide explains how to securely and easily transfer files between Web Hosting and/or Cloud Server.
Preamble
- The FXP (File Exchange Protocolis a method for transferring files directly between two FTP servers without the data passing through the local client.
- Using the FTP PORT and PASV commands, it allows for a connection to be established between the two servers for faster and more efficient file transfer, thus saving bandwidth.
- However, this method may present security risks if the connections are not secured by FTPS, and it requires a more complex configuration compared to traditional FTP transfers.
Transferring data between servers
FXP is enabled by default on Serveurs Cloud and hébergements Web (excluding Starter).
For example, you can use CrossFTP, a multi-platform software that allows you to perform FXP (as well as FTP, SFTP, WebDav, S3, OpenStack Swift).
This guide explains how to change the WordPress management password or any other Web application (Joomla, Drupal, Typo3, PrestaShop, ownCloud, etc.) installed via Infomaniak tools included in the offersWeb hosting paid.
Preamble
- Some applications also allow a change of user password directly from their dedicated interface:
- Example: WordPress (manage users, names, passwords, roles, etc.).
Change the password of a Web app
To change the password to the administration panel of your web application, perform the following actions:
- Click here in order to access the management of your product on the Manager Infomaniak (Need help?).
- Click directly on the nameallocated to the product concerned:

- Click on the action menu â‹® located to the right of the relevant Web Application.
- Click on Parameters of the application:

- Click on Edit to the right of the Application:

- Under Password Enter the new password (for connection to the identifier indicated above):

- Click on the button Save at the bottom of the page.
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 explains how to add IP addresses to the whitelist of an Infomaniak website.
Preamble
- Allowing IP addresses on
xmlrpc.phpprovides access to URLs that are blocked by default, as they are considered risky. - This type of blocking is effective on all recent servers.
- Regarding WordPress, its XML-RPC feature is only available by default via Infomaniak services and JetPack for security reasons.
Add IP addresses to the xmlrpc.php whitelist
To access 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 product concerned:
- Click on Manage under Advanced settings:

- Click on the PHP / Apache tab.
- Complete the relevant line:

- Click the button at the bottom of the page to save.
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 helps resolve an error of type "Invalid query: MySQL server has gone away".
Preamble
- This type of error often originates from keeping a MySQL connection open without submitting requests 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_timeoutandinteractive_timeoutthat 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:
Verification and automatic 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 automatically re-establish it 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.
Regular "Ping" sending
Another method is to run 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 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.phpfile 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.phpand.htaccesson 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 correctCNAMEis 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
home2it will become accessible viahome2.domain.xyzand so on:
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)
- … without ever performing a single DoS or DDoS (Denial of Service) attack
- … while respecting the Infomaniak Terms of Service, particularly the shared service framework
Any abusive use may result in early termination by Infomaniak.
This guide details the '502 Bad Gateway' errors that can be obtained by visiting a website.
Preamble
- The 502 Bad Gateway error occurs when the server acting as a gateway between the browser and the origin web server receives an invalid response.
- This error can be caused by an overloaded web server, communication issues between a CDN and the web hosting server, or a misconfigured proxy server.
- Sometimes, the error can be caused by a bad entry in the DNS server.
Resolution paths
To resolve the 502 Bad Gateway error, you often need to proceed by elimination:
- Check if it is not a temporary server overload: simply reload the page after a few minutes for the error to disappear.
- Clear the cache of the browser.
- Try from another browser.
This guide explains how to resolve a problem with importing a .csv file into a MySQL table. The proposed alternative is to read the CSV file line by line with PHP and insert the data into the MySQL database.
Disabled “LOAD DATA LOCAL INFILE” function
The LOAD DATA LOCAL INFILE function allows importing a CSV file directly into a MySQL table. However, this feature is often exploited by attackers to gain unauthorized access to sites hosted on servers that accept it.
To prevent any security risks and protect customer data, Infomaniak has disabled the LOAD DATA LOCAL INFILE function. Users who import their CSV files via phpMyAdmin (without checking the “CSV via LOAD DATA” option) are not affected.
Here is an alternative method to import data in CSV format into a MySQL table. The example below shows how to properly handle errors when opening the CSV file and inserting the data into the database.
This script uses mysqli to connect to the database and prepared statements to insert the data. This ensures better security, optimal compatibility with recent versions of PHP, and simple integration into your project, whether in an existing script or a new file located in the /web directory:
$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();
?>Get help
Unfortunately, it is not possible to precisely indicate where in the script these lines of code should be inserted.
If this method causes issues (for example, when importing multiple CSV files simultaneously without an error message), it is possible that the table structure or field indexing is the cause. In this case, contact your webmaster for verification.
Also, refer to the official PHP documentation regarding the fgetcsv() function.
Make your life easier! If needed, local partners certified by Infomaniak can handle these procedures. Launch a free call for tenders — they take care of everything, freeing you from the technical aspects.
This guide concerns website optimization and more specifically the use of a cache engine on it.
Introduction
- When Infomaniak notices that your website consumes more resources than other sites on the same server, an analysis is conducted.
- Often, it turns out that a simple modification of a request or a parameter would allow you to optimize your site and reduce the server load.
- You will then be contacted by email with instructions to follow, which often include the installation or activation of a cache engine.
- Resource consumption is not necessarily linked to the number of visitors.
- A well-optimized, up-to-date site with a properly configured cache engine can handle tens of thousands of daily visitors, while a poorly optimized site can consume far too many resources with just a few visits per day.
- A cache engine temporarily stores frequently used data to provide it more quickly upon new requests.
- This significantly improves the site's speed and reduces the load on databases or web services.
- To install a caching system on **Serveur Cloud** Infomaniak, refer to **this other guide**.
Enable a cache engine...
… on WordPress
WordPress has many cache plugins. Here are the most popular and effective ones:
- WP Super Cache (free, easy to set up)
- W3 Total Cache (advanced, multiple options)
- WP Rocket (paid, simple and performant interface)
Activation procedure:
- Log in to your WordPress admin.
- Go to Plugins > Add New.
- Search for one of the mentioned plugins, install it, and then activate it.
- Configure the cache options according to your needs: page caching, CSS/JS file minification, gzip compression, etc.
- Test the performance with and without cache using tools like Google PageSpeed Insights or GTmetrix.
To learn more, also check out:
- https://news.infomaniak.com/6-moyens-techniques-pour-optimiser-un-site-wordpress/
- https://news.infomaniak.com/memcached-w3totalcache/
- https://www.seomix.fr/?s=cache
... on Joomla
Log in to the Joomla administration and then follow these steps:
- Go to System > Global Configuration.
- Select the System tab.
- In the Cache section, enable the system cache.
- Choose the type of cache: Conservative (individual user cache) or Progressive (shared cache between users). Progressive caching is recommended for better performance.
- Set the cache validity duration in minutes (for example, 60 minutes for an active site or longer for a static site).
- Save the settings.
- To manually clear the cache, go to System > Manage cache and then delete the cache files.
Joomla 5 features improved cache management and a modernized interface compared to version 4.x.
... on PrestaShop
Log in to the PrestaShop administration then:
- Go to the menu Advanced Settings > Performance.
- In the Smarty section, enable the Cache option.
- In the CCC (Combine, Compress and Cache) section, enable all available options.
- In the Cache section, enable Use cache.
- Follow the instructions to install the recommended extensions or modules (e.g. Memcached, Redis) for additional optimization.
- Save your changes.
... on Magento
Magento 1.x is obsolete. For Magento 2, proceed as follows:
- Log in to the Magento admin.
- Go to System > Cache Management.
- The cache is enabled by default. You can flush or refresh the cache from this interface.
- Make sure all recommended cache types (Configuration, Page Cache, Layouts, etc.) are enabled.
- For optimal performance, use additional solutions like Redis or Varnish if your hosting supports them.
... on Contao (version 4.x)
Log in to the Contao back office then:
- Go to Modules > System > Configuration.
- In Cache mode, check the options Use system cache and Use browser cache.
- Save your changes.
... on Drupal (version 9.x)
For Drupal 7.x (still in use but not recommended), proceed as follows:
- Log in to the Drupal administration.
- Go to Configuration > Performance.
- Check the box Cache pages for anonymous users.
- Save.
For Drupal 9.x (recommended): caching is enabled by default and managed via internal modules. You can configure the cache in Configuration > Development > Performance. To further improve performance, use external systems such as Redis or Varnish if available.
This guide concerns the homepage names that can be used on your Web Hosting Infomaniak, and which will be prioritized when a visitor accesses your website via its domain name.
Regarding Site Creator, refer to this other guide.
Preamble
- The default homepages on a web server are the first pages that display when a user accesses a website without specifying a particular file.
- If you simply enter
http://domain.xyzin your browser's address bar, the web server will look for a default home page to display, for exampleindex.html,index.php,index.htm, or other similar variations.
Homepage priority order
Here are the default pages loaded in order of priority at Infomaniak:
- index.html
- index.htm
- home.html
- home.htm
- default.html
- default.htm
- index.cgi
- index.php
- index.php5
- index.php4
- index.php3
- default.php
- home.php
- welcome.php
In summary:
- If you have 2 pages at the root of your hosting, thanks to the ranking above, you will notice that
index.phpis recognized as a priority overwelcome.php. - It can also be deduced that if you only have
welcome.phpas a page in the root folder, it will be loaded and function as the homepage. - If you have a page
accueil.html, it will not work because this name is not on the list. - When you type
www.domaine.xyzinto the browser, onlyindex.phpwill automatically display (and to displaywelcome.phpyou will need to type the exact page namewww.domaine.xyz/welcome.php).
Customize the default homepage
To set a different default home page, add DirectoryIndex followed by the appropriate pages in the .htaccess file:
DirectoryIndex accueil.html index.php index.htmlThis means that the web server will first look for a file named accueil.html. If it does not find accueil.php, it will look for index.php, then index.html.
To avoid the “Create a database: no privilege” error, it is imperative to go through the Manager Infomaniak and not through phpMyAdmin to add a new database.
This guide explains how to obtain information about the presence of a cache system on a site using the curl command.
Preamble
- In the world of programming and system administration, it is often necessary to determine if a website uses a caching system to improve its performance.
- Caching systems like Fastly are commonly used to temporarily store data to serve it faster to users.
- By following these steps, you will be able to determine if a website uses a caching system to improve its performance and understand the operation and optimization of websites.
Using the curl command
curl is a command-line tool for transferring data using URLs.
The option -svo /dev/null is used to perform a silent request (-s), display detailed information about the request (-v) and redirect the output data to /dev/null to ignore it (/dev/null is a special device on Unix/Linux systems that acts like a trash can). -H "Fastly-Debug: true" is an HTTP header added to the request to request Fastly-specific debugging information.
Run the command
Run the following command from a Terminal type application (command-line interface, CLI / Command Line Interface) on your device:
curl -svo /dev/null [url] -H “Fastly-Debug: true”and replace [url] with the address of the website you want to check.
If the site uses Fastly or another similar caching system, you will see specific debugging information in the command output. The details provided may include information about HTTP requests and responses, as well as information about the cache and performance.
This guide explains how to enable the MultiViews option via a .htaccess file on sites hosted by Infomaniak.
Preamble
- In some cases, the MultiViews option must be enabled to handle redirection and URL rewriting issues. Example:
- If the
configurationfolder and theconfiguration.phpfile are located at the root of your site and you try to access the addressmon-site.com/configurationto reach theconfiguration.phpfile, the MultiViews option must be enabled.
- If the
Enable the MultiViews option
To do this:
- Open or create the
.htaccessfile located at the root of the relevant site. Add the following directive:
Options +MultiViews- Save the changes.
This guide concerns ImageMagick, a powerful solution for image manipulation, which you can install on an Infomaniak Web Hosting.
For installation, the easiest way is to use Fast Installer.
ImageMagick and alternatives
These image manipulation solutions are compatible with Web Hosting and Cloud Servers:
ImageMagick: the main software suite for versatile image manipulation via the command linePerlMagick: Perl interface to integrate ImageMagick functionalities into Perl scripts- Perl Module
Image::Magick: Perl extension to access ImageMagick functionalities without specifying the absolute path of the executable GD 2.x: open-source graphics library offering functionalities similar to ImageMagick, often used in web development contextsGallery 2: image gallery management platform compatible with ImageMagick for online presentation
If necessary, the path for ImageMagick is standard since it is installed through the Debian repository:
/usr/binand for the Perl module Image::Magick:
/usr/local/bin/convertor without specifying the absolute path:
$ perl -e 'use Image::Magick';All imagemagick commands are under /usr/bin/:
/usr/bin/animate
/usr/bin/compare
/usr/bin/composite
/usr/bin/conjure
/usr/bin/convert
/usr/bin/display
/usr/bin/identify
/usr/bin/import
/usr/bin/mogrify
/usr/bin/montage
/usr/bin/streamThis guide details the use of Crontab (crons via SSH), available only on Managed Cloud Server, by default (there is also a task scheduler for all hosting).
Prerequisites
- The script files called by the cron must be executable (CHMOD).
Full path
Cron tasks do not know the absolute path. Calling PHP without specifying the full paths to the executable makes it impossible to execute the task.
You must specify
/opt/phpX.X/bin/phpby replacing X.X with the desired PHP version (/opt/php7.1/bin/php for example).
Other operations
List the crons of the SSH user in question:
crontab -l -u NomUtilisateurSSHEdit the crons:
crontab -e -u NomUtilisateurSSHBe notified by email of the result of your cron tasks (to be added at the beginning of the file):
MAILTO=e-mail@domain.xyz
Restore a backup
Infomaniak backs up the crons of the last 7 days (once a day). In case of accidental deletion, contact Infomaniak support to request a restoration specifying the time and date of the deletion.