Investitori

Base di conoscenze

1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!

Questa guida fornisce indicazioni per creare un'infrastruttura ad alta disponibilità multi-datacenter con Jelastic Cloud.

 

Introduzione

  • Il principio di un'infrastruttura ad alta disponibilità multi-datacenter consiste nel replicare tutti gli elementi necessari (server web, server di database e load balancer) in un altro datacenter per garantire il funzionamento dei siti e delle applicazioni in caso di imprevisti (picchi di carico, guasti hardware, interruzioni di rete, ecc.).
  • I vantaggi di un'infrastruttura ad alta disponibilità multi-datacenter sono numerosi:
    • In caso di imprevisti su un server, un altro server subentra immediatamente; i siti e le applicazioni rimangono accessibili.
    • In caso di interruzioni di un componente di un datacenter, l'infrastruttura replicata nell'altro datacenter subentra immediatamente; i siti e le applicazioni rimangono accessibili.
    • In caso di picchi di carico elevati, il traffico viene distribuito tra le due infrastrutture tramite i load balancer; i siti e le applicazioni rimangono accessibili e veloci.

 

Implementazione di un'infrastruttura ad alta disponibilità con Jelastic Cloud

Per le esigenze di questo esempio, verranno implementati 2 server web con 2 load balancer, ciascuno dei quali sarà ospitato in Svizzera in un data center diverso di Infomaniak.

Prima di procedere, accedi all'interfaccia di amministrazione del tuo server Jelastic Cloud:

  1. Clicca qui per accedere alla gestione del tuo prodotto sul Manager Infomaniak (hai bisogno di aiuto?).
  2. Fare clic su Connetti a Jelastic Cloud:

 

1. Creazione dei server web

Un server web ospita il contenuto dei tuoi siti (i file PHP, le immagini, i PDF, ecc.).

Ecco le azioni da eseguire per creare il tuo primo server:

  1. Fare clic su Nuovo ambiente.
  2. Fare clic sulla scheda PHP.
  3. In App. Server, scegliete ad esempio un server Apache.
  4. Adattate le risorse dell'ambiente in base alle vostre esigenze.
  5. Scegli Genève DC2 come posizione del server.
  6. Rinomina l'ambiente per identificarlo facilmente in seguito (ad esempio DC2-apache).
  7. Fare clic su Crea.

Creare quindi il secondo server web in un altro data center:

  1. Fare clic su Nuovo ambiente.
  2. Fare clic sulla scheda PHP.
  3. In App. Server, scegliete ad esempio un server Apache.
  4. Adattate le risorse dell'ambiente in base alle vostre esigenze.
  5. Scegli Genève DC3 come posizione del server.
  6. Rinomina l'ambiente per identificarlo facilmente in seguito (ad esempio DC3-apache).
  7. Fare clic su Crea.

 

2. Creazione dei bilanciatori di carico

Un load balancer consente di distribuire il carico e il traffico dei tuoi siti web tra i tuoi server.

Di seguito sono riportate le azioni da eseguire per creare il primo server:

  1. Fare clic su Nuovo ambiente.
  2. Fare clic sulla scheda PHP.
  3. In Bilanciamento del carico, scegliete ad esempio un server NGINX.
  4. Adattate le risorse dell'ambiente in base alle vostre esigenze.
  5. Scegli Genève DC2 come posizione del server.
  6. Rinomina l'ambiente per identificarlo facilmente in seguito (ad esempio DC2-nginx).
  7. Fare clic su Crea.

Creare quindi il secondo load balancer in un altro data center:

  1. Fare clic su Nuovo ambiente.
  2. Fare clic sulla scheda PHP.
  3. In Bilanciamento del carico, scegliete ad esempio un server NGINX.
  4. Adattate le risorse dell'ambiente in base alle vostre esigenze.
  5. Scegli Genève DC3 come posizione del server.
  6. Rinomina l'ambiente per identificarlo facilmente in seguito (ad esempio DC3-nginx).
  7. Fare clic su Crea.

 

3. Configurazione dei load balancer e del nome di dominio

Ora non resta che indicare ai load balancer su quali server web devono distribuire il traffico.

Iniziate creando il file load-balancer.conf su entrambi i load balancer:

  1. Accedere al server DC2-nginx tramite SSH, facendo clic sul pulsante Web SSH nell'ambiente.
  2. Aprire il file load-balancer.conf: nano /etc/nginx/conf.d/load-balancer.conf.
  3. Adatta il codice del file con l'URL dei tuoi server web:
    • http {
      upstream backend {
      server apache-dc2.jcloud-ver-jpc.ik-server.com;
      server apache-dc3.jcloud.ik-server.com;
      }
      server {
      listen 80;
      location / {
      proxy_pass {{URL_4}}
      }
      }
      }
  4. Ripeti questi 3 passaggi per il server DC3-nginx.

Modificare quindi il file di configurazione dei load balancer:

  1. Connettersi tramite SSH al server DC2-nginx facendo clic sul pulsante Web SSH dell'ambiente.
  2. Crea il seguente file di configurazione: nano /etc/nginx/nginx.conf.
  3. Modifica l'URL del file di configurazione del server:
    • user nginx;
      worker_processes auto;
      worker_rlimit_nofile 2048;
      load_module modules/ngx_stream_module.so;
      #load_module modules/ngx_http_modsecurity_module.so;
      error_log /var/log/nginx/error_log info;
      events {
      worker_connections 2048;
      use epoll;
      }
      include /etc/nginx/conf.d/load-balancer.conf;
  4. Riavviare il servizio NGINX: sudo /etc/init.d/nginx restart.
  5. Ripetere questi quattro passaggi per il server DC3-nginx.

 

Ora è necessario indicare a quale server indirizzare il traffico del tuo dominio.

In precedenza,assegnate un indirizzo IP pubblico ai vostri load balancer :

  1. Distribuite il nodo server DC2-nginx.
  2. Passa il mouse sulla riga IP pubblico e fai clic sul + che compare a destra.
  3. Aggiungi un IPv4 pubblico.
  4. Ripetere questi 3 passaggi per il server DC3-nginx.

A questo punto, non resta che crea due record A nella zona DNS del tuo dominio con l'IP pubblico dei tuoi due load balancer.

Per garantire che le modifiche vengano applicate rapidamente, si consiglia di configurare i record A con un TTL di 5 minuti.

In questo esempio, il dominio reindirizza i visitatori ai load balancer, che a loro volta reindirizzano il traffico ai server web.

 

4. Test dell'infrastruttura ad alta disponibilità

Per verificare il corretto funzionamento della tua infrastruttura, inserisci il tuo nome di dominio in un browser come Brave, Chrome, Edge, Firefox, Opera, Safari… e prova a disattivare uno degli elementi della tua infrastruttura (uno dei due load balancer, uno dei due server web). Se tutto funziona correttamente, dovresti comunque essere in grado di accedere ai contenuti ospitati su uno dei due server web.

Attenzione: la replica dei dati tra i server web o i server di database deve essere configurata da te.


Questa FAQ è stata utile?

Questa guida spiega come aggiungere indirizzi IP alla whitelist di un sito web su Infomaniak.

 

Introduzione

  • Consentire l'accesso da determinati indirizzi IP a xmlrpc.php permette di accedere agli URL che, per impostazione predefinita, sono bloccati perché considerati a rischio.
  • Questo tipo di blocco è attivo su tutti i server più recenti.
  • Per quanto riguarda WordPress, la sua funzionalità XML-RPC è disponibile per impostazione predefinita solo tramite i servizi Infomaniak e JetPack per motivi di sicurezza.

 

Aggiungere indirizzi IP alla whitelist di xmlrpc.php

Per accedere alla gestione del sito:

  1. Clicca qui per accedere alla gestione degli hosting e dei siti nel tuo pannello di controllo Infomaniak (❓: guida).
  2. Fare clic sul nome del sito interessato.
  3. Fare clic su Gestisci le impostazioni avanzate:
  4. Fare clic sulla scheda PHP / Apache:
  5. Compilare la riga corrispondente.
  6. Fare clic sul pulsante Salva in fondo alla pagina:

Questa FAQ è stata utile?

Questa guida ti aiuta a configurare l'intestazione "Access-Control-Allow-Origin", un header HTTP che specifica quale origine (dominio, protocollo e porta) può accedere alle risorse su un server. Questa intestazione viene utilizzata per controllare l'accesso cross-origin (CORS) da un'applicazione web.

 

Elenco dei domini autorizzati

È possibile aggiungere l'origine di una richiesta all'elenco dei domini autorizzati ad accedere alle risorse del server aggiungendola ai valori dell'intestazione Access-Control-Allow-Origin.

Per consentire, ad esempio, al sito https://domain.xyz di accedere alle risorse tramite CORS, l'intestazione deve essere configurata come segue:

Access-Control-Allow-Origin: {{URL_1}}

È possibile configurarlo tramite la funzione header() di PHP, prendendo spunto, ad esempio, da questa guida.

Se è necessario che questo header venga applicato ovunque, è possibile utilizzare un auto-prepend.


Questa FAQ è stata utile?

Questa guida illustra le regole specifiche da seguire durante la creazione di una password utente con mysqli_connect() che contenga il carattere “dollaro” $ sulle piattaforme Infomaniak.

 

Introduzione

  • Se durante l'utilizzo di mysqli_connect() si riceve il messaggio di errore "Accesso negato per l'utente" e la password dell'utente del database contiene il carattere $, il problema potrebbe essere dovuto al modo in cui le stringhe vengono gestite in PHP.
  • Il problema potrebbe verificarsi anche con script di posta.

 

Regole da rispettare

Quando viene utilizzato il carattere speciale $ in una password utente e questo è seguito da qualsiasi altro carattere diverso da un numero, il nome della variabile non è valido e la sostituzione non viene eseguita correttamente.

Ecco alcune soluzioni per risolvere il problema:

  • Inserisci la password tra virgolette singole: '$******'
  • Assicurati che un numero segua immediatamente il simbolo del dollaro: "$2*****"
  • Utilizza una barra rovesciata per "escapare" il simbolo del dollaro nella password: “\$****”

Questa FAQ è stata utile?

Questa guida presenta Jelastic Cloud, un prodotto nato dalla stretta collaborazione tra Infomaniak e l'azienda Jelastic (Virtuozzo).

 

Infomaniak

Infomaniak garantisce l'infrastruttura, il supporto, le prestazioni, la sicurezza e l'affidabilità della soluzione. La sua infrastruttura assicura sempre la disponibilità e la fluidità delle applicazioni, gestendo i picchi di traffico e riducendo automaticamente il consumo di risorse durante i periodi di minore attività. Questa flessibilità ottimizza il rapporto costi/prestazioni, addebitando solo le risorse effettivamente utilizzate.

Con questo servizio Cloud, le risorse informatiche si adattano alle fluttuazioni della domanda, mantenendo al contempo il controllo del budget. Tutti i dati sono gestiti in Svizzera, nei data center di Infomaniak, con un supporto disponibile in cinque lingue.

 

Jelastic

Jelastic si occupa della manutenzione, dello sviluppo software e fornisce la parte software del prodotto.

Fondata nel 2011, Jelastic automatizza la creazione, il ridimensionamento, il clustering e gli aggiornamenti di sicurezza delle applicazioni tradizionali e native nel cloud. Supporta inoltre gli ambienti Java, PHP, Ruby, Node.js, Python, .NET, Go, nonché il cluster Docker.


Questa FAQ è stata utile?

Questa guida illustra in dettaglio i protocolli di trasferimento file supportati sugli Hosting Web e Server Cloud di Infomaniak durante la connessione ai server ProFTPD.

 

Introduzione

  • Con un piano di hosting Starter (pagina web di base), è possibile solo una connessione FTP sulla porta 21 (senza SSL/TLS).
  • Durante la creazione di un sito tramite un piano di hosting Apache / PHP, è possibile accedere ai file tramite diversi protocolli (FTP, SFTP, SSH).
  • Con un sito Node.js, è possibile accedere all'ambiente solo tramite SSH / SFTP.

 

FTP (File Transfer Protocol)

Sono supportate le connessioni FTP in modalità "attiva" e "passiva" (è consigliabile alternare tra le due modalità per risolvere eventuali problemi).

Infomaniak apre i porti passivi sul proprio server [PassivePorts 42000 44000], ma solo per le connessioni al proprio server FTP. La modalità FTP passiva implica l'utilizzo di porte remote definite dal server remoto, nonché di porte locali che possono variare a seconda del software/client FTP utilizzato.

La modalità passiva si rivela utile principalmente quando il software/client FTP si trova dietro un firewall o un router NAT che blocca le connessioni FTP attive. Tuttavia, nell'infrastruttura Infomaniak sono consentite le connessioni FTP attive, il che significa che il ricorso alla modalità passiva non è generalmente necessario.

Per quanto riguarda PHP, non è possibile, di default, gestire questa configurazione in modo centralizzato. Di conseguenza, non è praticabile per Infomaniak aprire tutte le porte per supportare tutte le configurazioni remote, poiché ciò non sarebbe né pratico né sicuro.

In generale, l'infrastruttura non supporta completamente le connessioni FTP in uscita in modalità passiva. Per un'esperienza di trasferimento file più fluida, si consiglia di utilizzare la modalità FTP attiva o di esplorare tecnologie più moderne come SFTP (vedi di seguito).

 

SFTP (SSH File Transfer Protocol)

La creazione di connessioni SFTP garantisce un elevato livello di sicurezza nei trasferimenti di file. Assicurati di aver abilitato SSH nel tuo software/client SFTP e utilizza la porta 22 per la connessione: sftp://*****.

 

FTPES (FTP sicuro con TLS/SSL)

Utilizza FTPES per trasferimenti di file sicuri tramite la porta 21 e la crittografia SSL/TLS. Con il software Filezilla, ad esempio, seleziona "Connessione FTP esplicita su TLS" per configurare il tuo software/client FTPES: ftpes://*****.

 

FTPaccess

È disponibile l'accesso alla configurazione FTP.

 

Cosa non è supportato

Utente pubblico/anonimo

Non è consentito accedere come utente pubblico o anonimo. È necessario disporre di un account utente valido per accedere al proprio spazio di hosting.

FTPs (FTP sicuro su una porta personalizzata)

Il protocollo FTPs non è supportato, il che significa che la porta 2121 non è aperta per questo tipo di connessione.


Questa FAQ è stata utile?

Questa guida spiega come prevenire gli attacchi informatici e come evitare che il sito web che gestisci venga violato.

Utenti WordPress: consulta questo articolo dedicato.

 

Il ruolo del provider di hosting

Il compito di Infomaniak è fornire un servizio di hosting di qualità, pertanto è fondamentale rispondere in modo estremamente rapido alle diverse e variegate tipologie di attacchi a cui può essere sottoposto qualsiasi operatore Internet. Infomaniak fa quindi tutto il possibile per adottare il maggior numero di precauzioni contro gli attacchi informatici, in particolare mantenendo aggiornate le diverse versioni delle tecnologie utilizzate.

In caso di un attacco informatico accertato, qualora sia possibile risalire all'autore e la compromissione della macchina sia dovuta a una falla di sicurezza imputabile a Infomaniak, e l'integrità dei server sia compromessa, Infomaniak si farà carico della gestione della situazione.

 

Il ruolo del titolare del sito e del webmaster

Se l'hacking del tuo sito è dovuto a una tua negligenza (uno script non aggiornato, una patch di sicurezza non applicata, ecc.), Infomaniak ti contatterà per avvisarti di un problema che dovrà essere risolto rapidamente. Alcune organizzazioni, come Saferinternet, potrebbero inoltre sospendere il nome di dominio, disattivando così il sito web e anche la posta elettronica.

Infomaniak non può contrastare vulnerabilità legate a un bug nel tuo codice PHP o in altri linguaggi. Se l'hacking non viene rilevato, in genere noterai l'intrusione abbastanza rapidamente attraverso elementi sospetti nelle tue pagine o tramite la ricezione di numerose e-mail di errore.

È quindi vostra responsabilità occuparvi dell'evoluzione del vostro sito nel tempo e assicurarvi che non venga abbandonato, magari rivolgendovi a un webmaster professionista.

 

Le raccomandazioni di Infomaniak

  1. Aggiorna regolarmente tutte le tue applicazioni web (WordPress, Joomla, Drupal, ownCloud, ecc.).
  2. Mantieni aggiornata la versione PHP del tuo sito sui server Infomaniak.
  3. Mantieni il tuo sito aggiornato migrando verso le nuove offerte quando ti viene proposto.
  4. ‍Aggiungi un sistema di protezione ai tuoi moduli di contatto (captcha, ecc.) e agli eventuali strumenti di "raccomandazione agli amici" (tell-a-friend...).
  5. Esegui regolarmente una scansione antivirus dell'hosting.
  6. Monitora lo strumento di rilevamento delle vulnerabilità.
  7. Rimuovi tutto ciò che non hai sviluppato tu stesso e per cui l'autore non ha apportato aggiornamenti/correzioni da diversi mesi.
  8. Esegui regolarmente un backup del tuo sito (consulta questa guida se utilizzi WordPress) quando tutto funziona correttamente e conservalo in un luogo sicuro (poiché i backup automatici vengono conservati solo per pochi giorni e a volte questo lasso di tempo non è sufficiente per poter tornare indietro dopo aver rilevato un'intrusione).
  9. Consultare ibarry.ch.

 

In caso di problemi...

  1. Modifica le password delle tue applicazioni web, dei tuoi account FTP e dei tuoi database, dopo aver verificato che non ci siano virus sul tuo computer.
  2. Ripristina un backup ma aggiorna immediatamente tutto ciò che può essere aggiornato una volta completato il ripristino.
  3. Se riscontri problemi con un software di terze parti, contatta direttamente il suo sviluppatore o un partner e consulta la politica di assistenza e l'articolo 11.9 delle Condizioni generali d'uso di Infomaniak.

Consulta queste ulteriori raccomandazioni!


Questa FAQ è stata utile?

Questa guida è rivolta agli sviluppatori che desiderano utilizzare l'ORM Propel su un servizio di hosting in cui l'accesso alla riga di comando è limitato.

 

Introduzione

  • L'ORM consente di collegare gli oggetti di un'applicazione alle tabelle di un database. I dati vengono gestiti tramite oggetti PHP, anziché scrivendo codice SQL direttamente.
  • Propel è il livello di astrazione che gestisce queste interazioni (relazioni, join, paginazione) per semplificare la manutenzione del codice.

 

Caratteristiche e limitazioni

  • Propel non è preinstallato tramite Pear.
    • È necessario installarlo manualmente nel progetto.
    • È indispensabile scaricare la versione "Conventional Package" di Propel.
  • I comandi CLI (come propel-gen) non possono essere eseguiti sul server.
    • Di conseguenza, Propel può essere utilizzato in modalità "Runtime" solo in ambiente di produzione. La generazione delle classi (build) deve essere eseguita localmente.
    • Il flusso di lavoro prevede la generazione del codice in un ambiente di sviluppo, quindi il trasferimento dei file risultanti sul server.
  • Dipendenze:
    • Tutte le librerie necessarie per Propel sono disponibili, ad eccezione di Phing.
    • L'assenza di Phing non influisce sull'ambiente di produzione, poiché questo strumento è richiesto solo durante la fase di generazione locale.

Questa FAQ è stata utile?

Questa guida presenta diversi esempi di utilizzo di Varnish su Server Cloud Infomaniak.

 

Introduzione

 

Configurazione di Varnish

Una volta installato, la configurazione di Varnish si basa su regole precise di memorizzazione nella cache e di svuotamento della cache. Assicurati di limitare l'accesso per evitare che entità non autorizzate possano svuotare la tua cache.

Ecco un esempio di file di configurazione che raccoglie i casi d'uso più frequenti:

vcl 4.0;

# Default backend configuration
backend default {
    .host = "127.0.0.80";  # Backend IP address
    .port = "80";           # Backend port
}

# Access Control List (ACL) for purge authorization
acl purge {
    "localhost";            # Local access
    "1.2.3.4";              # Trusted home IP
    "42.42.42.0"/24;        # Trusted company range
    ! "42.42.42.7";         # Specific IP exclusion (e.g., problematic user)
}

# Handle incoming requests
sub vcl_recv {
    # Handle PURGE requests
    if (req.method == "PURGE") {
        # Check if client IP is authorized
        if (!client.ip ~ purge) {
            return (synth(405, "IP not authorized for PURGE requests."));
        }
        return (purge);
    }

    # Custom PURGEALL for image directory
    if (req.method == "PURGEALL" && req.url == "/images") {
        if (!client.ip ~ purge) {
            return (synth(405, "IP not authorized for PURGEALL requests."));
        }
        # Invalidate all image-related objects in cache
        ban("req.url ~ \.(jpg|png|gif|svg)$");
        return (synth(200, "Images purged."));
    }

    # Bypass cache for authorized requests (e.g., admin panels)
    if (req.http.Authorization) {
        return (pass);
    }
}

# Handle backend responses before caching
sub vcl_backend_response {
    # Set TTL for images to 1 day
    if (beresp.http.content-type ~ "image") {
        set beresp.ttl = 1d;
    }

    # Respect backend's "uncacheable" instruction
    if (beresp.http.uncacheable) {
        set beresp.uncacheable = true;
    }
}

 

Eliminazione tramite l'interfaccia CLI

Una volta che le regole sono attive, è possibile testare l'eliminazione della cache del sito (ad esempio, "domain.xyz") utilizzando lo strumento curl:

# Purge the homepage
$ curl -X PURGE {{URL_5}}

# Expected Varnish response
<!DOCTYPE html>
<html>
<head>
    <title>200 Purged</title>
</head>
<body>
    <h1>Success 200: Purge completed</h1>
    <p>The page has been successfully purged.</p>
    <h3>Guru Meditation:</h3>
    <p>XID: 2</p>
    <hr>
    <p>Varnish Cache Server</p>
</body>
</html>

Per invalidare una specifica URL, è sufficiente modificare il percorso della richiesta:

# Purge a specific file
$ curl -X PURGE {{URL_6}}

# Expected Varnish response
<!DOCTYPE html>
<html>
<head>
    <title>200 Purged</title>
</head>
<body>
    <h1>Success 200: Purge completed</h1>
    <p>The file has been successfully purged.</p>
    <h3>Guru Meditation:</h3>
    <p>XID: 4</p>
    <hr>
    <p>Varnish Cache Server</p>
</body>
</html>

Oppure, per avviare l'invalidazione di gruppo delle immagini definite nel VCL:

# Execute PURGEALL for images
$ curl -X PURGEALL {{URL_7}}

# Expected Varnish response
<!DOCTYPE html>
<html>
<head>
    <title>200 Purged images</title>
</head>
<body>
    <h1>Success 200: Images purged</h1>
    <p>All images have been successfully purged.</p>
    <h3>Guru Meditation:</h3>
    <p>XID: 32770</p>
    <hr>
    <p>Varnish Cache Server</p>
</body>
</html>

 

Svuotamento della cache da un CMS (PHP)

La gestione della cache può essere effettuata anche dinamicamente tramite il backend. Nella configurazione precedente, è stato aggiunto un controllo sull'intestazione Uncacheable. Il CMS può inviare questa intestazione per forzare Varnish a non memorizzare una risposta.

Ecco come inviare una richiesta di svuotamento della cache tramite PHP:

<?php
// Initialize cURL for a specific URL
if ($curl = curl_init("{{URL_8}}")) {
    curl_setopt_array($curl, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_CUSTOMREQUEST => "PURGE",
        CURLOPT_HTTPHEADER => [
            "Host: {$_SERVER['HTTP_HOST']}" // Match the target host
        ]
    ]);

    curl_exec($curl);
    
    // Check if the purge was successful (HTTP 200)
    if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == 200) {
        echo "Cache purged!";
    }
    curl_close($curl);
}
?>

Questa FAQ è stata utile?

Questa guida riguarda Jelastic Cloud, che consente di creare con un clic container preconfigurati per Java, PHP, Ruby, Node.js, Python e Go. È anche possibile distribuire qualsiasi container Docker personalizzato nel cloud.

 

Introduzione

  • Nel contesto di Jelastic, un contenitore o nodo si riferisce a un'unità di isolamento ed esecuzione in cui le applicazioni vengono distribuite ed eseguite, beneficiando al contempo delle risorse fornite dal nodo su cui sono installate.
  • Questo consente una gestione efficiente delle applicazioni e un'ottimizzazione delle risorse in base alle esigenze del progetto.

 

Contenitore

In Jelastic, un contenitore è un ambiente di esecuzione virtuale che isola le applicazioni e le loro dipendenze dal resto del sistema. Può trattarsi di un contenitore Docker o di un altro tipo di contenitore supportato da Jelastic.

Ogni container agisce come un'unità distinta, il che significa che è possibile eseguire più applicazioni in diversi container senza che queste interferiscano tra loro.

 

Nodo

Un nodo è un'istanza di server virtuale o fisico su cui è possibile distribuire uno o più container. In altre parole, un nodo è una macchina virtuale o fisica che fornisce le risorse (come CPU, memoria, spazio di archiviazione, ecc.) necessarie per eseguire le applicazioni.

Jelastic distribuisce automaticamente i container su diversi nodi in base al carico e alle risorse disponibili, al fine di garantire prestazioni ottimali e un'elevata disponibilità.


Questa FAQ è stata utile?

Questa guida fornisce una soluzione a un problema che si verifica con il CMS Prestashop v9.x, relativo alla generazione di fatture PDF dal pannello di amministrazione (Back Office), in particolare quando viene utilizzata la lingua francese.

 

Il problema

Quando si tenta di visualizzare o scaricare una fattura PDF per un ordine in lingua francese, PrestaShop (nella versione 9.x) restituisce un errore 500. Questo malfunzionamento è legato a un'incompatibilità tra la libreria di generazione di PDF (TCPDF) che utilizza il font predefinito (helvetica) e le configurazioni di hosting.

 

Definire un font compatibile

La soluzione consiste nell'imporre l'utilizzo del font freesans, più compatibile, tramite un file di configurazione personalizzato.

Si consiglia vivamente di creare un file defines_custom.inc.php. Questo metodo è il più sicuro, in quanto garantisce che la correzione non venga persa durante gli aggiornamenti del core di PrestaShop.

A tal fine:

  1. Acceda alla sua installazione di PrestaShop 9.x tramite FTP o il Gestore file.
  2. Naviga fino alla directory /config/.
  3. Crea un nuovo file denominato defines_custom.inc.php.
  4. Modifica il file defines_custom.inc.php e aggiungi il seguente contenuto:

    <?php
    /**
     * Avoid error PDF, force font 'freesans'.
     */
    define('PDF_FONT_NAME_MAIN', 'freesans');
  5. Salva il file e verifica la generazione di una fattura in francese.

Questa FAQ è stata utile?

Questa guida spiega come rendere pubblico uno dei tuoi calendari tramite l'app web Calendar di Infomaniak (servizio online ksuite.infomaniak.com/calendar).

 

Introduzione

  • Riceverai un URL specifico per il tuo calendario, in formato .ics, che applicazioni come Calendar (ex iCal Apple), Calendrier (ex iCalendar Microsoft), Thunderbird (ex Lightning Mozilla) o Google Agenda potranno riconoscere per visualizzare il tuo calendario:
  • I dati contenuti nel calendario condiviso non saranno più privati, ma saranno disponibili in sola lettura per gli utenti che si "iscrivono" al calendario.
  • La frequenza degli aggiornamenti periodici effettuati dall'applicazione che utilizza l'URL del calendario deve essere definita all'interno dell'applicazione stessa.
  • È possibile utilizzare script PHP (non forniti) per analizzare tali file, consentendo, ad esempio, l'inclusione di eventi su un sito web.
  • Consulta questa guida per configurare la sincronizzazione dei tuoi calendari, oppure questa guida per condividere un calendario con i tuoi collaboratori, assegnando diversi livelli di autorizzazione.

 

Abilitare la condivisione pubblica di un calendario Infomaniak

Per condividere un calendario pubblicamente:

  1. Clicca qui per accedere all'app web Calendar di Infomaniak (servizio online ksuite.infomaniak.com/calendar).
  2. Fare clic sul menu azioni ⋮ a destra di un calendario.
  3. Fare clic su Condividi calendario.
  4. Attiva l'interruttore per abilitare la condivisione pubblica.
  5. Fai clic sull'icona per copiare l'indirizzo negli appunti:
    • È sempre possibile revocare l'accesso pubblico da questa pagina di condivisione (vedi punto 4 sopra):

Questa FAQ è stata utile?

Questa guida spiega come utilizzare l'intestazione HTTP X-Frame-Options per limitare la visualizzazione delle tue pagine all'interno di frame (<frame> e <iframe>) e contribuire alla protezione contro gli attacchi di clickjacking (dirottamento dei clic).

Il valore ALLOW-FROM non è più supportato dai browser moderni. Se desideri consentire uno o più domini specifici, utilizza invece l'intestazione Content-Security-Policy (CSP) con la direttiva frame-ancestors.

 

Valori dell'intestazione X-Frame-Options

L'intestazione HTTP X-Frame-Options indica al browser se una pagina può essere visualizzata all'interno di un tag <frame> o <iframe>.

  • DENY: impedisce completamente la visualizzazione della pagina all'interno di un frame, anche se proveniente dal proprio sito.
  • SAMEORIGIN: consente la visualizzazione solo quando la pagina è incorporata dallo stesso dominio.

 

Impostare l'intestazione

Per applicare questa protezione all'intero sito, aggiungi la seguente direttiva nel file .htaccess:

Header set X-Frame-Options "SAMEORIGIN"

È anche possibile inviare questo header da uno script PHP:


Consentire un dominio specifico con Content-Security-Policy

 

Autoriser un domaine spécifique avec Content-Security-Policy

Per consentire a un dominio esterno di incorporare i tuoi contenuti in un iframe, utilizza l'intestazione Content-Security-Policy con la direttiva frame-ancestors.

Esempio:

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

Questa regola consente al tuo sito ('self') e a https://domain.xyz di incorporare le tue pagine all'interno di un iframe.


Questa FAQ è stata utile?

Questa guida spiega come utilizzare il gestore di file Web FTP, che consente di gestire in modo semplice e rapido il contenuto dei tuoi Hosting Web.

 

Introduzione

  • Il servizio online Web FTP / FTP Manager non richiede un accesso specifico, a condizione che si disponga dei diritti di gestione su un hosting presente nel Manager Infomaniak e che si sia effettuato l'accesso.
    • Non è quindi necessario possedere un account FTP e la relativa password, è sufficiente la password dell'account Infomaniak.
  • Questo consente di:
    • creare file,
    • navigare nelle directory,
    • gestire i file esistenti (copiare, rinominare, spostare, eliminare, decomprimere…),
    • modificare e visualizzare i file di testo, PHP e HTML di dimensioni inferiori a 1 MB,
    • trasferire file di dimensioni inferiori a 50 MB tra il computer e il server:
      • anche tramite la funzione di trascinamento dalla finestra del computer alla finestra Web FTP:
      • per superare questo limite e per funzionalità avanzate come il trasferimento in background, la ripresa dei trasferimenti dopo un'interruzione, la limitazione della velocità, ecc., utilizzare un software/client FTP (❓: aiuto).

 

Accedere al server tramite Web FTP

Per accedere rapidamente al server del sito tramite FTP o SSH:

  1. Clicca qui per accedere alla gestione degli hosting e dei siti nel tuo pannello di controllo Infomaniak (❓: guida).
  2. Clicca sul nome dell'hosting desiderato.
  3. Fare clic su FTP / SSH nel menu laterale sinistro.
  4. Fare clic sui pulsanti Web FTP o Console SSH disponibili:

Questa FAQ è stata utile?

Questa guida presenta alcuni suggerimenti per migliorare e ridurre i tempi di risposta del tuo Hosting Web Infomaniak.

 

Introduzione

  • TTFB, o *Time To First Byte*, è un'unità di misura utilizzata per valutare la velocità di risposta di un server web.
  • Il TTFB misura il tempo che intercorre tra una richiesta HTTP proveniente da un utente o da un browser e la ricezione del primo byte della pagina web richiesta.
  • Questo lasso di tempo è particolarmente importante. Può essere uno dei criteri SEO presi in considerazione dai motori di ricerca come Google.

 

Suggerimenti per migliorare il TTFB

Per velocizzare il sito e ottenere un valore TTFB migliore:

  • Utilizza una rete di distribuzione dei contenuti (CDN).
  • Ottimizza il codice del sito.
  • Ottimizza le query del database.
  • Limita le richieste HTTP.
  • Incorpora CSS e JavaScript nelle tue pagine HTML per evitare di richiamare risorse esterne.
  • Utilizza un sistema di cache RFPL (*Response First, Process Later*).

Per maggiori informazioni, consulta l'articolo di Criticalcase (in inglese).

 

Verificare la velocità di risposta del server

In caso di dubbi sulla velocità di risposta del server, è possibile creare un file index2.html che verrà salvato allo stesso livello del file index.html (o .php), e quindi eseguire un test di ottimizzazione (ad esempio domain.xyz/index2.html) senza che il sito/CMS principale venga preso in considerazione.

Se il tempo di risposta è normale, significa che i rallentamenti dipendono dal sito e non dal server.

 

Per approfondire

Consulta le seguenti risorse:


Questa FAQ è stata utile?

Questa guida consente di risolvere un errore di tipo "Query non valida: il server MySQL non risponde".

 

Introduzione

 

Soluzioni

Per evitare l'errore "Il server MySQL non è più disponibile", ecco diverse possibili soluzioni:

Verifica e riconnessione automatica

Prima di eseguire una query, si consiglia di verificare se la connessione MySQL è ancora attiva. Se la connessione è stata interrotta, è possibile ripristinarla automaticamente prima di procedere con la query. Ecco un esempio in PHP:

if (!mysqli_ping($connexion)) {
mysqli_close($connexion);
$connexion = mysqli_connect($host, $user, $password, $database);
}

La funzione mysqli_ping() verifica se la connessione è ancora valida. In caso contrario, lo script chiude la connessione e ne apre una nuova.

Invio periodico di un "ping"

Un altro metodo consiste nell'eseguire uno script che invia periodicamente un "ping" al database per mantenere attiva la connessione. Ad esempio, è possibile creare un'attività pianificata (cron job) che invia una richiesta leggera, come SELECT 1;, a intervalli regolari.

Regolazione dei parametri MySQL (Server Cloud)

Con un Server Cloud, è possibile aumentare i valori delle variabili wait_timeout e interactive_timeout dal menu MySQL del server per prolungare la durata della connessione prima che venga chiusa.


Questa FAQ è stata utile?

Questa guida spiega come visualizzare e scaricare i log di Apache dell’Hosting Web, utili in particolare per analizzare errori PHP o diagnosticare determinati comportamenti delle applicazioni.

 

Introduzione

  • I log di accesso e di errore vengono conservati per almeno 7 giorni.
  • Una volta scaduto il periodo di conservazione, le voci più vecchie non possono essere ripristinate, nemmeno su richiesta.
  • È inoltre possibile trovare questi file direttamente sul server tramite SSH/FTP nella cartella ik-logs, nella directory principale del tuo spazio web.

 

Accedere ai log di accesso e agli errori

Per visualizzare questi log:

  1. Clicca qui per accedere alla gestione degli hosting e dei siti nel tuo pannello di controllo Infomaniak (❓: guida).
  2. Fare clic sul nome del sito web in questione.
  3. Fare clic su Avanzate nel pannello laterale sinistro.
  4. Fare clic su Log nel pannello laterale sinistro.
  5. Fare clic su Errori o Accessi per visualizzare il registro degli errori o il registro degli accessi.
  6. Se necessario, seleziona un periodo.
  7. Fai clic sull'icona per visualizzare i dettagli.
  8. Fare clic su Invia per e-mail per ricevere immediatamente tutte le voci tramite e-mail all'indirizzo utente.
  9. Fare clic per esportare i dati in formato .log:

 

Identificare gli indirizzi IP più attivi nei log di accesso

Per farlo, connettetevi al server tramite SSH (avete bisogno di aiuto?).

La riga di comando da eseguire tramite SSH è la seguente:

cat ik-logs/access.log | awk '{ print $2}' | sort -n | uniq -c | sort -n | tail -n 20

Questa FAQ è stata utile?

Questa guida spiega come trasferire su Infomaniak i dati web (sito, FTP, database) attualmente ospitati altrove, ad esempio presso un concorrente.

 

Prerequisiti

  • Avere o acquistare un servizio di hosting web Infomaniak (❓: guida).
  • Aggiungere un sito web vuoto all'hosting Infomaniak (❓: guida).

 

Guide specifiche

Fare clic sul collegamento corrispondente ai dati da migrare:

 

Guide per altri provider di hosting

Per recuperare qualsiasi altro sito, seguire la procedura indicata di seguito.

 

1. Recuperare i dati del sito web

a. File HTML, PHP, ecc. tramite FTP

Per recuperare i dati dal tuo sito web sul disco rigido, è necessario connettersi tramite FTP e, a tal fine, occorre l'indirizzo del server fornito dal provider di hosting, il nome utente e la password FTP.

  1. Apri un software/client FTP come Filezilla.
  2. Accedere al server utilizzando le credenziali FTP.
  3. Scaricare i file relativi al proprio sito web sul disco rigido.

b. Esportazione dei database MySQL

A meno che il tuo sito non sia statico e realizzato semplicemente in HTML, un sito dinamico richiede quasi sempre dei database che devono essere esportati tramite la loro interfaccia di gestione, generalmente PHPmyAdmin:

  1. Accedi al pannello di controllo del tuo attuale fornitore di servizi tramite un browser come Brave, Chrome, Edge, Firefox, Opera, Safari…
  2. Accedi a PHPMyAdmin.
  3. Accedi al server utilizzando le credenziali MySQL.
  4. Fai clic su Esporta per configurare l'esportazione del database e quindi scarica i tuoi dati SQL sul disco rigido.

 

2. Inviare questi dati Web su Infomaniak

a. File HTML, PHP, ecc. tramite FTP

Accedi al sito di Infomaniak e attiva la sezione FTP:

  1. Clicca qui per accedere alla gestione degli hosting e dei siti nel tuo pannello di controllo Infomaniak (❓: guida).
  2. Fare clic sul nome dell'hosting in questione.
  3. Fare clic su FTP / SSH nel menu laterale sinistro.
  4. Fare clic sul pulsante Aggiungi per creare un nuovo account FTP/SSH (❓: guida).
  5. Aprire un software/client FTP come Filezilla.
  6. Accedere al server Infomaniak utilizzando le credenziali FTP ottenute al punto 4.
  7. Trasferire i file dal disco rigido (ottenuti al punto 1.a.3) al server, nella cartella corrispondente al proprio sito web su Infomaniak.

b. Importazione di database MySQL

Accedi all’hosting web di Infomaniak e attiva la sezione MySQL:

  1. Clicca qui per accedere alla gestione degli hosting e dei siti nel tuo pannello di controllo Infomaniak (❓: guida).
  2. Clicca sul nome dell'hosting desiderato.
  3. Fare clic su Database nel menu laterale sinistro.
  4. Fare clic sul pulsante Aggiungi.
  5. Inserisci un nome per il database dopo il prefisso già indicato.
  6. Fai clic sulla casella per creare un utente associato.
  7. Inserisci un nome utente dopo il prefisso già indicato.
  8. Inserisci una password.
  9. Fare clic su Conferma.
  10. Fare clic sul pulsante blu Importa.
  11. Fare clic su Seleziona un file.
  12. Selezionare i file SQL presenti sul disco rigido (ottenuti al punto 1.b.4).
  13. Seleziona come destinazione il database creato nel punto 5 precedente.
  14. Fai clic sul pulsante blu Importa.

c. Adattare il sito alla nuova infrastruttura

Guide specifiche per adattare il file di configurazione: WordPress e Joomla.

Se utilizzi un'altra applicazione come Drupal o un'altra applicazione web (ownCloud, phpBB, ecc.) che utilizza un database, adatta le seguenti informazioni nel file di configurazione appropriato, utilizzando i dati disponibili (❓: guida) nel pannello di controllo, affinché il tuo sito funzioni correttamente:

  • il nome del database
  • il server del database
  • il nome utente che accede al database
  • la password dell'utente che accede al database

 

Per saperne di più


Questa FAQ è stata utile?

Questa guida spiega come aggiungere due diversi certificati SSL EV o DV sullo stesso sito.

 

Introduzione

  • Poiché non è possibile installare due certificati SSL sullo stesso sito, è necessario creare due siti identici.

 

Creazione del secondo sito

Prerequisiti

Per accedere all'hosting web e aggiungere un sito:

  1. Clicca qui per accedere alla gestione del tuo prodotto tramite il Manager Infomaniak (hai bisogno di aiuto?).
  2. Fate clic direttamente sul nome assegnato al prodotto in questione.
  3. Fate clic sul pulsante Aggiungi un sito:
  4. Continua senza installare alcun strumento:
  5. Fai clic su Apache e scegli la stessa versione di PHP del sito principale:
  6. Scegli se utilizzare un nome di dominio o un sottodominio.
  7. Indica il nome del dominio o del sottodominio.
  8. Fare clic su Opzioni avanzate.
  9. Abilitare (o meno) il certificato SSL Let's Encrypt per il futuro sito.
  10. Seleziona la casella Definisci la posizione manualmente.
  11. Scegli la stessa posizione di quella del sito principale:
  12. Fare clic sul pulsante blu Avanti per avviare la creazione del sito.

 

Installare il certificato SSL

Una volta creato il secondo sito (tutte le modifiche/aggiunte DNS potrebbero richiedere fino a 48 ore per propagarsi (❓: guida), sarà possibile installare un certificato SSL (se non si è scelto di installare il certificato al punto 9 precedente).

Per accedere alla gestione del sito web:

  1. Clicca qui per accedere alla gestione del tuo prodotto tramite il pannello di controllo Infomaniak (hai bisogno di aiuto?).
  2. Clicca direttamente sul nome assegnato al prodotto in questione.
  3. Fare clic su Certificati SSL nel menu laterale sinistro.
  4. Fare clic sul pulsante blu Installa un certificato SSL e seguire la procedura.

Questa FAQ è stata utile?

Questa guida consente di risolvere i problemi relativi ai caratteri speciali (accenti, emoji, ecc.) che non vengono visualizzati correttamente o che compaiono sotto forma di simboli come ??, spesso a causa di una codifica errata durante la connessione a MySQL.

 

Introduzione

  • Per impostazione predefinita, MySQL utilizza UTF-8.
  • I server MySQL più recenti sono generalmente configurati per utilizzare UTF-8 o UTF-8MB4 per impostazione predefinita.
    • Questo è adatto alla maggior parte dei casi, in particolare per le lingue internazionali e le emoji.
  • Consulta anche questa guida per scoprire come evitare problemi di codifica con caratteri non europei ed emoji nei tuoi progetti di sviluppo.

 

Definire il charset predefinito di MySQL / MariaDB (Server Cloud)

Con un Server Cloud Infomaniak, è possibile definire il charset predefinito (utf8 o utf8mb4):

  1. Clicca qui per accedere alla gestione del tuo prodotto sul Manager Infomaniak (hai bisogno di aiuto?).
  2. Fate clic direttamente sul nome assegnato al prodotto in questione.
  3. Fate clic su MariaDB nel menu laterale sinistro.
  4. Scegli il set di caratteri predefinito:
  5. Salva le modifiche in fondo alla pagina.

 

Forzare una codifica specifica (ad esempio latin1)

Se è necessario lavorare con un database in latin1 (ISO-8859-1), è necessario specificare esplicitamente la codifica durante la connessione, in base all'ambiente in uso.

Per le offerte attuali, inserisci il seguente codice in un file user.ini situato nella directory principale del tuo spazio web:

mysql.connect_charset = "latin1"
mysqli.connect_charset = "latin1"
pdo_mysql.connect_charset = "latin1"

o in PHP (API MySQL):

mysql_query("SET CHARACTER SET latin1");

 

Nei vecchi piani di hosting, forzare la connessione MySQL in latin1 tramite il file .htaccess situato nella directory principale del tuo hosting:

php_value mysql.connect_charset latin1
php_value mysqli.connect_charset latin1
php_value pdo_mysql.connect_charset latin1

Questa FAQ è stata utile?