Base di conoscenze
1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Questa guida fornisce indicazioni di base per creare e utilizzare un file .htaccess e .user.ini con un Hosting Web Infomaniak.
Introduzione
- Un file
.htaccesssi trova nella directory principale di un sito e consente di configurare il server HTTP Apache.- In quanto file di configurazione decentralizzato, offre una notevole flessibilità per adattare il comportamento del server alle esigenze specifiche del sito.
- Questo file consente di definire regole di riscrittura degli URL, imporre restrizioni di accesso, gestire gli errori HTTP e persino personalizzare aspetti della sicurezza, come la disattivazione della visualizzazione di file/cartelle.
- Facilita inoltre l'implementazione di reindirizzamenti e alias, offrendo così un controllo preciso sull'organizzazione e l'accessibilità del sito.
- Un file
.user.iniconsente di personalizzare le direttive PHP della cartella (e delle sue sottocartelle) in cui si trova.- Agendo a livello dell'interprete PHP, questo file consente di definire configurazioni specifiche per una determinata cartella e le sue sottodirectory.
- Grazie alla sua sintassi chiara, offre la possibilità di modificare vari parametri, come il limite di memoria, il tempo di esecuzione degli script, la gestione degli errori e altre direttive relative a PHP.
- Questo approccio granulare consente agli sviluppatori di personalizzare finemente il comportamento di PHP in base alle esigenze specifiche di ciascuna sezione del sito.
Creare un file…
… .htaccess
- Accedere al proprio hosting tramite FTP o SSH.
- Nella directory principale del sito in questione, crea un nuovo file e dagli il seguente nome:
.htaccess. - Inserisci le direttive desiderate nel file; consulta, ad esempio, questa guida.
… .user.ini
- Accedi al tuo spazio di hosting tramite FTP o SSH.
- Nella posizione desiderata, crea un nuovo file e dagli il seguente nome:
.user.ini. - Inserisci i parametri di configurazione PHP desiderati nel file.
La modifica del file .user.ini richiede alcuni minuti per avere effetto.
Link a questa FAQ: https://faq.infomaniak.com/2210
Questa FAQ è stata utile?
Questa guida illustra come inviare e-mail da un sito ospitato da Infomaniak utilizzando la funzione PHP mail(), che è disabilitata per impostazione predefinita.
Introduzione
- Infomaniak sconsiglia vivamente l'utilizzo della funzione PHP mail() per l'invio di e-mail dalle vostre applicazioni:
- Le e-mail saranno considerate "non autenticate" e saranno quindi soggette a limiti.
- La loro deliverability sarà compromessa, il che potrebbe danneggiare il vostro sito.
- Si raccomanda vivamente di utilizzare un metodo di invio SMTP autenticatoper l'invio di e-mail dalle vostre applicazioni; Infomaniak offre a tal fine un servizio dedicato.
Specificare l'indirizzo di spedizione
Per garantire che i messaggi vengano inviati correttamente dal tuo CMS/applicazione web (ed evitare errori come Impossibile istanziare la funzione di invio email o indirizzo del mittente non corrispondente), è necessario specificare un indirizzo valido nelle impostazioni del sito nell'area Infomaniak:
- Clicca qui per accedere alla gestione degli hosting e dei siti nel tuo Manager Infomaniak (❓: guida).
- Fare clic sul nome del sito in questione.
- Fare clic su Gestisci le impostazioni avanzate:

- Nella scheda Generale, inserisci un indirizzo email esistente nel campo Email del mittente.
- Fai clic sul pulsante blu Salva:

Riattivare la funzione di invio email
Se desideri comunque utilizzare la funzione di invio email di PHP, dovrai attivarla per ciascuno dei siti del tuo servizio di Web Hosting:
- Clicca qui per accedere alla gestione degli hosting e dei siti nel tuo pannello di controllo Infomaniak (❓: guida).
- Clicca sul nome del sito interessato.
- Fare clic su Gestisci le impostazioni avanzate:

- Fare clic sulla scheda PHP / Apache:

- Attiva la funzione posta:

- Fai clic sul pulsante Salva in fondo alla pagina per confermare le modifiche.
Esempi di utilizzo della funzione PHP mail()...
... su WordPress
Configura l'invio del modulo di contatto predefinito incluso con il costruttore Divi:
- Accedi alla dashboard di amministrazione di WordPress.
- Accedi all'editor Divi della pagina che contiene il modulo di contatto.
- Fai clic su Impostazioni per configurare il modulo di contatto Divi:

- Nella sezione EMAIL, inserisci l'indirizzo email che riceverà gli invii del modulo e salva:

- Per impostazione predefinita, quando un visitatore utilizzerà il modulo per contattarti, riceverai un'email da
mail@il-nome-del-tuo-sitoe, se risponderai, il destinatario sarà automaticamente l'indirizzo email indicato dal visitatore al momento della compilazione del modulo di contatto.
… su Prestashop
Accedere alle impostazioni avanzate di Prestashop:
- Specifica la modalità SMTP.
- Inserisci
localhostcome server. - Inserire la porta
25. - Non specificare né nome utente né password.

… su Joomla
Configurare l'invio delle e-mail tramite PHPmail (non consigliato) in Joomla:
- Accedi al pannello di amministrazione del tuo sito Joomla.
- Vai su Configurazione e poi su Server.
- Non inserire NIENTE nel campo E-mail del sito:

Questo purtroppo impedisce qualsiasi test di invio tramite il pulsante dedicato, ma funzionerà se configuri un modulo di contatto sul tuo sito. Clicca su Salva dopo aver lasciato il campo vuoto.
Indirizzo di risposta della funzione PHP mail()
Quando si invia un'e-mail con la funzione mail() di PHP, il return-path verrà impostato in questo modo: root@h2web3.infomaniak.ch, ad esempio. Tuttavia, l'intestazione Reply-To: presente nel codice del modulo consente di specificare un indirizzo di risposta valido.
Link a questa FAQ: https://faq.infomaniak.com/2150
Questa FAQ è stata utile?
Questa guida riguarda IonCube Loader, un modulo PHP che consente di decodificare gli script PHP che sono stati codificati con IonCube Encoder.
Introduzione
- La codifica IonCube viene utilizzata per proteggere il codice sorgente di un'applicazione e impedirne la modifica o la distribuzione illegale.
- Utilizzando IonCube Loader, i proprietari dei siti web possono garantire la sicurezza del proprio codice e dei propri contenuti, consentendo al contempo una distribuzione sicura e semplice delle proprie applicazioni.
Utilizzare ionCube Loader
Con un hosting condiviso, questa funzionalità non è più disponibile. È possibile verificarlo dal pannello di controllo:
- Clicca qui per accedere alla gestione degli hosting e dei siti web nel tuo pannello di controllo Infomaniak (❓: guida).
- Clicca sul nome del sito web desiderato.
- Fare clic su Gestisci le impostazioni avanzate:

- Fare clic sulla scheda Estensioni PHP.
- Fare clic su ionCube Loader (se presente nell'elenco) per visualizzare i dettagli:

- In questo caso, è opportuno valutare l'utilizzo di un Server Cloud.
Link a questa FAQ: https://faq.infomaniak.com/285
Questa FAQ è stata utile?
Questa guida spiega come connettersi a un database esterno da un Server Cloud.
Introduzione
- È possibile connettersi a MySQL tramite SSL (sia esterno che interno), specificandolo al momento della creazione della connessione.
- La porta MySQL
3306è chiusa per impostazione predefinita; per aprirla, consultare questa guida. - Infomaniak non installa
PDO_DBLIB.
Installare PHP_PDO_ODBC
Prerequisiti
- È necessario avere il menu Estensioni PHP nel Manager Infomaniak, nella sezione Server Cloud (in caso contrario, sarà necessario aggiornare il Server Cloud).
È possibile installare l'estensione PHP_PDO_ODBC dal menu Estensioni PHP del tuo Server Cloud:
- Clicca qui per accedere alla gestione del tuo prodotto sul Manager Infomaniak (hai bisogno di aiuto?).
- Fate clic direttamente sul nome assegnato al prodotto in questione.
- Fate clic su Estensioni PHP nel menu laterale sinistro.
- Fare clic sul pulsante blu Installa un'estensione.
- Selezionare l'estensione
PHP_PDO_ODBC. - Conferma l'installazione.
Configura il connettore
La configurazione del driver è già definita in /etc/odbcinst.ini:
[FreeTDS]
Description = Accesso al database MS SQL con il driver Free TDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.soNon è necessario ridefinirla staticamente nel file .odbc.ini o nella directory home dell'utente ~~/.odbc.ini, né dinamicamente nel codice PHP.
Ad esempio, se il driver FreeTDS è stato definito in precedenza, è necessario specificare anche la versione del driver alla fine della dichiarazione dell'oggetto pdo:
$con = new PDO('odbc:Driver=FreeTDS;Server=__SERVER IP__;Port=3306;DATABASE=__DATABASE NAME__;UID=__USERNAME__;PWD=__PASSWORD__;TDS_Version=8.0');Link a questa FAQ: https://faq.infomaniak.com/895
Questa FAQ è stata utile?
Questa guida spiega come aumentare il valore di max_children su Server Cloud per aumentare il numero di processi PHP simultanei che possono essere utilizzati dal tuo sito. Questo sarà molto utile per risolvere i problemi di caricamento infinito delle pagine del tuo sito.
Introduzione
- Per impostazione predefinita, su tutti gli hosting, il limite di
max_childrenè impostato a 20.- Sebbene sia possibile aumentare questo valore tramite il Manager Infomaniak, il limite di
max_childrenviene automaticamente regolato in base alla configurazione del Server Cloud. - Per aumentare questo limite su un hosting condiviso, passa a un Server Cloud.
- Sebbene sia possibile aumentare questo valore tramite il Manager Infomaniak, il limite di
- Per capire come calcolare con precisione il numero di
max_childrennecessari, consulta questo articolo.
Aumentare il valore max_children
Prerequisiti
- Assicurarsi di disporre delle risorse necessarie sul server Cloud.
- Verificare che tutte le risorse del server Cloud non siano già in uso; in caso contrario, l'aumento del valore di
max_childrennon avrà alcun effetto (Modificare le risorse del server Cloud). - Controllare il monitoraggio delle risorse del server, nel caso in cui le risorse del server raggiungano il limite, sarà necessarioverificare l'ottimizzazione dei processi e del sito prima di valutare l'aumento del valore di
max_children. - Consultare i report degli errori PHP dalla cartella
/ik-logs(log del processo principale PHP - nome del file: php-fpm.log) per verificare se il limite "max_children" è stato superato... esempio di errore:[05-Jul-2024 09:08:58] WARNING: [pool www.infomaniak.ch] server reached max_children setting (20), consider raising it
Per accedere alla gestione dei parametri PHP / Apache del sito per il quale è necessario aumentare il valore max_children su Server Cloud, consultare questa guida.
Potrai, in particolare…
- … scegliere un nuovo valore per
max_children:
Non dimenticare di salvare le modifiche nella parte inferiore della pagina.
Limiti in base al server
Limite di max_children in base alle risorse del Server Cloud:
| Configurazione Server Cloud | max_children |
|---|---|
| 2 CPU / 6 GB di RAM | 20 |
| 4 CPU / 12 GB RAM | 40 |
| 6 CPU / 18 GB RAM | 60 |
| 8 CPU / 24 GB RAM | 80 |
| 12 CPU / 36 GB RAM | 120 |
| 16 CPU / 48 GB RAM | 160 |
| 24 CPU / 72 GB RAM | 240 |
| 32 CPU / 96 o 128 GB di RAM | 320 |
Link a questa FAQ: https://faq.infomaniak.com/1270
Questa FAQ è stata utile?
Questa guida riguarda Laravel, un framework web open source scritto in PHP che rispetta il principio modello-vista-controller (MVC). Consulta anche la loro documentazione.
Prerequisiti
- Avere un Hosting Web condiviso o un Server Cloud con la versione più recente di MySQL/MariaDB.
- Sito web con PHP 8.2.
- Creare un accesso SSH.
- Creare un database.
Installazione di Laravel 11
Per farlo:
- Accedi al server tramite SSH (hai bisogno di aiuto?).
- Spostati nella directory del sito eseguendo il comando “cd percorso-del-sito” (ad esempio
cd sites/laravel.domain.xyz). - Crea un nuovo progetto eseguendo il comando
composer create-project laravel/laravel example-app. - Modifica il file
.envnella directory principale dell'hosting per aggiornare le impostazioni di connessione al nuovo database:- DB_CONNECTION=mysql
- DB_HOST=xxxx.myd.infomaniak.com
- DB_PORT=3306
- DB_DATABASE= il nome del database MySQL (xxxx_newbdd)
- DB_USERNAME= l'utente MySQL con i permessi su questo database
- DB_PASSWORD= la sua password
- Spostati nella directory del progetto ed esegui la migrazione tramite SSH:
cd example-appphp artisan migrate - Modifica la directory di destinazione in modo che punti alla sottodirectory «public» del progetto, ad esempio
/sites/laravel.domain.xyz/example-app/public.
Link a questa FAQ: https://faq.infomaniak.com/2119
Questa FAQ è stata utile?
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.
Link a questa FAQ: https://faq.infomaniak.com/481
Questa FAQ è stata utile?
Questa guida spiega come modificare il valore della direttiva PHP include_path.
Modificare il include_path
Come per qualsiasi altro parametro PHP, include_path è definito nel file .user.ini.
Di seguito è riportato un esempio di percorso da utilizzare nel file .user.ini:
- Il punto (
.) all'inizio consente di mantenere la directory corrente nella ricerca. - Le point (
.) au début permet de conserver le répertoire courant dans la recherche. - I due punti (
:) fungono da separatore tra le diverse cartelle.
Consulta questa guida relativa a phpinfo per verificare se la nuova direttiva è stata applicata (l'aggiornamento potrebbe richiedere alcuni minuti).
Sebbene questo metodo sia ancora funzionante, l'utilizzo dell'autoloader di Composer è oggi la soluzione preferita per la gestione delle inclusioni.
Link a questa FAQ: https://faq.infomaniak.com/1108
Questa FAQ è stata utile?
Questa guida illustra le librerie software che consentono di gestire il formato PDF e che sono compatibili con le diverse offerte di hosting web di Infomaniak.
Introduzione
- Le estensioni PHP
PDFconsentono, tra le altre cose, di generare un file PDF a partire da dati dinamici, ad esempio per creare fatture personalizzate.
PDF e server cloud
Su Server Cloud, è possibile installare applicazioni come PDFtk…
- La classe PHP
FPDFè supportata. PDFlib, sviluppato da Apryse, non è più disponibile sui Server Cloud più recenti, poiché l'estensionePHP_PDFè diventata a pagamento. Se si desidera utilizzarla, è necessario acquistarla e installarla su VPS Cloud / VPS Lite o Public Cloud.
Sull'hosting condiviso, ImageMagick è attivo e supporta i formati EPDF, PDF e PDFA.
Link a questa FAQ: https://faq.infomaniak.com/1925
Questa FAQ è stata utile?
Questa guida riguarda Redis, un modulo PHP per Server Cloud Infomaniak.
Introduzione
Redisviene utilizzato con PHP per accelerare le prestazioni, fungendo da cache per i dati temporanei e per gestire le sessioni utente, migliorando così l'efficienza delle applicazioni web.Redisconsente inoltre di implementare sistemi di code e di archiviare temporaneamente dati per attività asincrone o statistiche.
Installare Redis
Redis può essere installato tramite Fast Installer, tra le applicazioni disponibili con pochi clic sul Server Cloud:
- Dopo l'installazione,
Redisè accessibile tramite l'indirizzo IP/portalocalhost:6379o127.0.0.1:6379. - La password per
Redisdeve essere composta da un minimo di 15 e un massimo di 99 caratteri.
Link a questa FAQ: https://faq.infomaniak.com/2113
Questa FAQ è stata utile?
Questa guida spiega come disattivare o configurare HSTS per un sito.
Introduzione
- Quando HSTS è attivato per un sito, il server indica al visitatore del sito (se il suo browser, come Brave, Chrome, Edge, Firefox, Opera, Safari, ecc., è compatibile) di sostituire tutti i link non sicuri con link sicuri.
- Esempio:
http://www.domain.xyz.com/one/page/viene automaticamente sostituito conhttps://www.domain.xyz/one/page/. - Dopo aver attivato un certificato SSL su un sito, l'HSTS viene configurato come segue:
max-age=16000000.
Disattivare HSTS…
… con un CMS (WordPress, Joomla, ecc.)
Includere in tutte le pagine generate dal CMS la seguente riga:
header( 'Strict-Transport-Security: max-age=0;' );Per WordPress, ad esempio, è possibile aggiungere questa direttiva nel file functions.php del tema:
add_action( 'send_headers', 'add_header_xua' );
function add_header_xua() {
header( 'Strict-Transport-Security: max-age=0;' );
}Maggiori dettagli su WordPress
… con un sito PHP
Includere la seguente riga in tutte le pagine PHP:
header( 'Strict-Transport-Security: max-age=0;' );Per fare ciò senza dover modificare ogni singola pagina PHP di un sito, è possibile utilizzare la direttiva auto_prepend_file nel file .user.ini del sito in questione:
auto_prepend_file=/home/clients/xxxx/web/hsts_disable.php... insieme al seguente file hsts_disable.php:
header( 'Strict-Transport-Security: max-age=0;' );
… con un sito con contenuti statici (non PHP)
Includere questo header in un file .htaccess:
# BEGIN DISABLE HSTS
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=0; includeSubDomains;"
</IfModule>
# END DISABLE HSTS
Personalizzare l'HSTS
Il valore predefinito può essere modificato nei file PHP del tuo sito web utilizzando la seguente direttiva:
header( 'Strict-Transport-Security: max-age=X; includeSubdomains; preload' );(X rappresenta il numero di secondi desiderato).
Abilitare HSTS per tutti i sottodomini ospitati
includeSubDomains; è abilitato per impostazione predefinita e, come suggerisce il nome, include i sottodomini nella configurazione di "Strict Transport Security".
Quando un visitatore accede a un sottodominio non protetto, il browser reindirizzerà automaticamente alla versione HTTPS, causando un errore di sicurezza.
Se questo comportamento non è desiderato, è necessario rimuovere tale intestazione.
Come cancellare la cache HSTS del browser…
… su Chrome
- In Chrome, digita
chrome://net-internals/#hsts. - Inserisci il nome di dominio nel campo di testo della sezione "Elimina le policy di sicurezza del dominio".
- Fai clic sul pulsante Elimina.
- Inserisci il nome di dominio nel campo di testo della sezione "Query HSTS".
- Fai clic sul pulsante "Query".
- La risposta deve essere "
Non trovato".
… su Safari
- Con Safari, inizia chiudendo il browser.
- Elimina il file
~/Library/Cookies/HSTS.plist. - Riapri Safari.
… su Firefox
- Con Firefox, chiudere tutte le schede.
- Aprire il menu di Firefox e fare clic su Cronologia / Mostra cronologia.
- Individua la pagina per cui desideri rimuovere le preferenze HSTS.
- Fai clic con il pulsante destro del mouse su una delle voci corrispondenti.
- Seleziona Non ricordare questo sito.
Link a questa FAQ: https://faq.infomaniak.com/2133
Questa FAQ è stata utile?
Questa guida è rivolta a sviluppatori e webmaster che riscontrano problemi di visualizzazione di caratteri speciali (ad esempio accenti, caratteri arabi, cinesi, emoji, ecc.) su un sito web o nel database, ospitati da Infomaniak.
Introduzione
- Cause frequenti di caratteri visualizzati in modo errato che appaiono al posto di caratteri speciali o emoji come
??:- Connessione PHP in
utf8invece diutf8mb4 - Tabella o colonna MySQL in
latin1outf8invece diutf8mb4 - File SQL codificato in modo diverso dal parametro di importazione
- File HTML/CSS/JS codificati in modo errato
- Assenza o dichiarazione errata del charset lato HTML, PHP o HTTP
- Connessione PHP in
- Soluzioni abituali:
- Utilizzare
utf8mb4ovunque: database, connessioni, tabelle, colonne, file, intestazioni - Verificare la codifica di tutti i file e i dump
- Testare la visualizzazione di emoji, accenti e altri caratteri multilingue
- Utilizzare
- Consultate anche questa guida per forzare una codifica diversa durante la connessione a un database MySQL.
Utilizzate un editor di testo che supporti il salvataggio in UTF-8 senza BOM (Visual Studio Code, Sublime Text, Notepad++...)
1. Utilizzare UTF-8 o UTF-8MB4 ovunque
La codifica utf8 di MySQL non supporta i caratteri a 4 byte, come le emoji. Questi verranno visualizzati come ??. È quindi necessario utilizzare utf8mb4, che è una vera e propria implementazione completa di UTF-8.
2. HTML – Dichiarazione corretta della codifica
Nell'elemento <head> delle vostre pagine HTML:
<meta charset="UTF-8">Assicurati inoltre che i file CSS/JS siano salvati in formato UTF-8 (senza BOM).
3. PHP – Forzare l'utilizzo di UTF-8 o UTF-8MB4
a) Intestazioni HTTP
header('Content-Type: text/html; charset=utf-8');b) Connessione MySQL (API MySQL)
$connection = mysql_connect($host, $user, $pass);
mysql_set_charset('utf8mb4', $connection);c) Connessione PDO
$dsn = "mysql:host=localhost;dbname=ma_base;charset=utf8mb4";
$pdo = new PDO($dsn, $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
4. Database MySQL
a) Configurazione in phpMyAdmin
- Il database, le tabelle e le colonne devono essere in
utf8mb4_unicode_cioutf8mb4_general_ci. - Nella scheda Operazioni, seleziona
utf8mb4_unicode_ciper il confronto.
b) Comandi SQL utili
ALTER DATABASE ma_base CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE ma_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;c) Dopo la connessione PHP
mysqli_query($conn, "SET NAMES 'utf8mb4'");
mysqli_query($conn, "SET CHARACTER SET 'utf8mb4'");
5. File .user.ini / .htaccess
Per forzare la codifica lato server (Apache):
AddDefaultCharset utf-8
Header set Content-Type "text/html; charset=utf-8"
# Pour PHP
php_value default_charset UTF-8
php_value mbstring.internal_encoding UTF-8
6. Importazione/esportazione di file SQL
Errori come é che diventa ? o un emoji ☺ che diventa ?? sono spesso causati da una mancata corrispondenza della codifica.
Verificare la codifica del file SQL prima dell'importazione. Utilizzare iconv, se necessario:
iconv -f ISO-8859-1 -t UTF-8 dump.sql > dump_utf8.sqlIn phpMyAdmin, specifica la codifica per l'importazione (ad esempio UTF-8, UTF-8MB4 o latin1, a seconda del file).
Link a questa FAQ: https://faq.infomaniak.com/1124
Questa FAQ è stata utile?
Questa guida spiega come gestire Memcached e, in particolare, come verificare se questo sistema di caching in memoria funziona correttamente sul tuo Server Cloud gestito.
Prerequisiti
- Installare Memcached su un server Cloud gestito.
Verificare l'esecuzione di Memcached
Per verificare il corretto funzionamento di Memcached:
Copia il seguente codice in un file PHP (connessione al server memcache locale):
$fp = fsockopen("localhost", 11211); if ($fp) { // on demande les stats fwrite($fp, "stats\n"); while (!feof($fp)) { $buf = rtrim(fgets($fp)); if (preg_match('/^STAT curr_items ([0-9]+)$/', $buf, $matches)) { // le nombre d'items stockes print $matches[1] . PHP_EOL; } elseif (preg_match('/(END|ERROR)/', $buf)) { // fin des stats break; } } fclose($fp); } else { print "Error: cannot connect to local memcached server: $!" . PHP_EOL; }- Carica il file PHP sul tuo spazio di hosting.
- Esegui il file PHP.
Lo script restituisce il numero di elementi memorizzati nella cache nella memoria del server.
Abilitare Memcached su…
… Prestashop
L'integrazione nativa di Memcached nell'applicazione Prestashop ne semplifica la configurazione. Per attivarla:
- Accedi al tuo pannello di amministrazione Prestashop.
- Vai alla scheda Impostazioni avanzate.
- Seleziona Prestazioni.
- Scegli Sì dal menu a tendina in Utilizza la cache nella sezione Memorizzazione nella cache.
- Seleziona CacheMemcached.
- Aggiungi un server fornendo le informazioni richieste, come ad esempio:
- l'indirizzo IP:
127.0.0.1 - la porta:
11211 - il peso:
1
- l'indirizzo IP:
È possibile verificare le informazioni facendo clic sul pulsante "Verifica server" prima di salvarle nella parte inferiore della sezione "Memorizzazione nella cache".
Una volta completata questa operazione, l'applicazione PrestaShop sarà pronta per utilizzare Memcached per memorizzare nella cache alcune chiamate API, chiamate al database e oggetti.
Link a questa FAQ: https://faq.infomaniak.com/2233
Questa FAQ è stata utile?
Questa guida riguarda il modulo Apache mod_auth_mysql, che consente l'autenticazione degli utenti e l'autorizzazione all'accesso tramite un database MySQL.
Con un hosting condiviso
Il modulo mod_auth_mysql non è disponibile con gli hosting condivisi; è necessario valutare un Server Cloud o utilizzare script PHP e sessioni.
Link a questa FAQ: https://faq.infomaniak.com/363
Questa FAQ è stata utile?
Questa guida spiega come usufruire delle nuove versioni di PHP, MySQL e di molti altri pacchetti migrando un Server Cloud su una nuova infrastruttura Infomaniak.
Introduzione
- La migrazione è gratuita e si svolge in 3 fasi:
- Infomaniak mette a disposizione un Server Cloud di ultima generazione con le stesse caratteristiche di quello attuale, allo stesso prezzo e con la stessa durata dell'impegno.
- Avrete a disposizione un mese per trasferire i vostri hosting sul nuovo Server Cloud messo a disposizione (vedi di seguito).
- Una volta trasferiti i vostri hosting sul nuovo server, disdettate il vecchio Server Cloud.
- Gli accessi FTP e i database non cambiano.
- Per quanto riguarda gli hosting, cambiano solo le versioni supportate di PHP e MariaDB, nonché gli indirizzi IPv4 e IPv6 del server.
- I nomi host non cambiano e vengono aggiornati automaticamente per puntare ai nuovi indirizzi IP.
- Durante questa operazione, le statistiche vengono reimpostate.
Procedura di migrazione
Migrando i tuoi dati sulla nuova infrastruttura Cloud, aumenterai le prestazioni e l'affidabilità dei tuoi siti, che potranno accedere alle ultime tecnologie:
- Clicca qui per accedere alla gestione del tuo prodotto tramite il Manager Infomaniak (hai bisogno di aiuto?).
- Fate clic direttamente sul nome assegnato al prodotto in questione.
- Fate clic sul pulsante blu presente nel riquadro "Aggiorna il tuo Server Cloud" (o su Gestisci):

Link a questa FAQ: https://faq.infomaniak.com/2813
Questa FAQ è stata utile?
Questa guida spiega come modificare un'offerta di Hosting Web esistente, ad esempio per poter ospitare siti 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.
Introduzione
- Per migrare un Server Cloud, consulta questa guida relativa alla migrazione verso una nuova generazione di Server Cloud.
Ordinare siti web, spazio su disco o indirizzi IP aggiuntivi
Per accedere al configuratore dell'hosting web:
- Clicca qui per accedere alla gestione degli hosting e dei siti nel tuo pannello di controllo Infomaniak (❓: guida).
- Fare clic sul menu azioni ⋮ situato a destra dell'hosting in questione.
- Se l'hosting non contiene un sito, fare clic sul suo nome e quindi su Gestisci.
- Fare clic su Modifica l'offerta:

- Aumenta i valori che desideri modificare.
- Fai clic 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:
- Consulta questa guida: seguendola e prima di eseguire il passaggio indicato al punto 4, dovresti visualizzare nel tuo pannello di controllo una barra informativa nella parte superiore della pagina; fai clic sul pulsante di migrazione:

Se non viene visualizzata alcuna barra informativa, significa che hai già un piano di hosting recente.
- Puoi anche consultare questa guida e seguire la procedura indicata fino alla fine:

Link a questa FAQ: https://faq.infomaniak.com/626
Questa FAQ è stata utile?
Questa guida spiega il funzionamento, la configurazione e la gestione di ModSecurity sui server Infomaniak.
Introduzione
- ModSecurity (
mod_secure) è disponibile e attivato per impostazione predefinita sui server Infomaniak:- Tutte le richieste HTTP saranno soggette alle regole di sicurezza definite da ModSecurity.
- L'estensione PHP
uploadprogressnon è disponibile sui server Infomaniak, poiché PHP viene utilizzato nella sua versione FPM.
- Non è possibile disattivare ModSecurity sui server Infomaniak:
- L'impostazione è globale per il server su cui è ospitato il tuo sito, il che significa che tutte le regole di sicurezza definite verranno applicate al tuo sito.
In caso di problemi
Errore di lingua (codice 403)
Se viene visualizzato il messaggio di errore ModSecurity: Accesso negato con codice 403 (fase 2). L'operatore EQ ha trovato corrispondenza con 0 in REQUEST_HEADERS. (...) in relazione a ModSecurity, è consigliabile verificare che sia configurata correttamente una lingua predefinita in un browser come Brave, Chrome, Edge, Firefox, Opera, Safari… Questo errore può talvolta essere causato da impostazioni di lingua configurate in modo errato nel browser.
Avviso "Il corpo della richiesta è più grande del limite configurato"
Se riscontri messaggi relativi all'errore o all'avviso Request body larger than configured limit, sappi che si tratta solo di un avviso: la richiesta viene comunque elaborata e non viene bloccata. Questa configurazione è specifica di alcune vecchie versioni di hosting (di tipo jessie) e consente a tutte le richieste di passare senza problemi sul server, senza alcun impatto sui tuoi visitatori.
Link a questa FAQ: https://faq.infomaniak.com/2098
Questa FAQ è stata utile?
Questa guida riguarda ImageMagick, una potente suite software per la manipolazione di immagini, disponibile sugli Hosting Web e sui Server Cloud di Infomaniak.
Installazione semplificata: per installare ImageMagick o le sue estensioni, si consiglia di utilizzare Fast Installer dal pannello di controllo.
ImageMagick e soluzioni per la manipolazione delle immagini
Sono disponibili diversi strumenti per elaborare le immagini (ridimensionamento, conversione, filigrane):
- ImageMagick (CLI): la suite principale utilizzabile tramite riga di comando (tramite SSH); il comando più recente è
magick, ma la sintassi precedenteconvertè ancora disponibile. - Estensione PHP
imagick: è la soluzione più comune per i siti web (WordPress, ecc.); consente di utilizzare ImageMagick direttamente nei propri script PHP. - Libreria GD: un'alternativa più leggera, spesso preinstallata, ideale per operazioni semplici (creazione di miniature, inserimento di testo nelle immagini).
- PerlMagick: interfaccia dedicata agli script Perl per accedere alle funzionalità di ImageMagick.
Percorsi e comandi
Sulle infrastrutture Infomaniak, ImageMagick è installato in modo standard. Gli eseguibili si trovano nella seguente directory:
/usr/bin/Ecco i comandi principali disponibili:
| Comando | Uso principale |
|---|---|
magick (o convert) | Convertire, ridimensionare e trasformare immagini. |
identify | Ottenere i metadati di un file (formato, dimensione, ecc.). |
mogrify | Applica direttamente la modifica al file originale. |
composite | Sovrapporre più immagini (ad esempio, aggiungere un logo come filigrana). |
Per verificare la presenza del modulo Perl Image::Magick, è possibile utilizzare il seguente comando:
perl -e 'use Image::Magick; print "Installed\n"';Link a questa FAQ: https://faq.infomaniak.com/322
Questa FAQ è stata utile?
Questa guida spiega come risolvere un problema di importazione di un file .csv in una tabella MySQL. L'alternativa proposta consiste nel leggere il file CSV riga per riga con PHP e inserire i dati nel database MySQL.
Funzione "LOAD DATA LOCAL INFILE" disabilitata
La funzione LOAD DATA LOCAL INFILE consente di importare un file CSV direttamente in una tabella MySQL. Tuttavia, questa funzionalità viene spesso sfruttata dagli aggressori per ottenere un accesso non autorizzato ai siti ospitati su server che la supportano.
Al fine di prevenire qualsiasi rischio per la sicurezza e proteggere i dati dei clienti, Infomaniak ha disattivato la funzione LOAD DATA LOCAL INFILE. Gli utenti che importano i propri file CSV tramite phpMyAdmin (senza selezionare l'opzione “CSV via LOAD DATA”) non sono interessati da questa modifica.
Di seguito è riportato un metodo alternativo per importare dati in formato CSV in una tabella MySQL. L'esempio qui sotto mostra come gestire correttamente gli errori durante l'apertura del file CSV e l'inserimento dei dati nel database.
Questo script utilizza mysqli per connettersi al database e query preparate per inserire i dati. Ciò garantisce una maggiore sicurezza, una compatibilità ottimale con le versioni più recenti di PHP e una semplice integrazione nel tuo progetto, sia in uno script esistente che in un nuovo file situato nella directory /web:
$fileName = "data.csv";
// Connessione al database MySQL utilizzando mysqli
$link = new mysqli("localhost", "username", "password", "database");
// Verifica della connessione al database
if ($link->connect_error) {
die("Connessione fallita: " . $link->connect_error);
}
// Apertura del file CSV in lettura
if (($handle = fopen($fileName, "r")) !== FALSE) {
// Lettura di ogni riga del file CSV
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
// Preparazione dinamica della query SQL
$query = "INSERT INTO `test` VALUES (" . str_repeat('?,', count($data) - 1) . "?)";
$stmt = $link->prepare($query);
// Verifica del successo della preparazione della query
if ($stmt === FALSE) {
die("Preparazione della query fallita: " . $link->error);
}
// Associazione dei parametri (supponendo che tutte le colonne siano stringhe)
$types = str_repeat('s', count($data));
$stmt->bind_param($types, ...$data);
// Esecuzione della query
if (!$stmt->execute()) {
die("Esecuzione della query fallita: " . $stmt->error);
}
// Chiusura dell'istruzione
$stmt->close();
}
// Chiusura del file CSV
fclose($handle);
} else {
echo "Errore: impossibile aprire il file.\n";
exit(1);
}
// Chiusura della connessione al database
$link->close();
?>
Ottenere assistenza
Purtroppo, non è possibile indicare con precisione in quale punto dello script queste righe di codice devono essere inserite.
Se questo metodo dovesse presentare problemi (ad esempio, in caso di importazione simultanea di più file CSV senza messaggi di errore), è possibile che la causa risieda nella struttura delle tabelle o nell'indicizzazione dei campi. In tal caso, contattare il proprio webmaster per una verifica.
Consultare anche la documentazione ufficiale PHP relativa alla funzione fgetcsv().
Link a questa FAQ: https://faq.infomaniak.com/1312
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_zonecontiene 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.
Link a questa FAQ: https://faq.infomaniak.com/487
Questa FAQ è stata utile?