Investitori

Base di conoscenze

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

Questa guida tecnica illustra i limiti di risorse degli hosting web di Infomaniak; è fondamentale distinguere tra il tempo reale (orologio) e il tempo di calcolo (processore) per comprendere l'origine delle interruzioni degli script.

 

1. Tempo di connessione MySQL (I/O)

Limite: 30 secondi effettivi

Questo limite corrisponde al tempo assoluto trascorso, misurato con un cronometro. Riguarda la comunicazione tra PHP e il server di database (MySQL/MariaDB).

Non appena viene aperta una connessione, il server del database assegna un tempo massimo di 30 secondi per ricevere la richiesta, eseguirla e restituire i risultati. Se questo limite viene superato (spesso a causa di una query SQL non ottimizzata), il server MySQL interrompe bruscamente la connessione. Questo genera in genere l'errore MySQL server has gone away.

 

2. Tempo di elaborazione PHP (CPU)

Limite: 10 secondi di CPU

Questo limite si riferisce esclusivamente alla potenza di calcolo utilizzata dal server web per eseguire il codice PHP.

È fondamentale sottolineare che il tempo di attesa non viene conteggiato. Quando PHP attende una risposta dal database, è in pausa e non consuma quasi tempo di CPU. Di conseguenza, uno script verrà interrotto dal server web solo se esegue calcoli complessi (cicli complessi, crittografia, elaborazione di file) per più di 10 secondi cumulativi.

 

Interazione dei due limiti

Per garantire la stabilità dell'applicazione, ogni operazione deve rispettare simultaneamente queste due condizioni distinte:

  • L'applicazione ha a disposizione 30 secondi di tempo totale per interagire con il database (latenza di rete + esecuzione SQL).
  • L'applicazione dispone di 10 secondi di tempo di calcolo effettivo per elaborare i dati ricevuti.

Esempio di funzionamento corretto: uno script che attende 25 secondi una risposta complessa da MySQL (I/O) e poi elabora il risultato per 2 secondi (CPU) funzionerà perfettamente, perché non ha superato nessuno dei due limiti individuali, anche se il tempo totale è di 27 secondi.


Questa FAQ è stata utile?

Questa guida spiega come reindirizzare il traffico di un nome di dominio alias (sinonimo) al dominio principale, oppure forzare la visualizzazione del dominio principale nella barra degli indirizzi del browser.

 

Prevenire il contenuto duplicato.

Immaginiamo che il tuo sito web sia ospitato sul dominio principale example.com e che tu abbia configurato un dominio alias come example-alias.com.

Per impostazione predefinita, quando un visitatore inserisce uno di questi indirizzi nel browser, l'URL digitato rimane visualizzato. Questo può generare contenuti duplicati (duplicate content), il che influisce negativamente sul posizionamento nei motori di ricerca (SEO).

Per evitare questo, è possibile forzare il reindirizzamento: se un visitatore digita example-alias.com, verrà automaticamente reindirizzato a example.com.

Questa configurazione si effettua nel file .htaccess, che si trova nella directory principale del tuo spazio web (generalmente nella cartella /web tramite il tuo accesso FTP). Se questo file non esiste ancora, è necessario crearlo.

Inserire quindi le seguenti direttive nel file:

RewriteEngine On

# Forza il reindirizzamento a HTTPS e al dominio canonico
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

Adatta il codice qui sopra in base alle tue esigenze:

  • Sostituisci example.com con il tuo dominio principale e la sua estensione (.com, .org, .ch, ecc.). Aggiungi www. davanti al tuo dominio se preferisci forzare la visualizzazione del sottodominio www.
  • Se si verifica un ciclo di reindirizzamento, è possibile sostituire la condizione del protocollo con RewriteCond %{HTTPS} off (in particolare se il servizio di hosting non utilizza un proxy inverso).

Per maggiori informazioni, consultare la documentazione relativa ai reindirizzamenti automatici verso HTTPS.


Questa FAQ è stata utile?

Questa guida riguarda la sincronizzazione dei server tramite il protocollo NTP (Network Time Protocol) e la configurazione del fuso orario sui server di Infomaniak.

 

Sincronizzazione precisa dei server tramite NTP

I server di Infomaniak sono tutti sincronizzati tramite il protocollo NTP. L'azienda mette a disposizione i propri server NTP stratum-1, accessibili al pubblico, per un utilizzo flessibile.

Per integrare questi server nelle vostre impostazioni, utilizzate il seguente indirizzo: pool.ntp.infomaniak.ch.

La configurazione predefinita del fuso orario è UTC. Tuttavia, le funzioni PHP sono progettate per tenere conto di diversi fusi orari in base alle esigenze specifiche.

Per modificare il fuso orario nei tuoi script PHP, utilizza la funzione date_default_timezone_set('UTC').

 

MySQL: caratteristiche specifiche per la gestione dei dati temporali

L'infrastruttura Infomaniak supporta le funzionalità che consentono di lavorare con dati temporali in modo preciso ed efficiente, tenendo conto dei fusi orari, il che è fondamentale per molte applicazioni moderne:

  • MySQL utilizza un database di fusi orari per archiviare e gestire le informazioni relative ai fusi orari.
  • La tabella mysql.time_zone contiene i dati dei fusi orari, comprese le informazioni sugli scarti orari, i nomi dei fusi orari, ecc.
  • La funzione CONVERT_TZ viene utilizzata per convertire un orario da un fuso orario a un altro in MySQL, con la seguente sintassi: CONVERT_TZ(dt, from_tz, to_tz), dove:
    • dt è la data/ora da convertire.
    • from_tz è il fuso orario di origine.
    • to_tz è il fuso orario di destinazione.
  • Esempio: CONVERT_TZ('2024-05-14 12:00:00', 'UTC', 'America/New_York') convertirà l'orario 12:00:00 UTC nell'orario locale di New York.

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 illustra il ruolo del file browscap.ini, utilizzato da PHP per identificare alcune caratteristiche di un browser web (nome, versione, sistema operativo e funzionalità) a partire dall'intestazione HTTP User-Agent.

Oggi, l'utilizzo di browscap.ini è principalmente finalizzato a garantire la compatibilità con applicazioni esistenti. Per i nuovi sviluppi, si preferiscono generalmente metodi più moderni.

 

Utilizzo con la funzione get_browser()

La funzione nativa PHP get_browser() richiede l'accesso a un file browscap.ini aggiornato per identificare le caratteristiche del browser che ha effettuato la richiesta.

Nei servizi di Web Hosting di Infomaniak, questo file è generalmente disponibile nella seguente posizione:

/opt/php/lib/php/browscap.ini

Se necessario, è possibile verificarne il contenuto utilizzando lo script seguente:

<?php
header('Content-Type: text/plain');

$file = '/opt/php/lib/php/browscap.ini';

if (file_exists($file)) {
    echo file_get_contents($file);
} else {
    echo 'File not found.';
}

A causa delle sue dimensioni e del costo del suo caricamento, l'utilizzo di browscap.ini può influire sulle prestazioni delle applicazioni che si basano su get_browser().

 

Alternative consigliate

Per i nuovi progetti, è generalmente preferibile utilizzare soluzioni più adatte alle pratiche attuali dello sviluppo web:

  • Librerie PHP installate con Composer, come matomo/device-detector o whichbrowser/parser, che offrono un rilevamento dei browser e dei dispositivi regolarmente aggiornato e più completo.
  • User-Agent Client Hints (UA-CH), quando supportati dal browser, per ottenere informazioni strutturate tramite i meccanismi previsti dagli standard HTTP attuali.
  • Rilevamento delle funzionalità (Feature Detection), verificando direttamente la disponibilità di una funzionalità (ad esempio in JavaScript o con la regola CSS @supports) anziché dedurre il comportamento in base al browser utilizzato.

Questa FAQ è stata utile?

Questa guida riguarda Django, un framework open-source per lo sviluppo web in Python.

 

Prerequisiti

  • Un VPS Cloud o VPS Lite (l'hosting condiviso e il Server Cloud gestito non sono supportati).
  • Python 3 e il gestore di pacchetti pip installati sul server e accesso SSH completo.
  • Avere una buona conoscenza della riga di comando (CLI Linux) e della gestione degli ambienti virtuali Python (ad esempio venv).

 

Installazione e inizializzazione

Di seguito sono riportati i passaggi generali per configurare il tuo ambiente sul server:

  1. Accedi al tuo VPS tramite SSH.
  2. Crea e attiva un ambiente virtuale per isolare le dipendenze del tuo progetto:
    python3 -m venv my_environment && source my_environment/bin/activate
  3. Installa il framework:
    pip install django
  4. Inizializza il tuo progetto:
    django-admin startproject nome_del_progetto

 

Messa in produzione

Il server di sviluppo integrato (runserver) non è progettato per un ambiente di produzione. Per esporre la tua applicazione su Internet in modo sicuro, configura un server di applicazioni (ad esempio Gunicorn o uWSGI) dietro un proxy inverso (Reverse Proxy) come Nginx o Apache.


Questa FAQ è stata utile?

Questa guida consente di individuare l'indirizzo IP pubblico del dispositivo, il che può essere utile in determinate richieste di assistenza.

 

Visualizzare l'indirizzo IP pubblico sul dispositivo connesso

Clicca qui per ottenere l'indirizzo IP pubblico del tuo dispositivo in formato IPv4 e IPv6.

 

Metodi alternativi

Visita ipinfo.io o ifconfig.me.

… su macOS

  1. Da un'applicazione di tipo Terminal (interfaccia a riga di comando, CLI / Command Line Interface) sul tuo dispositivo, esegui il comando curl ifconfig.me e premi Invio.
  2. L'indirizzo visualizzato è l'indirizzo IP pubblico del computer.

 

Ricorda che questo indirizzo potrebbe cambiare periodicamente, soprattutto se il router viene riavviato o se il provider di servizi Internet utilizza un'assegnazione dinamica degli indirizzi IP.

 

Per automatizzare la ricerca dell'indirizzo IP pubblico, utilizza comandi o script che interrogano servizi come api.ipify.org...


Questa FAQ è stata utile?

Questa guida spiega come utilizzare PHPMailer con gli hosting web di Infomaniak per inviare e-mail da un sito web.

 

⚠ ATTENZIONE ⚠‍

Infomaniak garantisce la conformità dei propri servizi agli standard di settore (IMAP, S3, ecc.), manon fornisce assistenza aggiuntiva per servizi o software di terze parti, poiché la loro configurazione può variare a seconda del fornitore o dello sviluppatoreQuesta guida è fornita a titolo indicativo e la sua implementazione rimane sotto la vostra responsabilità (rif.: Politica di supporto / Art. 11.9 delle Condizioni Generali d'Uso). Se necessario, un esperto può assistervi.


 

Introduzione

  • PHPMailer è una libreria PHP che consente di creare e inviare e-mail da un sito web, in particolare tramite SMTP.
  • Consente, in particolare, di inviare messaggi in formato HTML, aggiungere una versione di testo alternativa, gestire gli allegati e utilizzare l'autenticazione SMTP.
  • Per l'invio autenticato tramite SMTP, l'ambiente PHP utilizzato dal sito deve essere compatibile con una connessione crittografata recente, in particolare TLS 1.2 o superiore.
    • Una versione troppo vecchia di PHP o della libreria OpenSSL utilizzata da PHP può causare un errore di connessione o di autenticazione, anche se l'indirizzo e-mail e la password sono corretti.
    • Non utilizzare PHP 5.3/5.4 per questo tipo di invio; utilizzare una versione di PHP recente e supportata.
  • Con l'invio SMTP autenticato, l'indirizzo utilizzato come mittente deve corrispondere all'indirizzo e-mail utilizzato per l'autenticazione SMTP.

 

Installare PHPMailer

Per utilizzare PHPMailer, installa la libreria nei file del tuo sito web.

  1. Scarica PHPMailer dal suo repository ufficiale o installala con Composer se il tuo progetto lo utilizza.
  2. Copia i file di PHPMailer in una directory del tuo sito web tramite FTP.
  3. Carica i file necessari nello script PHP, adattando il percorso in base alla posizione scelta:

    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    
    require **DIR** . '/PHPMailer/src/Exception.php';
    require **DIR** . '/PHPMailer/src/PHPMailer.php';
    require **DIR** . '/PHPMailer/src/SMTP.php';

 

Configurare l'invio SMTP con Infomaniak

Utilizzare le seguenti impostazioni SMTP autenticate:

  • Server SMTP: mail.infomaniak.com
  • Porta: 465
  • Crittografia: SMTPS / SSL-TLS
  • Autenticazione: obbligatoria
  • Nome utente: l'indirizzo e-mail completo
  • Password: la password dell'indirizzo email utilizzato

Esempio di configurazione completa:

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require **DIR** . '/PHPMailer/src/Exception.php';
require **DIR** . '/PHPMailer/src/PHPMailer.php';
require **DIR** . '/PHPMailer/src/SMTP.php';

$mail = new PHPMailer(true);

try {
// Configuration SMTP
$mail->isSMTP();
$mail->Host       = 'mail.infomaniak.com';
$mail->SMTPAuth   = true;
$mail->Username   = '[sender@domain.xyz](mailto:sender@domain.xyz)';
$mail->Password   = 'mot_de_passe_de_l_adresse_mail';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port       = 465;
$mail->CharSet    = 'UTF-8';

```
// Expéditeur
// L'adresse doit correspondre à celle utilisée pour l'authentification SMTP.
$mail->setFrom('sender@domain.xyz', 'Nom du site');

// Destinataire
$mail->addAddress('recipient@example.com');

// Adresse de réponse facultative
$mail->addReplyTo('sender@domain.xyz', 'Nom du site');

// Contenu du message
$mail->isHTML(true);
$mail->Subject = 'Message envoyé depuis le site';
$mail->Body    = '<p>Contenu HTML du message.</p>';
$mail->AltBody = 'Contenu texte du message.';

$mail->send();
echo 'Message envoyé';
```

} catch (Exception $e) {
echo 'Le message n'a pas pu être envoyé. Erreur: ' . htmlspecialchars($mail->ErrorInfo);
}

Se la tua applicazione richiede l'utilizzo della porta 587, utilizza STARTTLS:

$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port       = 587;

 

Verifica la versione di PHP e la compatibilità TLS

L'invio SMTP autenticato richiede una connessione crittografata recente. Se il sito utilizza una versione troppo vecchia di PHP, ad esempio PHP 5.3, o una libreria OpenSSL troppo vecchia, PHPMailer potrebbe fallire prima o durante l'autenticazione. Gli errori possono quindi essere fuorvianti, ad esempio:

  • SMTP connect() failed
  • Impossibile autenticare
  • stream_socket_enable_crypto()
  • un errore di autenticazione nonostante la password sia corretta

In questo caso, verificare i seguenti punti:

  1. la versione di PHP utilizzata dal sito web;
  2. la versione di OpenSSL utilizzata da PHP;
  3. la versione di PHPMailer utilizzata nel tuo progetto;
  4. la corrispondenza tra la porta SMTP e la crittografia scelta.

Per una configurazione affidabile, utilizza una versione recente di PHP, compatibile con TLS 1.2 o superiore, e una versione aggiornata di PHPMailer. Consulta le seguenti guide, se necessario:

 

Come risolvere un errore di mancata corrispondenza del mittente

L'errore Sender mismatch SMTP code: 550 Additional SMTP info: 5.7.1 può verificarsi quando l'indirizzo utilizzato come mittente non corrisponde all'indirizzo e-mail utilizzato per l'autenticazione SMTP. Ecco un esempio da evitare:

$mail->Username = 'sender@domain.xyz';
$mail->setFrom('another-address@domain.xyz', 'Nom du site');

In questo esempio, lo script si autentica con sender@domain.xyz, ma tenta di inviare il messaggio utilizzando un indirizzo mittente diverso.

Utilizza lo stesso indirizzo email per l'autenticazione SMTP e per il mittente:

$mail->Username = 'sender@domain.xyz';
$mail->setFrom('sender@domain.xyz', 'Nom du site');

Il nome del mittente può essere personalizzato, ma l'indirizzo email deve rimanere coerente con l'account SMTP utilizzato.

Caso di un modulo di contatto

Se un visitatore inserisce il proprio indirizzo email in un modulo, non utilizzarlo come indirizzo del mittente del messaggio. Utilizza l'indirizzo email autenticato come mittente e aggiungi l'indirizzo del visitatore come indirizzo di risposta.

Esempio:

$mail->Username = 'sender@domain.xyz';
$mail->setFrom('sender@domain.xyz', 'Formulaire du site');
$mail->addReplyTo($email_visiteur);

Questa configurazione consente di rispondere ai visitatori direttamente dal proprio software di posta elettronica, senza inviare il messaggio con un indirizzo del mittente non autorizzato.

 

Attivare temporaneamente la modalità di debug

In caso di errore, attivi temporaneamente la modalità di debug di PHPMailer per ottenere maggiori dettagli sulla connessione SMTP:

$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';

Disattiva questa modalità dopo i test per evitare di visualizzare informazioni tecniche agli utenti del sito.

 

Per saperne di più


Questa FAQ è stata utile?

Questa guida riguarda l'utilizzo della tecnologia Java, che, in particolare in termini di consumo di memoria RAM, non è compatibile con i requisiti delle offerte di hosting condiviso di Infomaniak. Le applicazioni Java sono spesso molto esigenti in termini di risorse, il che può influire sulle prestazioni e sulla stabilità dei server condivisi tra più utenti.

 

Supporto limitato agli applet lato client

I server condivisi supportano solo le applet Java lato client, ovvero quelle eseguite nel browser web dell'utente. Queste applet non richiedono risorse server significative e quindi non presentano gli stessi problemi delle applicazioni Java lato server. Di conseguenza, non sono supportati i prodotti che utilizzano la tecnologia Java lato server.

 

Prodotti e tecnologie non supportati

Di seguito è riportato un elenco non esaustivo dei prodotti e delle tecnologie specifiche non supportate sui server condivisi:

Questa politica consente di garantire prestazioni ottimali e un utilizzo equo delle risorse per tutti gli utenti dei server condivisi.


Questa FAQ è stata utile?

Questa guida illustra l'esecuzione del linguaggio C# e del framework .NET tramite l'implementazione Mono sugli hosting di Infomaniak.

 

Tecnologie per lo sviluppo software

Per utilizzare il linguaggio C# e il framework .NET con l'implementazione Mono, al fine di sviluppare applicazioni software che possano essere distribuite ed eseguite su diverse piattaforme, al di fuori dell'ambiente Windows, si consiglia di optare per soluzioni quali:

La flessibilità e la portabilità offerte da questi ambienti multipiattaforma significano che un hosting web condiviso non consente l'esecuzione di progetti basati su C#, .NET o Mono.


Questa FAQ è stata utile?

Questa guida spiega come modificare un'offerta di Hosting Web esistente, ad esempio per poter ospitare siti web aggiuntivi qualora sia stato raggiunto il limite massimo di siti, oppure per ottenere una soluzione di hosting più recente e beneficiare delle ultime versioni di PHP e MySQL.

 

Ordinare siti, spazio su disco o IP aggiuntivi

Per accedere al configuratore dell'hosting web:

  1. Clicca qui per accedere alla gestione del tuo hosting nel Manager Infomaniak (hai bisogno di aiuto?).
  2. Fare clic sul menu Azioni ⋮ situato a destra dell'hosting in questione.
  3. Fare clic su Modifica offerta:
  4. Aumenta i valori che desideri modificare.
  5. Clicca sul pulsante Avanti per procedere al pagamento delle modifiche apportate all'hosting:

 

Passare a un server più recente

Per ottenere una soluzione di hosting su un server più recente e beneficiare, tra l'altro, delle ultime versioni di PHP e MySQL, è possibile…

  • … consultare questa guida e seguire la procedura indicata fino alla fine:
  • … consultare questa guida e seguire la procedura indicata fino al punto 4, quindi fare clic sul pulsante per aggiornare:

Se non viene visualizzato alcun banner informativo, significa che hai già sottoscritto un piano di hosting recente.


Questa FAQ è stata utile?

Questa guida spiega come ospitare un'applicazione ASP, ASP.NET Framework o ASP.NET Core (.NET moderno) sull'infrastruttura Cloud di Infomaniak.

 

Introduzione

  • Le offerte di Hosting Web e di Server Cloud Gestito si basano su un'infrastruttura Linux/Apache; non supportano IIS (Internet Information Services) né l'esecuzione nativa di applicazioni sviluppate per Microsoft Windows (ASP classico o ASP.NET Framework).
  • Di seguito sono presentate le soluzioni e le alternative.

 

Dettagli delle soluzioni di hosting compatibili

 

1. VPS Cloud con Windows Server ASP classico (ASP 3.0) e ASP.NET Framework (dalla versione 1.0 alla 4.8)

Per le applicazioni basate sull'ecosistema Windows tradizionale (IIS, VBScript, C#, .NET Framework):

  • Distribuisci un VPS Cloud o un VPS Lite con Windows Server (versioni 2019, 2022 o 2025).
  • Attiva il ruolo Web Server (IIS) con accesso amministrativo completo tramite RDP.

 

2. Jelastic Cloud (ASP.NET Core e .NET moderno)

Per le applicazioni ASP.NET Core multipiattaforma:

  • Distribuzione semplificata tramite container Docker o runtime .NET.
  • Ridimensionamento automatico delle risorse (CPU/RAM) e alta disponibilità.

 

3. VPS Cloud Linux ASP.NET Core (.NET 6, 8, 9+)

È anche possibile ospitare un'applicazione ASP.NET Core su un VPS Cloud Linux (Debian, Ubuntu, ecc.) configurato con un proxy inverso (Nginx o Apache) davanti al server Kestrel di .NET.

 

4. Cloud pubblico (OpenStack)

Ideale per progetti aziendali che richiedono una rete privata virtuale (VPN), storage a blocchi/oggetti o un deployment ibrido su larga scala.


Questa FAQ è stata utile?

Questa guida spiega come limitare l'hotlinking dei file ospitati sul tuo Hosting Web Infomaniak.

 

Introduzione

  • L' hotlinking consiste nel fatto che un sito web di terze parti visualizzi direttamente immagini, video o altri file ospitati sul tuo server utilizzando il loro URL pubblico, senza ospitarli sul proprio server.
  • Questa pratica utilizza le risorse del tuo hosting (larghezza di banda, connessioni HTTP e risorse del server) senza la tua autorizzazione. Può anche violare i tuoi diritti d'autore o limitare il controllo sulla diffusione dei tuoi contenuti.
  • Anche se le attuali capacità di rete rendono l'impatto sulla larghezza di banda generalmente meno critico rispetto al passato, si consiglia comunque di limitare l'hotlinking per evitare un consumo inutile delle risorse del vostro hosting.

 

Impedire l'hotlinking con un file .htaccess

Se il tuo sito utilizza il server web Apache e il modulo mod_rewrite, puoi limitare l'accesso diretto a determinati file aggiungendo delle regole nel file .htaccess situato nella directory principale del tuo sito.

L'esempio seguente protegge i principali formati di immagine, inclusi i formati moderni WebP e AVIF:

RewriteEngine On

# Consenti le richieste senza l'intestazione Referer
RewriteCond %{HTTP_REFERER} !^$

# Consenti le richieste dal tuo dominio (sostituisci con il tuo dominio)
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?vostro-dominio\.com [NC]

# Consenti i principali motori di ricerca
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?google\. [NC]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?bing\. [NC]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?yahoo\. [NC]

# Blocca l'hotlinking per i file immagine
RewriteRule \.(jpg|jpeg|png|gif|svg|webp|avif)$ - [F,NC,L]

Da adattare prima dell'utilizzo:

  • Sostituisci vostro-dominio.com con il tuo nome di dominio.
  • Le richieste che non contengono l'intestazione HTTP Referer sono consentite per garantire la compatibilità con alcuni browser, applicazioni o meccanismi di protezione della privacy che non trasmettono tale intestazione.
  • Le regole che consentono ai principali motori di ricerca di accedere alle immagini permettono ai loro robot di indicizzarle. Disabilitarle impedirà l'indicizzazione di queste immagini.
  • La regola utilizza l'opzione [F], che restituisce una risposta HTTP 403 Forbidden. Questo metodo blocca immediatamente la richiesta senza fornire contenuti aggiuntivi, riducendo così il consumo delle risorse del server.

Se utilizzi Cloudflare come CDN davanti al tuo hosting Infomaniak, puoi anche attivare la funzionalità Hotlink Protection dall'interfaccia di amministrazione per bloccare questo tipo di accesso prima che raggiunga il tuo hosting.


Questa FAQ è stata utile?

Questa guida presenta dei comandi che possono essere eseguiti per testare una connessione o una rete e, in questo modo, individuare più precisamente l'origine di eventuali errori.

 

Eseguire un Telnet…

TELNET consente di testare la connessione a un server, senza tenere conto di tutte le impostazioni aggiuntive di un'applicazione di posta elettronica o FTP, al fine di determinare l'origine di un problema. Se la connessione non riesce a un server SMTP, ad esempio, è necessario verificare se il firewall non blocca la porta 587 o 465.

 

… su macOS

  1. Cerca Utilità di rete.
  2. Vai alla scheda Ping, Lookup o Traceroute, a seconda di cosa desideri testare.
  3. È inoltre possibile utilizzare un'applicazione di tipo Terminal (interfaccia a riga di comando, CLI / Command Line Interface) sul dispositivo e, a seconda di cosa si desidera testare, inserire:
    traceroute [server]
    nc [server] [port]
    Sostituire [server] con il nome del server o il suo indirizzo IP, e lo stesso per [port]…

 

… su Windows

Attiva Telnet, se necessario.

  1. Utilizza un'applicazione di tipo Terminal (interfaccia a riga di comando, CLI / Command Line Interface) sul tuo dispositivo, ad esempio digitando Esegui e poi cmd.
  2. Nella finestra che si apre, a seconda di cosa si desidera testare, digitare:
    tracert [server]
    telnet [server] [port]
    Esempio: telnet mail.infomaniak.com 587(consente di testare la porta SMTP se il software/client di posta elettronica non consente l'invio di e-mail)...

 

… su Android

  1. Utilizza l'applicazione Simple Telnet Client, che consente di eseguire test in modo semplice tramite due campi da compilare (ad esempio mail.infomaniak.com e la porta 143 o 993)…

 

Eseguire un PING

PING consente di verificare se un dispositivo è raggiungibile tramite Internet. È inoltre possibile utilizzare questo strumento per controllare se si sta comunicando con il dispositivo corretto, ad esempio in caso di modifica del DNS, verificando l'indirizzo IP ottenuto. È possibile eseguire un ping su un nome di dominio, un hostname o un indirizzo IP.

Il protocollo PING è definitivamente bloccato sugli hosting condivisi di Infomaniak.


Questa FAQ è stata utile?

Questa guida spiega come lavorare senza il modulo PECL SSH2 client, non disponibile sugli hosting web e sui server cloud di Infomaniak, utilizzando invece la libreria phpseclib, che funziona con PHP nativo senza richiedere estensioni specifiche.

 

Introduzione

  • L'utilizzo di PECL SSH2 client nella sua ultima versione disponibile causa errori di tipo Nessun algoritmo di scambio chiavi compatibile trovato o Impossibile scambiare le chiavi di crittografia.
  • Phpseclib permette:
    • L'autenticazione SSH tramite password o chiave privata.
    • L'esecuzione di comandi remoti.
    • Il trasferimento di file sicuri (SFTP).
    • La gestione delle chiavi SSH.

 

Utilizzare phpseclib

Per integrare una connessione SSH in uno script PHP, utilizzare phpseclib nel modo seguente:

use phpseclib3\Net\SSH2;
use phpseclib3\Crypt\PublicKeyLoader;

$ssh = new SSH2('domain.xyz');
$key = PublicKeyLoader::load(file_get_contents('/path/to/private_key'));

if (!$ssh->login('utente', $key)) {
    exit('Autenticazione fallita');
}

echo $ssh->exec('ls -la');

Questa FAQ è stata utile?

Questa guida illustra le azioni da intraprendere in priorità qualora non si notino differenze tra il proprio sito web dopo aver apportato una modifica e la sua versione prima della modifica. Questi consigli sono validi anche in caso di problemi durante l'utilizzo dell'interfaccia dei prodotti Infomaniak.

 

Introduzione

  • Durante la navigazione, un browser web salva in uno spazio dedicato i dati visualizzati, in modo da evitare di dover richiedere nuovamente al server i dati già visualizzati, risparmiando tempo e risorse.
  • La cache può contenere un'enorme quantità di dati e a volte il browser può avere dei problemi. Di conseguenza, i siti web potrebbero non essere visualizzati correttamente o mostrare una versione obsoleta.
  • Svuotare la cache consente di assicurarsi di visualizzare l'ultima versione disponibile della pagina o della cartella consultata.

 

Svuotare la cache del browser web…

 

… su Safari

Seleziona la tua versione di macOS per consultare la guida Apple corrispondente.

 

… sugli strumenti Google (Chrome, Android, ecc.)

Consulta la guida di Google.

 

… su Firefox

Consulta la guida di Mozilla.

 

… su Edge / Internet Explorer

Consulta la guida di Microsoft.


Questa FAQ è stata utile?

Questa guida illustra in dettaglio le funzionalità disponibili per la gestione dei database relazionali sugli hosting di Infomaniak.

 

Utilizzo di viste, trigger, procedure memorizzate e routine

Per quanto riguarda la gestione dei database relazionali, la funzionalità delle viste è disponibile per impostazione predefinita, consentendo agli utenti di creare viste per semplificare la gestione e la presentazione dei dati.

Tuttavia, alcune funzionalità avanzate che consentono una manipolazione più precisa e complessa dei dati, come…

  • “trigger” (eventi)
  • procedure memorizzate ("stored procedures")
  • routine
  • e la creazione di funzioni

… sono disponibili solo sui Server Cloud.

Non sono ammessi sui server condivisi.

Questa restrizione è dovuta principalmente ai potenziali rischi per la stabilità dell'infrastruttura. Una configurazione errata o un utilizzo eccessivo di queste funzionalità potrebbe creare cicli infiniti o sovraccarichi significativi, influenzando non solo le prestazioni del server interessato, ma anche l'esperienza di tutti i clienti ospitati sulla stessa infrastruttura.

 

Risolvere un problema di importazione di un dump MySQL/MariaDB

Durante l'esportazione e la successiva reimportazione di un database MySQL o MariaDB tramite l'interfaccia di hosting di Infomaniak, potrebbe verificarsi un errore a causa di problemi relativi ai DEFINER dei trigger o delle view. Questo accade quando gli oggetti del database sono stati creati con un utente specifico (chiamato definer) che non esiste più al momento dell'importazione.

In pratica, il processo di esportazione e importazione utilizza un utente temporaneo, utilizzato esclusivamente durante queste operazioni. Dopo l'eliminazione di questo utente, le view o i trigger definiti con questo account come DEFINER diventano non validi, causando errori di questo tipo:

Errore generale: 1449 L'utente specificato come definer ('xxxx_temp_1'@'%') non esiste

 

Per evitare questo problema, è possibile correggere il file di backup (dump.sql o dump.sql.gz) prima dell'importazione, sostituendo le definizioni di definer con CURRENT_USER. In questo modo, è possibile associare automaticamente i trigger e le viste all'utente corrente al momento dell'importazione.

Ecco un esempio di comando per modificare il dump prima dell'importazione:

sed -E 's/DEFINER=`[^`][^`]*`@`[^`][^`][^`]*`/DEFINER=CURRENT_USER/g' dump.sql > dump-corrected.sql

 

Una volta effettuata questa sostituzione, il file corretto può essere importato normalmente tramite il Pannello di controllo Infomaniak. Questo comportamento è noto ed è legato al funzionamento degli utenti temporanei durante l'esportazione/importazione. Al momento non sono previste modifiche al processo di esportazione/importazione, ma la questione è comunque oggetto di valutazione a livello di infrastruttura.

Per maggiori informazioni sulla variabile CURRENT_USER, consultare la documentazione ufficiale di:


Questa FAQ è stata utile?

Questa guida spiega come modificare la password di un database MySQL / MariaDB di un Hosting Web.

 

Introduzione

  • Consulta questa guida se cerchi informazioni sull'aggiornamento dei dati di accesso (script, siti web, ecc.) in seguito a una modifica della password del database.
  • Un utente del database creato dopo l'installazione di un'Applicazione Web (offerta da Infomaniak) non potrà essere modificato.
    • Per accedere al database a cui è associato, è necessario creare un nuovo utente del database con la password desiderata e quindi assegnargli i diritti sul database desiderato.

 

Modificare la password di MySQL, MariaDB, ecc.

Per farlo, è necessario intervenire sull’utente associato al database in questione e modificarne la password (senza dover fornire quella precedente) tramite il pannello di controllo Infomaniak:

  1. Clicca qui per accedere alla gestione del tuo hosting tramite il pannello di controllo Infomaniak (hai bisogno di aiuto?).
  2. Clicca direttamente sul nome assegnato all'hosting in questione:
  3. Fare clic su Database nel menu laterale sinistro.
  4. Fare clic sul menu Utenti.
  5. Fare clic sul menu azioni ⋮ situato a destra dell'elemento in questione.
  6. Fare clic su Modifica:
  7. Fare clic su Modifica password.
  8. Inserire la nuova password desiderata.
  9. Fare clic sul pulsante Salva:
  10. Se necessario, è possibile configurare i nuovi permessi (lettura / scrittura / amministrazione) per l'utente, in modo che possa accedere ai database esistenti sull'hosting.

Questa FAQ è stata utile?

Questa guida spiega come avviare un'analisi del contenuto di un Hosting Web per rilevare ed eliminare i file contenenti virus e altri script dannosi che potrebbero minacciare la sicurezza dei siti web.

 

Introduzione

  • Riceverai un'e-mail al termine dell'operazione (la scansione antivirus potrebbe richiedere del tempo; è possibile chiudere il Manager).
  • Infomaniak garantisce la protezione degli hosting analizzando esclusivamente le cartelle dei siti web (webroot); al di fuori di queste, non viene eseguita alcuna scansione sincrona sul resto dell'hosting.
  • Valutate anche l'utilizzo dello strumento di rilevamento delle vulnerabilità per monitorare eventuali falle corrette automaticamente sui vostri siti web.

 

Avviare un'analisi antivirus dei siti

Per analizzare il contenuto potenzialmente infetto:

  1. Clicca qui per accedere alla gestione del tuo hosting tramite il Manager Infomaniak (hai bisogno di aiuto?).
  2. Fate clic direttamente sul nome assegnato all'hosting in questione.
  3. Fate clic su Sicurezza nel menu laterale sinistro.
  4. Fare clic su Antivirus nel menu laterale sinistro.
  5. Fare clic sul pulsante blu Analizza:
  6. Seleziona il sito o i siti da analizzare.
  7. Fai clic sul pulsante blu Avvia analisi:
  8. Seguire la procedura fino all'avvio dell'analisi dei file.

Questa FAQ è stata utile?

Questa guida spiega come installare rapidamente applicazioni, estensioni PHP e tecnologie (l'elenco qui sotto non è esaustivo) con pochi clic su Server Cloud, e solo su questo.

 

Consulta questa altra guida se cerchi informazioni su ulteriori applicazioni web che possono essere installate su qualsiasi tipo di hosting, comprese le offerte standard/condivise.

 

Installare (o disinstallare) app/estensioni PHP…

Per visualizzare l'elenco delle tecnologie e procedere alla loro installazione:

  1. Clicca qui per accedere alla gestione del tuo Server Cloud tramite il pannello di controllo Infomaniak (hai bisogno di aiuto?).
  2. Clicca direttamente sul nome assegnato al Server Cloud in questione:
  3. Fare clic nel menu laterale sinistro:
    1. Estensioni PHP
    2. Installazione rapida
  4. Fare clic sul menu delle azioni ⋮ a destra dell'estensione che si desidera disinstallare nella tabella visualizzata.
  5. Fare clic su Disinstalla.
  6. In alternativa, fare clic sul pulsante blu.Installare un'estensione / Installare un'applicazione:
  7. Quindi scegli la nuova installazione:

 

Elenco non esaustivo delle app ed estensioni disponibili

  • AdvanceCOMP
  • BuildEssential
  • electron_dev
  • ExifTool
  • FFmpeg ↗ guida
  • Ghostscript
  • Gifsicle
  • GraphicsMagick
  • HAProxy
  • Imagemagick ↗ guida
  • Jpegoptim
  • libjpeg_turbo
  • libqrencode
  • libX11_xcb1
  • MidnightCommander
  • Memcached ↗ guida
  • mongoDB ↗ guida
  • NVM, gestore delle versioni di Node
  • OptiPNG
  • p7zip
  • PDFtk
  • PHP_APCu
  • PHP_CLI ↗ guida
  • PHP_FPM
  • PHP_GnuPG (estensione obsoleta) ↗ guida per l'alternativa PHP pura
  • PHP_gRPC
  • PHP_igbinary
  • PHP_IonCube ↗ guida
  • PHP_OPcache
  • PHP_PDF
  • PHP_PDO_ODBC ↗ guida
  • PHP_Swoole
  • pip
  • Pngcrush
  • Pngquant
  • Redis ↗ guida
  • RRDTool The Round Robin Database Tool
  • RubyCompass
  • systemd ↗ guida
  • tesseract_ocr
  • varnish ↗ guida
  • virtualenv
  • WebP
  • xauth
  • xpdf
  • xvfb
  • ZSH

Questa FAQ è stata utile?