burger
infomaniak
infomaniak
cloud-computing-logo
Cloud Computing
web-domain-logo
Web & Domains
event-marketing-logo
Events & Marketing
  • Our products
    • Collaborative tools icon chevron
    • Web & Domains icon chevron
    • Cloud Computing icon chevron
    • Events & Marketing icon chevron
    • Streaming icon chevron

      ksuiteCollaborative suite

      Discover the collaborative suite → Discover →
    • kSuite Professional email, sovereign cloud and AI for sustainable performance
    • kSuite The suite for secure communication, storage and sharing
    • kdrive
      kDrive Store, collaborate and share your files
    • mail service
      Mail Service Create your email addresses with your domain
    • kChat
      kChat Communicate live with your teams
    • kmeet
      kMeet Organise your meetings online in complete security
    • swisstransfer
      SwissTransfer Send your files up to 50 GB free of charge.
    • kpaste
      kPaste Share and encrypt your sensitive information
    • ksuite
      Custom Brand Control the brand image of your products
    • kChat
      Chk Link reducer & QR code generator
      Find the web hosting solution you need
    • Domain name
      Domain name Reserve your domain name at the best price
    • Site Creator
      Site Creator Create your website with ease
    • web hosting
      Web Hosting Create your website with over 100 CMS
    • web hosting
      Wordpress Hosting Create your WordPress website easily
    • Cloud Server
      Cloud Server Power up your sites with guaranteed resources
    • Node.js Hosting Create a dynamic, interactive site with Node.js
    • SSL Certificat
      SSL certificates Secure your websites with an EV or DV certificate
    • Options
    • Domain privacy
      Domain Privacy Protect your domains’ private data
    • DNS Fast Anycast
      FastAnycast DNS Speed up your site access times
    • Dyn DNS
      DynDNS Access your devices remotely
    • Dyn DNS
      Renewal Warranty Secure your domains against loss and theft
      Find the right Cloud Computing solution

      Cloud services

    • public cloud
      Public Cloud (IaaS) Create your projects in a high-end, ultra-competitive Cloud
    • Cloud Server
      VPS Cloud Create a Windows / Linux server
    • Kubernetes service Deploy your containerised apps on a large scale.
    • VPS Lite
      VPS Lite Create a Windows/Linux server at a low cost
    • Database Service Manage your databases with a managed solution
    • jelastic cloud
      Jelastic Cloud (PaaS) Create your own customised environments
    • Other services

    • llm api
      AI Tools Boost your productivity with our sovereign AI
    • swiss backup
      Swiss Backup Back up your devices in the Cloud
    • nas synology
      NAS Synology Rent a NAS in our secure data centers
    • High availibility
      Very High Availability Create a multi-data center infrastructure with customised SLAs
    • Housing
      Housing Install your servers in our data centers
    • Auth Add a privacy-friendly login method to your apps
      Infomaniak Events, the independent local events portal
      Online ticketing service with a wide choice of concerts, shows and events.
    • online shop
      Ticketing Create your ticketing service and sell tickets
    • kdrive
      Access Control Control access to your events with ease
    • kdrive
      Guest manager Automate your event invitations
    • kdrive
      Newsletter Send your newsletters at competitive prices
    • Streaming radio
      Streaming radio Create and broadcast your own live radio station online
    • streaming video
      Video-Streaming Create and broadcast live events and TV online
    • VOD and AOD
      VOD & AOD service Host and broadcast your recordings without limits
  • Resources
    documentation icon Documentation
    Guides & tutorials
    API documentation
    special offers icon Special offers
    Get started for free
    Student programme
    Become an affiliate
    partner program icon Partner programme
    Find a partner
    Become a partner
    Infomaniak Academy
    support icon Support & contact
    Contact Support
    Premium support - 24/7
    Contact our sales department
    Hiring an expert
    Migrate to Infomaniak
  • About us
    forest
    icon Ecological commitment
    We pollute. But we are taking action to reduce the footprint of our services and infrastructure
    Discover our commitment →
    icon About Infomaniak
    Our vision, our values
    Our teams
    Infomaniak is recruiting
    Press and communication
    Blog and news
    icon Security
    Data confidentiality
    Bug Bounty Programme
  • Get started for free
    Sign in
  • search-icon
    close-icon
      icon

      Would your needs exceed our solutions? To find out, contact us so that we can advise you personally.

      Our flagship products:
  • search-icon
  • Get started for free
    Sign in
Price Price

Knowledge base

1000 FAQs, 500 tutorials and explanatory videos. Here, there are only solutions!

Knowledge base FAQ - Knowledge base Page 12/1
    20 FAQ(s) found
    Fix a MySQL error ($ in password)

    This guide details the specific rules to follow when creating a user password with mysqli_connect() that contains the “dollar” character $ on the Infomaniak platforms.

     

    Preamble

    • If you get the error message "Access denied for user" when using mysqli_connect(), and your database user password contains a $ sign, the issue may be due to the way strings work in PHP.
    • The issue may also occur with mail scripts.

     

    Rules to follow

    When the special character $ is used in a user password and is followed by any character other than a number, the variable name is not valid and the substitution does not occur correctly.

    Here are some solutions to fix this:

    • Enclose the password in single quotes: '$******'
    • Ensure that a number directly follows the dollar: "$2*****"
    • Use a backslash to "escape" the dollar sign in the password: “\$****”


    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Fix a mod_auth_mysql error

    This guide concerns the Apache module mod_auth_mysql which allows user authentication and access authorization via a MySQL database.

     

    With shared hosting

    The mod_auth_mysql module is not available with shared hosting; consider a Cloud Server or use PHP scripts and sessions.



    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Use InnoDB

    This guide explains how to access InnoDB at Infomaniak.

     

    Use the MySQL InnoDB storage engine

    Once your Infomaniak hosting gives you access to MySQL / MariaDB databases, InnoDB is available at the same time (previously MyISAM).

    InnoDB offers advanced features such as ACID transactions, row-level locks, full-text indexes, etc. You can take advantage of these features by using appropriate SQL statements in your queries.



    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Use Zend Guard Loader (formerly Zend Optimizer)

    This guide concerns the installation of PHP extensions on Infomaniak Web Hosting.

     

    Using Zend PHP extensions

    • Zend Guard Loader is a PHP extension that allows you to run PHP scripts encrypted via Zend Guard.
      • Zend Guard Loader is installed by default for PHP <= 5.6 on all web hosting and is not available for PHP versions >= 5.6.
    • Since PHP 5.3.x, the Zend Optimizer module has been replaced by ZendGuardLoader
    • The ZendOPCache extension requires a Cloud Server configured with PHP 5.5 minimum


    Updated 17.10.2025 Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Resolve a communication issue with YAZ

    This guide concerns YAZ a software library used to implement the Z39.50 protocol, an information retrieval protocol that allows communication between different library systems (ILS) such as PMB widely used in France.

     

    Infomaniak for efficient library management

    On the Web Hosting Infomaniak, PMB is supported and YAZ is activated by default.

    However, if you encounter errors such as Call to undefined function yaz_connect() it will be necessary to open ports via the Manager. Port 210 is the standard port used for Z39.50 communications but do not hesitate to consult the documentation of your applications.

    For the old Infomaniak hosting plans, consider a change of offer.



    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Limitations of the who and users commands

    Access to the system commands who and users is prohibited for LDAP users on all Infomaniak servers.



    Updated 14.10.2025 Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Solving a Python problem with Anaconda

    This guide will help you if, for example, you want to deploy a package like pymysql and it requires a version of python higher than the one offered on your hosting.

     

    Preamble

    • Anaconda is a free and open-source distribution of the Python programming language. This distribution aims to simplify package management and deployment.
    • It is recommended to use conda delivered with a recent version of python and which installs in the user space, so that there is no conflict with the python system (as in a virtual environment, which always requires a system installation of the desired version).
    • Refer to the official documentation.
       
     

    ⚠️ For additional help contact a partner or launch a free call for tenders — also discover the role of the host.

     

    Download the installer

    uid165116@od-12345:~$ wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh
    --2021-07-28 18:21:10--  https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh
    Resolving repo.anaconda.com (repo.anaconda.com)... 2606:4700::6810:8303, 2606:4700::6810:8203, 104.16.131.3, ...
    Connecting to repo.anaconda.com (repo.anaconda.com)|2606:4700::6810:8303|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 89026327 (85M) [application/x-sh]
    Saving to: ‘Miniconda3-py37_4.10.3-Linux-x86_64.sh’
    Miniconda3-py37_4.10.3-Linux-x86_64.sh          100% [==============================================>]  84.90M   203MB/s   in 0.4s   
    18:21:11 (100 MB/s) - ‘Miniconda3-py37_4.10.3-Linux-x86_64.sh’ saved [89026327/89026327]

     

    Check the hash

    uid165116@od-12345:~$ test $(md5sum Miniconda3-py37_4.10.3-Linux-x86_64.sh | awk '{print $1}') == "9f186c1d86c266acc47dbc1603f0e2ed" && echo "OK" 
    OK

     

    Start the installation

    uid165116@od-12345:~$ bash Miniconda3-py37_4.10.3-Linux-x86_64.sh -b
    PREFIX=/home/clients/fc84cbbf6dcbd6dd76b15d3e56c1789f/miniconda3
    Unpacking payload ...
    Collecting package metadata (current_repodata.json): done                                                                                           
    Solving environment: done
    ## Package Plan ##
    environment location: /home/clients/fc84cbbf6dcbd6dd76b15d3e56c1789f/miniconda3
    added / updated specs:
        - _libgcc_mutex==0.1=main
        - _openmp_mutex==4.5=1_gnu
        - brotlipy==0.7.0=py37h27cfd23_1003
        - ca-certificates==2021.7.5=h06a4308_1
        - certifi==2021.5.30=py37h06a4308_0
        - cffi==1.14.6=py37h400218f_0
        - chardet==4.0.0=py37h06a4308_1003
        - conda-package-handling==1.7.3=py37h27cfd23_1
        - conda==4.10.3=py37h06a4308_0
        - cryptography==3.4.7=py37hd23ed53_0
        - idna==2.10=pyhd3eb1b0_0
        - ld_impl_linux-64==2.35.1=h7274673_9
        - libffi==3.3=he6710b0_2
        - libgcc-ng==9.3.0=h5101ec6_17
        - libgomp==9.3.0=h5101ec6_17
        - libstdcxx-ng==9.3.0=hd4cf53a_17
        - ncurses==6.2=he6710b0_1
        - openssl==1.1.1k=h27cfd23_0
        - pip==21.1.3=py37h06a4308_0
        - pycosat==0.6.3=py37h27cfd23_0
        - pycparser==2.20=py_2
        - pyopenssl==20.0.1=pyhd3eb1b0_1
        - pysocks==1.7.1=py37_1
        - python==3.7.10=h12debd9_4
        - readline==8.1=h27cfd23_0
        - requests==2.25.1=pyhd3eb1b0_0
        - ruamel_yaml==0.15.100=py37h27cfd23_0
        - setuptools==52.0.0=py37h06a4308_0
        - six==1.16.0=pyhd3eb1b0_0
        - sqlite==3.36.0=hc218d9a_0
        - tk==8.6.10=hbc83047_0
        - tqdm==4.61.2=pyhd3eb1b0_1
        - urllib3==1.26.6=pyhd3eb1b0_1
        - wheel==0.36.2=pyhd3eb1b0_0
        - xz==5.2.5=h7b6447c_0
        - yaml==0.2.5=h7b6447c_0
        - zlib==1.2.11=h7b6447c_3
    The following NEW packages will be INSTALLED:
      _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main
      _openmp_mutex      pkgs/main/linux-64::_openmp_mutex-4.5-1_gnu
      brotlipy           pkgs/main/linux-64::brotlipy-0.7.0-py37h27cfd23_1003
      ca-certificates    pkgs/main/linux-64::ca-certificates-2021.7.5-h06a4308_1
      certifi            pkgs/main/linux-64::certifi-2021.5.30-py37h06a4308_0
      cffi               pkgs/main/linux-64::cffi-1.14.6-py37h400218f_0
      chardet            pkgs/main/linux-64::chardet-4.0.0-py37h06a4308_1003
      conda              pkgs/main/linux-64::conda-4.10.3-py37h06a4308_0
      conda-package-han~ pkgs/main/linux-64::conda-package-handling-1.7.3-py37h27cfd23_1
      cryptography       pkgs/main/linux-64::cryptography-3.4.7-py37hd23ed53_0
      idna               pkgs/main/noarch::idna-2.10-pyhd3eb1b0_0
      ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.35.1-h7274673_9
      libffi             pkgs/main/linux-64::libffi-3.3-he6710b0_2
      libgcc-ng          pkgs/main/linux-64::libgcc-ng-9.3.0-h5101ec6_17
      libgomp            pkgs/main/linux-64::libgomp-9.3.0-h5101ec6_17
      libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-9.3.0-hd4cf53a_17
      ncurses            pkgs/main/linux-64::ncurses-6.2-he6710b0_1
      openssl            pkgs/main/linux-64::openssl-1.1.1k-h27cfd23_0
      pip                pkgs/main/linux-64::pip-21.1.3-py37h06a4308_0
      pycosat            pkgs/main/linux-64::pycosat-0.6.3-py37h27cfd23_0
      pycparser          pkgs/main/noarch::pycparser-2.20-py_2
      pyopenssl          pkgs/main/noarch::pyopenssl-20.0.1-pyhd3eb1b0_1
      pysocks            pkgs/main/linux-64::pysocks-1.7.1-py37_1
      python             pkgs/main/linux-64::python-3.7.10-h12debd9_4
      readline           pkgs/main/linux-64::readline-8.1-h27cfd23_0
      requests           pkgs/main/noarch::requests-2.25.1-pyhd3eb1b0_0
      ruamel_yaml        pkgs/main/linux-64::ruamel_yaml-0.15.100-py37h27cfd23_0
      setuptools         pkgs/main/linux-64::setuptools-52.0.0-py37h06a4308_0
      six                pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_0
      sqlite             pkgs/main/linux-64::sqlite-3.36.0-hc218d9a_0
      tk                 pkgs/main/linux-64::tk-8.6.10-hbc83047_0
      tqdm               pkgs/main/noarch::tqdm-4.61.2-pyhd3eb1b0_1
      urllib3            pkgs/main/noarch::urllib3-1.26.6-pyhd3eb1b0_1
      wheel              pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0
      xz                 pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
      yaml               pkgs/main/linux-64::yaml-0.2.5-h7b6447c_0
      zlib               pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3
    Preparing transaction: done
    Executing transaction: done
    installation finished.

     

    Launch conda

    uid165116@od-12345:~$ source <(~/miniconda3/bin/conda shell.bash hook)

     

    Install pymysql (for example)

    (base) uid165116@od-12345:~$ python3 -V
    Python 3.7.10
    (base) uid165116@od-12345:~$ pip3 install pymysql --user
    Collecting pymysql
      Downloading PyMySQL-1.0.2-py3-none-any.whl (43 kB)
         |████████████████████████████████| 43 kB 892 kB/s 
    Installing collected packages: pymysql
    Successfully installed pymysql-1.0.2


    Updated 07.10.2025 Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Include a file globally with Auto Prepend File

    This guide explains how to specify a file that will be loaded before the desired page or at the beginning of each PHP script executed on your server, included as if it had been called with the require() function, but more globally using the PHP directive auto_prepend_file.

     

    Preamble

    • For example, to declare the headers of a website, you can create a headers.php file that contains PHP header() functions and that is prepended at the beginning of each PHP file…
      • … via a .user.ini file (specific to a folder),
      • … or via the site configuration in the Manager (global) as explained below.

     

    Include a file globally from the Manager

    To access the website management:

    1. Click here to access the management of your product on the Infomaniak Manager (need help?).
    2. Click directly on the name assigned to the product concerned:
    3. Click on Manage under Advanced settings:
    4. Click on the PHP / Apache tab.
    5. Complete the relevant line by entering the path of the file to include.
    6. Click the button to save:

     

    After defining this directive, all PHP pages on your server will automatically include the specified file before executing their own code.

    The headers defined in a .htaccess file are only valid for non-PHP (i.e., static) content.

    Infomaniak uses php-fpm which receives the different headers via apache fast_cgi. In the RFC of cgi_www the header Strict-Transport-Security is not part of the headers passed via CGI and the Apache documentation confirms this. See this other RFC.

    ⚠️ For additional help contact a partner or launch a free tender — also discover the role of the host.



    Updated 07.10.2025 Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Install Magento without privilege triggers/routines

    WARNING: This method modifies Magento core files to disable advanced privilege checks (triggers, routines), which is a risky practice in terms of security, stability, and complicates future updates.

    Today, Magento (now Adobe Commerce or Magento Open Source) is a modern platform that requires a server environment that meets its strict prerequisites. The current stable version is often 2.4.8 or a more recent patch version. These versions require up-to-date technologies such as PHP 8.2/8.3, MySQL 8.0/MariaDB 10.6 and a dedicated search engine such as Elasticsearch or OpenSearch.

    For any new installation or migration, it is strongly recommended to use the latest stable version without any manual modification of the source code. You must choose a high-performance hosting type (Cloud Server or VPS/Dedicated) that guarantees access to all the system privileges required for secure and stable operation.

    Absolutely avoid using the old patch below. Note that this patch is unnecessary in case of installation on a Cloud Server.


    This guide explains how to patch the Magento installation so that it can be performed on an Infomaniak shared hosting, even without triggers & routines type privileges.

    Resolve Magento 2 installation issues

    Edit the file DbValidator.php:

    --- setup/src/Magento/Setup/Validator/DbValidator.php.orig 2019-04-11 17:01:45.154767893 +0200
    +++ setup/src/Magento/Setup/Validator/DbValidator.php 2019-04-13 21:37:02.560386985 +0200
    @@ -150,12 +150,8 @@
    'ALTER',
    'CREATE TEMPORARY TABLES',
    'LOCK TABLES',
    - 'EXECUTE',
    'CREATE VIEW',
    - 'SHOW VIEW',
    - 'CREATE ROUTINE',
    - 'ALTER ROUTINE',
    - 'TRIGGER'
    + 'SHOW VIEW'
    ];
    // check global privileges

    In case of SOAP/PHPfpm error

    Depending on the version of Magento used, the soap function does not work correctly and may return the following error message: «Uncaught SoapFault exception: [Client] looks like we got no XML document».

    The problem does not come from a bad server configuration, but rather from a poor design of Magento which does not take into account the case of PHP execution in an FPM environment. Thus, the SOAP requests generated by Magento contain double headers (non-compliant with the SOAP specification) and generate an error.

    Be aware of this solution (not developed by Infomaniak).



    Updated 14.10.2025 Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Resolve a site infinite loading issue (increase the max_children value)

    This guide explains how to increase the max_children value on Cloud Server to increase the number of simultaneous PHP processes that can be used by your site. This will be very useful for resolving infinite page loading issues on your site.

     

    Preamble

    • By default on all hosting, the max_children limit is set to 20.
      • Although it is possible to increase this value from the Infomaniak Manager, the max_children limit is automatically adjusted based on the configuration of your Cloud Server.
      • To increase this limit on shared hosting, migrate to Cloud Server.
    • To understand how to accurately calculate the necessary max_children, refer to this article on the subject.

     

    Increase the max_children value

    Prerequisites

    • Ensure that you have the necessary resources on the Cloud Server.
    • Ensure that all resources of the Cloud Server are not being used; if it turns out that they are fully used, increasing the max_children value will have no effect (Modify the resources of the Cloud Server).
    • Monitor the resources of your server, in case the resources of your server are reached, it will be necessary to check the optimization of the processes and your site before considering increasing the value max_children.
    • Consult the PHP error reports from the /ik-logs folder (master process php logs - file name: php-fpm.log) to check if the "max_children" limit has been exceeded... example of error: [05-Jul-2024 09:08:58] WARNING: [pool www.infomaniak.ch] server reached max_children setting (20), consider raising it

    To access the management of PHP / Apache parameters of the site for which you need to increase the max_children value on Cloud Server, refer to this other guide.

    You will be able to...

    • ... choose a new max_children value:

    Do not forget to save the changes at the bottom of the page.

     

    Limits depending on the server

    Limit of max_children depending on the resources of the Cloud Server:

    Cloud Server Configurationmax_children
    2 CPU / 6 Go RAM20
    4 CPU / 12 Go RAM40
    6 CPU / 18 GB RAM60
    8 CPU / 24 GB RAM80
    12 CPU / 36 GB RAM120
    16 CPU / 48 GB RAM160
    24 CPU / 72 GB RAM240
    32 CPU / 96 or 128 GB RAM320


    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Modify the include_path

    This guide explains how to modify the value of the directive php_value include_path.

     

    Modify the include_path

    Like any other PHP parameter, include_path is defined in the .user.ini file.

    Here is an example of path to use in the .user.ini file:

    include_path = .:/home/clients/123456789a12345b12fc345d/web/www.domainetest.abc/public/abc/include

    Check out this other guide about phpinfo to verify that your new directive has been applied.



    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Use the mod_userdir module

    The Apache module mod_userdir is not available.



    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Discover eco-design to reduce the carbon footprint

    This guide is for you because you have chosen (or will choose) Infomaniak as your host. This choice is not trivial. You are sensitive to ecology and want to do everything possible to reduce the carbon footprint on the Internet.

    Infomaniak already thanks you for choosing this hosting provider that cares for the planet and for exploring the paths below to progress in the eco-design of your web environment.

    Why act?

    Websites consume energy to function, and the use of the Internet is one of the main causes of the increase in greenhouse gas emissions.

    In addition to choosing an ethical host that uses renewable energy sources to power its servers, you can also contribute to reducing these emissions by adopting eco-responsible practices in the design and management of your sites and Mail services.

    How to act?

    As mentioned earlier, Infomaniak takes action on various points, including its support department: it will assist you in choosing services tailored to your needs with a focus on environmental preservation, gather your feedback to optimize our practices and draw inspiration from your experiences, while also communicating the environmental challenges in the hosting sector to adopt good digital practices.

    At your level, there are several ways to reduce your carbon footprint on the Internet:

    Minimize energy consumption

    To reduce the energy consumption of servers and users' computers: optimize images, use web fonts, use minified scripts and data compression technologies. Clean designs can help reduce bandwidth requirements.

    Offer options to reduce data consumption by using lower quality images or providing streaming videos in different qualities, to disable trackers and advertisements that consume a lot of data.

    For good practices dedicated to WordPress consult the GreenIT sheets.

    Use eco-responsible technologies

    Sustainable development technologies, such as HTML5, CSS3, and JavaScript, are more environmentally friendly.‍

    Promote sustainability

    Raise user awareness of the environmental impact of Internet technologies and encourage them to adopt eco-responsible practices. Including with the WordPress solution.

    And what about email?

    The same habits can be applied to your email communication:

    • Use an eco-friendly signature that encourages recipients to reduce their environmental impact by using eco-friendly technologies or adopting eco-friendly practices…
    • Use eco-friendly email management tools that utilize renewable energy sources and have eco-friendly policies regarding energy consumption…
    • Use plain text emails instead of HTML emails, as HTML emails tend to consume more energy to be displayed…
    • Use PDF attachments instead of heavier formats…
    • Use unsubscribe features to avoid sending unwanted emails…
    • Use tracking tools to find out how many people open your emails and thus know if you are sending too many or too few…

    All these actions can be implemented gradually and should be adapted to the situation of each website. There is no one-size-fits-all solution.

    Regularly monitor energy consumption statistics to continue improving the site's ecological performance. Infomaniak will offer tools in this direction in the future, but in the meantime, you can use https://greenframe.io.



    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Understand the restriction on certain Web folders

    Writing to the /etc and /lib directories is disabled for security reasons.



    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Install Ghost on an Infomaniak hosting

    This guide will help you install Ghost on Infomaniak, an ideal platform for blogs (regular writing, editorial format) and content-focused publishing sites, such as Substack or Medium.

    Built on Node.js and using Markdown for writing, Ghost stands out for its lightness, whereas WordPress, though more flexible and universal, is heavier.

     

    For additional help contact a partner or launch a free tender — also discover the role of the host.

     

    Prerequisites

    • Have installed a blank Node.js site on an Infomaniak web hosting.
    • Create an SSH access.
    • Create a database.
    • Have a valid and functional email address (especially the forgotten password features).
    • Stop your Node.JS application before proceeding with the following steps!

     

    Installing Ghost

    To do this:

    1. Log in to the server via SSH (need help?).
    2. Clone and run the installation script (execute these commands one by one):

      git clone https://github.com/Infomaniak/hosting-tools.git
      cd hosting-tools/h3-ghost
      bash ./install.sh

    The script will now:

    • Ask you a few questions (such as the URL of your site, database information, etc.)…
    • Download and configure Ghost automatically…
    • Take a few minutes — be patient!

    Answer the questions carefully using the database details you noted earlier. Do not close the terminal until it has finished!

     

    Configure your hosting (via the Infomaniak panel)

    Once the script is complete, go to your Infomaniak Control Panel:

    1. Click here to access the management of your product on the Infomaniak Manager (need help?).
    2. Click directly on the name assigned to the product concerned.
    3. Click on Manage under Advanced settings:
    4. Click on the Node.js tab to access the settings.
    5. In the execution command field, enter:

      /srv/customer/node_modules/ghost-cli/bin/ghost run
    6. Check that the port number is 3000.
    7. Command case of build : disable it.
    8. Click on the Save button at the bottom of the page:
    9. On the main page, click on the Start button (or Restart if already running).
    10. Observe the logs showing the creation of the database and the startup of the application:

     

    Done! Access your Ghost blog

    Then go to the URL of your site to start:

    1. Open your browser and go to https://yourwebsite.com/ghost (replace yourwebsite.com with your current domain).
    2. The first time:
      1. You will create an administrator account (your login for the blog)…
      2. Then, you can start writing articles!

     

    User / mail configuration

    To create the first user, add /ghost to the URL of your site (for example https://ghost.domain.xyz/ghost) and follow the assistant.

    You can also configure the “member portal support address”: when new members want to sign up, the portal sends the double opt-in confirmation from a specific address. By default, this is the “noreply” address of your domain. To update it, navigate to “Settings”, “Membership”, “Portal Settings”, “Customize”, and “Account Page”:

     

    Resolve a technical incompatibility between Ghost and MariaDB

    There is a compatibility issue between Ghost and the MariaDB database. This results in this type of error:

    [2025-01-01 12:54:28] ERROR "GET /ghost/api/admin/posts/6834625e35802b06f1496305/?formats=mobiledoc%2Clexical&include=tags%2Cauthors%2Cauthors.roles%2Cemail%2Ctiers%2Cnewsletter%2Ccount.conversions%2Ccount.clicks%2Csentiment%2Ccount.positive_feedback%2Ccount.negative_feedback" 400 27ms
    Could not understand request.
    Error ID:
    8f2b0d90-3a30-11f0-a25f-fd9c83e1cf02
    Error Code:
    ER_BAD_FIELD_ERROR
    ----------------------------------------
    Error: select `posts`.*, (with `k` as (select `member_id` from `members_subscription_created_events` where posts.id = members_subscription_created_events.attribution_id union select `member_id` from `members_created_events` where posts.id = members_created_events.attribution_id) select count(*) from `k`) as `count__conversions`, `posts`.*, (select count(distinct `members_click_events`.`member_id`) from `members_click_events` inner join `redirects` on `members_click_events`.`redirect_id` = `redirects`.`id` where posts.id = redirects.post_id) as `count__clicks`, `posts`.*, (select COALESCE(ROUND(AVG(score) * 100), 0) from `members_feedback` where posts.id = members_feedback.post_id) as `count__sentiment`, `posts`.*, (select count(*) from `members_feedback` where posts.id = members_feedback.post_id AND members_feedback.score = 0) as `count__negative_feedback`, `posts`.*, (select sum(`score`) from `members_feedback` where posts.id = members_feedback.post_id) as `count__positive_feedback` from `posts` where (`posts`.`type` = 'post' and `posts`.`status` in ('draft', 'published', 'scheduled', 'sent')) and `posts`.`id` = '2834125e33802b06e1433305' limit 1 - Unknown column 'posts.id' in 'where clause'
    at Child.<anonymous> (/srv/customer/sites/ghost.domain.xyz/versions/5.120.2/core/server/models/base/plugins/crud.js:194:31)
    at Packet.asError (/srv/customer/sites//versions/5.120.2/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/srv/customer/sites//versions/5.120.2/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/srv/customer/sites//versions/5.120.2/node_modules/mysql2/lib/base/connection.js:475:34)
    at PacketParser.onPacket (/srv/customer/sites//versions/5.120.2/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/srv/customer/sites//versions/5.120.2/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/srv/customer/sites//versions/5.120.2/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23)

    Some SQL queries generated by Ghost, using common table expressions (CTEs) nested in scalar subqueries, cause HTTP 400 errors when executed on MariaDB. These queries are valid in MySQL 8, which supports CTEs in scalar subqueries, but not in MariaDB up to version 10.6.

    A patch is available to adapt Ghost's behavior and avoid these errors (refer to the official guide).

    To use this patch, enter this command:

    cd current
    curl -L https://gist.githubusercontent.com/reneluria/8cbbfbc001e542c77d6d5887fbafe5d3/raw/65e0ce31753b4687d0eb67fc030734a35d3ffbad/ghost-post.patch | patch -p0


    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Understanding possible MySQL actions

    This guide presents the various actions that are possible on a MySQL table depending on the rights granted to a user.

     

    Actions on tables according to user rights…

     

    ... on shared web hosting

    Read + Write + Admin

    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, SHOW VIEW

    Read + Write

    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, LOCK TABLE

    Read

    GRANT SELECT

     

    ... on Cloud Server

    Read + Write + Admin

    GRANT ALL

    Read + Write

    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, LOCK TABLES

    Read

    GRANT SELECT


    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Using the Propel abstraction layer

    This guide is for people who want to work with the Propel abstraction layer (which refers to a key component of the Propel library, an ORM (Object-Relational Mapping) for PHP).

     

    Preamble

    • Object-Relational Mapping (ORM) allows linking application objects to the tables of a relational database. Instead of writing SQL, data is manipulated through objects.
    • Propel, a PHP abstraction layer, facilitates the creation, manipulation, and retrieval of objects without worrying about SQL details. It allows for managing relationships, joins, and pagination, while improving code readability and maintainability.

     

    Particularities & limitations

    • Propel is not installed by default as a Pear package; this means that you will have to install it manually on your server.
    • The "Conventionnal Package" version of Propel can be installed; make sure to download and install this specific version.
    • Since Propel command lines (e.g., propel-gen) are not accessible, you will not be able to use them directly.
    • This means that Propel can only be used in production once you have generated the necessary classes and files locally or in another development environment.
    • All manipulations and code generation must be done elsewhere before transferring the resulting files to your production environment.

    Dependencies

    • All the necessary dependencies to use Propel are available, except for Phing.
    • Phing is not required for production, so this should not be an issue.
    • Ensure that all other required dependencies for Propel are installed correctly.


    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Discover the open ports for Node.js

    This guide presents the open ports available for Node.js sites (only) hosted by Infomaniak.

     

    Outbound open ports

    Web

    • HTTP (tcp/80)
    • Alternative HTTP (tcp/8080)
    • HTTPS (tcp/443)
    • FTP Data (tcp/20)
    • FTP Control (tcp/21)

    Mail

    • POP3 (tcp/110)
    • IMAP (tcp/143)
    • SMTP submission (+ STARTTLS) (tcp/587)
    • SMTPS (tcp/465)
    • IMAPS (tcp/993)
    • POP3S (tcp/995)

    DB

    • MySQL (tcp/3306)
    • MongoDB (tcp/27017)
    • PostgreSQL (tcp/5432)
    • Redis (tcp/6379)
    • Redis TLS (tcp/6380)
    • ElasticSearch (tcp/9200)

    Misc

    • SSH (tcp/22)
    • Git pack transfer (tcp/9418)

     

    Open inbound ports

    • HTTP (tcp/80)
    • HTTPS (tcp/443)
    • SSH (tcp/22)


    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Modify the configuration of a Node.js site

    This guide explains how to adjust the configuration of a Node.js site hosted on the Infomaniak infrastructure to adapt the behavior of your application according to its evolution, its dependencies or your technical preferences.

     

    Prerequisites

    • Install a Node.js site on your hosting.
    • Test your modifications locally before applying them to production.
    • Check that your scripts (start, build) are properly defined in your package.json file.
    • If you modify the structure of your project, remember to adjust the execution folder and the associated commands.
    • The listening port defined in the Manager must absolutely correspond to the one used in the application's code.

     

    Access the configuration

    Each site has a dedicated dashboard to control the application (start, stop, restart), access the execution console, manage Node.js versions, configure domains and activate SSL certificates:

    1. Click here to access the management of your product on the Infomaniak Manager (need help?).
    2. Click directly on the name assigned to the relevant product.
    3. You can open the console, stop the project (a maintenance page will be applied) or restart it.
    4. To access the advanced settings, click on Manage under Advanced Settings:
    5. Click on the Node.js tab to access the settings:

     

    Apply the changes

    To do this:

    1. Save the changes from the Manager interface.
    2. Restart your application for the changes to take effect.

    Refer to this other guide if you encounter any issues.

     

    Main commands

     

    Execution folder

    The execution folder indicates the location on the server where build and launch commands will be executed. It should point to the root directory of your application, i.e., where your package.json file is located.

    For example, you can specify for the project root:

    ./

    or if your application is in a subfolder named app:

    ./app

    or if it is located in a backend folder:

    ./backend

     

    Optional build command

    If your Node.js application requires a compilation step before it can be run, enter a build command in the designated field. This command will be executed automatically before the application starts.

    For example, you can specify:

    npm install && npm run build

    or, if you use yarn :

    yarn install && yarn build

    If your project does not require any compilation, this field can be left empty.

     

    Launch command

    The launch command corresponds to the instruction used to start your application. It must be identical to the one you use locally to run the project.

    For example, you can specify:

    node index.js
    npm start

    or

    yarn start

    This command should allow you to directly start the server or the entry point of your application as defined in your development environment.

     

    Listening port

    Your application must listen on a specific port that is defined in the Manager. This port is passed to your application via an environment variable PORT.
    Example in your Node.js code:

    const port = process.env.PORT || 8080;
    app.listen(port, () => {
      console.log(`Application lancée sur le port ${port}`);
    });

    Make sure this port is properly accounted for in your code.

     

    Node.js version

    You can select the Node.js version that your site should use. It is recommended to use a stable and always supported version to ensure the security and compatibility of your application.



    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Add and manage Infomaniak API applications

    This guide concerns OAuth2 applications to connect to your external services via your Infomaniak login ID.

     

    Manage Infomaniak OAuth2 apps

    To do this:

    1. Click here to access the management of your product on the Infomaniak Manager (need help?).
    2. Click the blue Create a new application button:
    3. Choose the type appropriate to your current need and project.
    4. Give a name to the application.
    5. Enter the URL of the application according to the technical information available to you.
    6. Click on the button to create the application:
    7. Copy the information (Client ID, Client secret) to a safe place - they will no longer be accessible after that:


    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Display more results If you cannot find an answer, contact us
    logo infomaniak
    Prices do not include VAT
    facebook
    twitter
    linkedin
    instagram

    Infomaniak

    About Infomaniak The team Infomaniak is recruiting Press space Infomaniak blog All certificates Products and offers Clients' opinions

    Support

    Assistance 7/7 FAQ and guides Premium Support Sales contact API REST Report abuse WHOIS Public Cloud status Service status

    Partnerships

    Become a reseller Affiliate programme Directory of partners Requests for quotes Infomaniak Academy

    Ecology

    Green hosting Certificates & awards

    Follow our development

    The email entered is invalid
    earth icon
    • EN
      • EN
      • DE
      • ES
      • FR
      • IT
    ©2025 Infomaniak - Legal documents - Legal notice - Data Protection - Privacy Policy - Site map - Manage your cookies
    bcorp-logo
    icann-logo
    swiss
    new-iso
    swiss-hosting
    logo infomaniak
    Prices do not include VAT

    Infomaniak

    About Infomaniak The team Infomaniak is recruiting Press and media Infomaniak blog All certificates Products and offers Clients' opinions

    Support

    Assistance 7/7 FAQ and guides Premium Support offer Sales contact API REST Report abuse WHOIS Public Cloud status Service status

    Partnerships

    Become a reseller Affiliate programme Directory of partners Requests for quotes Infomaniak Academy

    Ecology

    Green hosting Certificates & awards

    Follow our development

    The email entered is invalid
    bcorp-logo
    icann-logo
    swiss
    new-iso
    swiss-hosting

    facebook
    twitter
    linkedin
    instagram
    ©2025 Infomaniak
    Contracts - Legal notice - Data Protection - Privacy Policy - Site map - Manage your cookies

    Managers

    earth icon
    • EN
      • EN
      • DE
      • ES
      • FR
      • IT
    Your browser is outdated, security and browsability are no longer guaranteed. We recommend that you update it as soon as possible by clicking here.