Base di conoscenze
1000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Questa guida spiega come lavorare senza il modulo PECL SSH2 client
non disponibile su hosting Web e Server Cloud Infomaniak, utilizzando invece la libreria phpseclib
, che funziona in PHP nativo senza richiedere alcuna estensione specifica.
Preambolo
- L’uso di
PECL SSH2 client
Comporta errori di tipoNo compatible key exchange algorithms found
oppureUnable to exchange encryption keys
nell'ultima versione disponibile. Phpseclib
permette:- Autenticazione SSH tramite password o chiave privata.
- Esecuzione di comandi a distanza.
- Trasferimento di file sicuri (SFTP).
- Gestione delle chiavi SSH.
Utilizzare phpseclib
Per integrare una connessione SSH in uno script PHP, utilizzare phpseclib
come segue:
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('utilisateur', $key)) {
exit('Authentication Failed');
}
echo $ssh->exec('ls -la');
Infomaniak non effettua alcun backup dei VPS Cloud / VPS Lite.
Tuttavia, è possibile…
- … creare un'istantanea (snapshot) del server (backup non automatizzato)
- … salvare il server su Swiss Backup (backup automatizzato)
Questa guida ti aiuterà, ad esempio, se desideri distribuire un pacchetto come pymysql
e questo richiede una versione di python superiore a quella offerta sul tuo hosting.
Premessa
- Anaconda è una distribuzione libera e open source dei linguaggi di programmazione Python. Questa distribuzione mira a semplificare la gestione dei pacchetti e il deployment.
- È consigliabile utilizzare conda, fornito con una versione recente di python e che si installa nello spazio utente, in modo che non ci siano conflitti con il sistema python (come in un ambiente virtuale, che richiede sempre un'installazione di sistema della versione desiderata).
- Consultate la documentazione ufficiale.
⚠️ Per ulteriori assistenza contattate un partner o lanciate gratuitamente una richiesta di offerta — scoprite anche il ruolo dell'hosting provider.
Scaricare l'installatore
uid165116@od-12345:~$ wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh
--2021-07-28 18:21:10-- https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh
Resolving repo.anaconda.com (repo.anaconda.com)... 2606:4700::6810:8303, 2606:4700::6810:8203, 104.16.131.3, ...
Connecting to repo.anaconda.com (repo.anaconda.com)|2606:4700::6810:8303|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 89026327 (85M) [application/x-sh]
Saving to: ‘Miniconda3-py37_4.10.3-Linux-x86_64.sh’
Miniconda3-py37_4.10.3-Linux-x86_64.sh 100% [==============================================>] 84.90M 203MB/s in 0.4s
18:21:11 (100 MB/s) - ‘Miniconda3-py37_4.10.3-Linux-x86_64.sh’ saved [89026327/89026327]
Verificare l'hash
uid165116@od-12345:~$ test $(md5sum Miniconda3-py37_4.10.3-Linux-x86_64.sh | awk '{print $1}') == "9f186c1d86c266acc47dbc1603f0e2ed" && echo "OK"
OK
Avviare l'installazione
uid165116@od-12345:~$ bash Miniconda3-py37_4.10.3-Linux-x86_64.sh -b
PREFIX=/home/clients/fc84cbbf6dcbd6dd76b15d3e56c1789f/miniconda3
Unpacking payload ...
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /home/clients/fc84cbbf6dcbd6dd76b15d3e56c1789f/miniconda3
added / updated specs:
- _libgcc_mutex==0.1=main
- _openmp_mutex==4.5=1_gnu
- brotlipy==0.7.0=py37h27cfd23_1003
- ca-certificates==2021.7.5=h06a4308_1
- certifi==2021.5.30=py37h06a4308_0
- cffi==1.14.6=py37h400218f_0
- chardet==4.0.0=py37h06a4308_1003
- conda-package-handling==1.7.3=py37h27cfd23_1
- conda==4.10.3=py37h06a4308_0
- cryptography==3.4.7=py37hd23ed53_0
- idna==2.10=pyhd3eb1b0_0
- ld_impl_linux-64==2.35.1=h7274673_9
- libffi==3.3=he6710b0_2
- libgcc-ng==9.3.0=h5101ec6_17
- libgomp==9.3.0=h5101ec6_17
- libstdcxx-ng==9.3.0=hd4cf53a_17
- ncurses==6.2=he6710b0_1
- openssl==1.1.1k=h27cfd23_0
- pip==21.1.3=py37h06a4308_0
- pycosat==0.6.3=py37h27cfd23_0
- pycparser==2.20=py_2
- pyopenssl==20.0.1=pyhd3eb1b0_1
- pysocks==1.7.1=py37_1
- python==3.7.10=h12debd9_4
- readline==8.1=h27cfd23_0
- requests==2.25.1=pyhd3eb1b0_0
- ruamel_yaml==0.15.100=py37h27cfd23_0
- setuptools==52.0.0=py37h06a4308_0
- six==1.16.0=pyhd3eb1b0_0
- sqlite==3.36.0=hc218d9a_0
- tk==8.6.10=hbc83047_0
- tqdm==4.61.2=pyhd3eb1b0_1
- urllib3==1.26.6=pyhd3eb1b0_1
- wheel==0.36.2=pyhd3eb1b0_0
- xz==5.2.5=h7b6447c_0
- yaml==0.2.5=h7b6447c_0
- zlib==1.2.11=h7b6447c_3
The following NEW packages will be INSTALLED:
_libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main
_openmp_mutex pkgs/main/linux-64::_openmp_mutex-4.5-1_gnu
brotlipy pkgs/main/linux-64::brotlipy-0.7.0-py37h27cfd23_1003
ca-certificates pkgs/main/linux-64::ca-certificates-2021.7.5-h06a4308_1
certifi pkgs/main/linux-64::certifi-2021.5.30-py37h06a4308_0
cffi pkgs/main/linux-64::cffi-1.14.6-py37h400218f_0
chardet pkgs/main/linux-64::chardet-4.0.0-py37h06a4308_1003
conda pkgs/main/linux-64::conda-4.10.3-py37h06a4308_0
conda-package-han~ pkgs/main/linux-64::conda-package-handling-1.7.3-py37h27cfd23_1
cryptography pkgs/main/linux-64::cryptography-3.4.7-py37hd23ed53_0
idna pkgs/main/noarch::idna-2.10-pyhd3eb1b0_0
ld_impl_linux-64 pkgs/main/linux-64::ld_impl_linux-64-2.35.1-h7274673_9
libffi pkgs/main/linux-64::libffi-3.3-he6710b0_2
libgcc-ng pkgs/main/linux-64::libgcc-ng-9.3.0-h5101ec6_17
libgomp pkgs/main/linux-64::libgomp-9.3.0-h5101ec6_17
libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-9.3.0-hd4cf53a_17
ncurses pkgs/main/linux-64::ncurses-6.2-he6710b0_1
openssl pkgs/main/linux-64::openssl-1.1.1k-h27cfd23_0
pip pkgs/main/linux-64::pip-21.1.3-py37h06a4308_0
pycosat pkgs/main/linux-64::pycosat-0.6.3-py37h27cfd23_0
pycparser pkgs/main/noarch::pycparser-2.20-py_2
pyopenssl pkgs/main/noarch::pyopenssl-20.0.1-pyhd3eb1b0_1
pysocks pkgs/main/linux-64::pysocks-1.7.1-py37_1
python pkgs/main/linux-64::python-3.7.10-h12debd9_4
readline pkgs/main/linux-64::readline-8.1-h27cfd23_0
requests pkgs/main/noarch::requests-2.25.1-pyhd3eb1b0_0
ruamel_yaml pkgs/main/linux-64::ruamel_yaml-0.15.100-py37h27cfd23_0
setuptools pkgs/main/linux-64::setuptools-52.0.0-py37h06a4308_0
six pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_0
sqlite pkgs/main/linux-64::sqlite-3.36.0-hc218d9a_0
tk pkgs/main/linux-64::tk-8.6.10-hbc83047_0
tqdm pkgs/main/noarch::tqdm-4.61.2-pyhd3eb1b0_1
urllib3 pkgs/main/noarch::urllib3-1.26.6-pyhd3eb1b0_1
wheel pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0
xz pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
yaml pkgs/main/linux-64::yaml-0.2.5-h7b6447c_0
zlib pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3
Preparing transaction: done
Executing transaction: done
installation finished.
Avviare conda
uid165116@od-12345:~$ source <(~/miniconda3/bin/conda shell.bash hook)
Installare pymysql (ad esempio)
(base) uid165116@od-12345:~$ python3 -V
Python 3.7.10
(base) uid165116@od-12345:~$ pip3 install pymysql --user
Collecting pymysql
Downloading PyMySQL-1.0.2-py3-none-any.whl (43 kB)
|████████████████████████████████| 43 kB 892 kB/s
Installing collected packages: pymysql
Successfully installed pymysql-1.0.2
Questa guida spiega come specificare un file che verrà caricato prima della pagina desiderata o all'inizio di ogni script PHP eseguito sul tuo server, incluso come se fosse stato chiamato con la funzione require()
, ma in modo più globale utilizzando la direttiva auto_prepend_file
di PHP.
Premessa
- Ad esempio, per dichiarare gli header di un sito web, è possibile creare un file
headers.php
che contiene le funzioni PHPheader()
e che sia prepend all'inizio di ogni file PHP…- … tramite un file
.user.ini
(proprio di una cartella), - … o tramite la configurazione del sito del Manager (globale) come spiegato di seguito.
- … tramite un file
Includere un file globalmente dal Manager
Per accedere alla gestione del sito web:
- Clicca qui per accedere alla gestione del tuo prodotto su Manager Infomaniak (hai bisogno di aiuto?).
- Clicca direttamente sul nome attribuito al prodotto interessato:
- Fai clic su Gestisci sotto Impostazioni avanzate:
- Fai clic sulla scheda PHP / Apache.
- Completate la riga interessata inserendo il percorso del file da includere.
- Clicca sul pulsante per salvare:
Dopo aver definito questa direttiva, tutte le pagine PHP sul tuo server includeranno automaticamente il file specificato prima di eseguire il proprio codice.
Gli header definiti in un file .htaccess
sono validi solo per il contenuto non PHP (quindi statico).
Infomaniak utilizza php-fpm
che riceve i vari headers tramite apache fast_cgi
. Nella RFC di cgi_www l'header Strict-Transport-Security
non fa parte degli headers passati tramite CGI e la documentazione Apache lo conferma. Prendete visione di questa altra RFC.
⚠️ Per ulteriori assistenza contattate un partner o lanciate gratuitamente una richiesta di offerta — scoprite anche il ruolo dell'hosting provider.
L'infrastruttura Infomaniak non trasmette istruzioni di virtualizzazione ai VPS Cloud / VPS Lite; non è quindi possibile eseguire la virtualizzazione annidata (virtualizzazione che si eseguirebbe all'interno di un ambiente già virtualizzato) poiché ciò comporta problemi, in particolare durante le migrazioni in diretta.
Per utilizzare i moduli Perl
di un Server Cloud Infomaniak, è necessario installarli nell'albero utente e di Impostare il percorso completo all'interno degli script.
In questo modo potrai installare e aggiornare liberamente i tuoi moduli.
Questa guida riguarda la creazione di reti private tra diverse offerte di hosting Infomaniak come VPS Cloud / VPS Lite, Public Cloud, NAS Synology, ecc.
Creare un VLAN tra VPS
Non è possibile creare una rete privata (VLAN) tra VPS Cloud / VPS Lite e altri prodotti, come NAS Synology ad esempio, perché sono installati su reti separate.
Tuttavia, è possibile creare un VLAN tra almeno 10 VPS Cloud / VPS Lite di tua proprietà (contatta il supporto Infomaniak), ma una rete privata dedicata non potrà comunicare con un'altra.
È consigliabile migrare all'offerta Public Cloud per creare tali reti private tra VM.
Questa guida riguarda l'installazione di estensioni PHP su Hébergements Web Infomaniak.
Utilizzo di estensioni PHP Zend
- Zend Guard Loader è un'estensione PHP che consente di eseguire script PHP cifrati tramite Zend Guard.
- Zend Guard Loader è installato di default per PHP <= 5.6 su tutti gli hosting web e non è disponibile per le versioni di PHP >= 5.6.
- Da PHP 5.3.x, il modulo Zend Optimizer è stato sostituito da ZendGuardLoader
- L'estensione ZendOPCache richiede un Serveur Cloud configurato con PHP 5.5 minimo
Jelastic Cloud è una piattaforma in quanto servizio (PaaS) che permette di creare facilmente ambienti di sviluppo al volo. Questa soluzione è molto vantaggiosa nel caso in cui il consumo delle risorse (CPU, RAM) varia molto in base ai periodi dell'anno.
Un Serveur Cloud consente di gestire applicazioni e siti web con la stessa facilità di un hosting condiviso, offrendovi il vantaggio di poter installare software aggiuntivi secondo le vostre esigenze. Questa soluzione è molto vantaggiosa se il consumo delle risorse (CPU, RAM) è stabile e prevedibile.
Un VPS Cloud o VPS Lite permette di gestire l'intero server con la distribuzione Linux di tua scelta. Sono richieste solide competenze tecniche. Questa soluzione è molto vantaggiosa se il consumo delle risorse (CPU, RAM) è stabile e prevedibile.
In tutti e tre i casi, beneficia di risorse interamente dedicate che puoi regolare liberamente in base alle tue esigenze.
Prendete anche visione dell'offerta Public Cloud.
Questa guida spiega come aumentare il valore max_children
sur 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.
Preambolo
- Per impostazione predefinita su qualsiasi alloggio, il limite di
max_children
È fissato a 20.- Anche se è possibile aumentare questo valore dal Manager Infomaniak, il limite di
max_children
viene regolata automaticamente in base alla configurazione del tuo Server Cloud. - Per aumentare questo limite su hosting condiviso, Migrare su Server Cloud.
- Anche se è possibile aumentare questo valore dal Manager Infomaniak, il limite di
- Per capire come calcolare le
max_children
necessario, prendere conoscenza di questo articolo A questo proposito.
Aumentare il valore max_children
Prerequisiti
- Assicurarsi di disporre delle risorse necessarie sul server Cloud.
- Assicurarsi che tutte le risorse del server Cloud non vengano utilizzate; se si scopre che sono completamente utilizzate, l'aumento del valore
max_children
non avrà alcun effetto (Modificare le risorse del Server Cloud). - Controllare il monitoraggio delle risorse del serverNel caso in cui le risorse del tuo server vengano raggiunte, sarà necessario per verificare l'ottimizzazione dei processi e del tuo sito prima di considerare di aumentare il valore
max_children
. - Visualizzare i rapporti di errore PHP dalla cartella
/ik-logs
(master process php logs - 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 delle impostazioni PHP/Apache del sito di cui è necessario aumentare il valore max_children
su Cloud Server, prendere conoscenza di quest'altra guida.
In particolare potrete...
- Scegliere un nuovo valore di
max_children
:
Non dimenticare di salvare le modifiche in fondo alla pagina.
Limiti a seconda del server
Limite delle max_children
a seconda delle risorse del Server Cloud:
Configuration Serveur Cloud | max_children |
---|---|
2 CPU / 6 Go RAM | 20 |
4 CPU / 12 Go RAM | 40 |
6 CPU / 18 Go RAM | 60 |
8 CPU / 24 Go RAM | 80 |
12 CPU / 36 Go RAM | 120 |
16 CPU / 48 Go RAM | 160 |
24 CPU / 72 Go RAM | 240 |
32 CPU / 96 ou 128 Go RAM | 320 |