# Mettere online il Suo sito

## Dove vanno i Suoi file

Ogni dominio del Suo account ha la sua cartella, e il suo sito viene servito dalla cartella `public_html` che contiene:

```
/home/NOMEUTENTE/domains/il-suo-dominio.com/public_html
```

`NOMEUTENTE` è il nome utente del Suo account, mostrato nella Sua area clienti. Un file `index.php` o `index.html` depositato in `public_html` diventa la home page del Suo sito.

## Depositare i Suoi file

Tre strade portano alla stessa cartella; scelga quella che Le è più comoda.

### Il file manager

Nel pannello, **File Manager**: invii i Suoi file dal Suo browser, anche un archivio `.zip`, che decomprime sul posto. È la strada più rapida per pochi file.

### L'FTP cifrato (FTPS)

In un programma FTP come FileZilla:

| Impostazione    | Valore                                                                        |
| --------------- | ----------------------------------------------------------------------------- |
| **Protocollo**  | FTP, con **cifratura TLS esplicita** (FTPS)                                   |
| **Host**        | il nome del Suo server, per esempio `web1.simafri.cloud`                      |
| **Porta**       | `21`                                                                          |
| **Nome utente** | il nome utente del Suo account, o un account FTP creato in **FTP Management** |
| **Password**    | quella del pannello, o quella dell'account FTP                                |

La cifratura TLS protegge la Sua password e i Suoi file durante il trasferimento; in FileZilla, scelga **Richiedi FTP esplicito su TLS**. Un account FTP creato in **FTP Management** assume la forma `nome@il-suo-dominio.com` e può essere limitato a una cartella, per un fornitore esterno per esempio.

### L'SSH e l'SFTP

L'accesso SSH avviene tramite **chiave**, che Lei registra nel pannello:

1. Non ha ancora una chiave? Sul Suo computer, esegua `ssh-keygen -t ed25519`, poi apra il file che termina con `.pub`: è la Sua chiave **pubblica**.
2. Nel pannello, apra **SSH Keys**, poi incolli la Sua chiave pubblica.
3. Si colleghi:

```
ssh NOMEUTENTE@web1.simafri.cloud
```

La stessa chiave apre l'**SFTP** (porta `22`) in FileZilla o WinSCP. Si registra solo la chiave pubblica: la Sua chiave privata resta sul Suo computer.

## Scegliere la versione di PHP

Ogni dominio sceglie la sua versione di PHP in **PHP Version Selector**. Oggi sono proposte **PHP 8.4**, **8.3** (la versione predefinita), **8.1** e **7.4**, con OPcache e le estensioni più comuni: intl, mbstring, gd, curl, zip, xml, sodium, bcmath, soap, PDO per MySQL e SQLite. La Sua applicazione richiede un'altra versione? Scriva al supporto: il nostro team la aggiunge.

## Creare un database

1. Nel pannello, apra **MySQL Databases**, poi crei un database: il suo nome e il suo utente assumono la forma `NOMEUTENTE_nome`.
2. Annoti la password dell'utente.
3. Nella Sua applicazione, indichi:

| Impostazione              | Valore                                                     |
| ------------------------- | ---------------------------------------------------------- |
| **Host**                  | `localhost`                                                |
| **Porta**                 | `3306`                                                     |
| **Database** e **utente** | quelli che ha appena creato, per esempio `NOMEUTENTE_sito` |

**phpMyAdmin**, aperto dalla stessa sezione, importa un file `.sql`, esporta il Suo database e ne sfoglia le tabelle.

## Composer, Node.js e i framework

Via SSH, il Suo hosting fa girare:

* **Composer 2**: `composer install`, `composer update`;
* **Node.js 24** e **npm**: `npm install`, `npm run build` per compilare il Suo front-end o i Suoi asset;
* **Git**, **Python 3** e **Perl**.

Per **Symfony** o **Laravel**, la radice web del dominio è la cartella `public/` del progetto. Depositi il Suo progetto accanto a `public_html`, poi sostituisca `public_html` con un collegamento alla sua cartella `public/`:

```
cd ~/domains/il-suo-dominio.com

mv public_html public_html.originale

ln -s mio-progetto/public public_html
```

I comandi del framework (`php bin/console`, `php artisan`) si lanciano nella cartella del progetto. Per un front-end **Angular**, **React** o **Vue**, depositi il risultato di `npm run build` in `public_html`, con un file `.htaccess` che rimanda le rotte verso `index.html`.

Un'applicazione che deve restare avviata in continuo, come un server Node.js o una coda di messaggi, trova il suo posto su un [VPS Pro](https://docs.simafri.com/it/vps-pro/).

## Pianificare un'attività

In **Cron Jobs**, indichi la frequenza e il comando, per esempio ogni giorno alle 3:

```
0 3 * * * /usr/local/bin/php /home/NOMEUTENTE/domains/il-suo-dominio.com/mio-progetto/bin/console app:pulizia
```

## L'HTTPS dei Suoi domini

Ogni dominio e sottodominio riceve il suo **certificato HTTPS** Let's Encrypt, richiesto e rinnovato automaticamente non appena il dominio punta al Suo server. **SSL/TLS Certificates** mostra il certificato di ogni dominio. Per inviare sempre i Suoi visitatori all'indirizzo in `https://`, aggiunga in testa al file `.htaccess` di `public_html`:

```
RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
```

## Domande frequenti

### Il mio sito mostra ancora la pagina predefinita.

La Sua home page deve trovarsi direttamente in `public_html`, con il nome `index.php` o `index.html`, e non in una sottocartella. Elimini la pagina predefinita se si trova ancora lì.

### Come installo WordPress?

Scriva al supporto indicando il dominio: il nostro team installa WordPress sul Suo hosting e Le consegna l'accesso alla sua amministrazione.

### La mia connessione SSH viene rifiutata.

Verifichi che la Sua chiave **pubblica** compaia in **SSH Keys** e che si colleghi con il **Nome utente** del Suo account. La connessione SSH avviene tramite chiave: il Suo programma deve usare la chiave privata che corrisponde a quella registrata.
