# Sivustosi julkaiseminen

## Minne tiedostosi menevät

Jokaisella tilisi verkkotunnuksella on oma kansionsa, ja sen sivusto tarjoillaan kansion sisältämästä `public_html`-kansiosta:

```
/home/TUNNUS/domains/verkkotunnuksesi.com/public_html
```

`TUNNUS` on tilisi käyttäjätunnus, joka näkyy asiakasalueellasi. Kansioon `public_html` siirretty tiedosto `index.php` tai `index.html` on sivustosi etusivu.

## Tiedostojen siirtäminen

Kolme reittiä vie samaan kansioon; valitse sinulle sopiva.

### Tiedostonhallinta

Paneelissa **File Manager**: lähetä tiedostosi selaimestasi, myös `.zip`-arkisto, jonka purat paikan päällä. Se on nopein reitti muutamalle tiedostolle.

### Salattu FTP (FTPS)

FTP-ohjelmassa, kuten FileZillassa:

| Asetus             | Arvo                                                                |
| ------------------ | ------------------------------------------------------------------- |
| **Protokolla**     | FTP **eksplisiittisellä TLS-salauksella** (FTPS)                    |
| **Palvelin**       | palvelimesi nimi, esimerkiksi `web1.simafri.cloud`                  |
| **Portti**         | `21`                                                                |
| **Käyttäjätunnus** | tilisi käyttäjätunnus tai osiossa **FTP Management** luotu FTP-tili |
| **Salasana**       | paneelin salasana tai FTP-tilin salasana                            |

TLS-salaus suojaa salasanasi ja tiedostosi siirron aikana; valitse FileZillassa **Require explicit FTP over TLS**. Osiossa **FTP Management** luotu FTP-tili on muotoa `nimi@verkkotunnuksesi.com`, ja sen voi rajata yhteen kansioon, esimerkiksi ulkopuoliselle toimittajalle.

### SSH ja SFTP

SSH-yhteys muodostetaan **avaimella**, jonka tallennat paneeliin:

1. Eikö sinulla ole vielä avainta? Suorita tietokoneellasi `ssh-keygen -t ed25519` ja avaa sitten tiedosto, joka päättyy `.pub`: se on **julkinen** avaimesi.
2. Avaa paneelissa **SSH Keys** ja liitä julkinen avaimesi.
3. Muodosta yhteys:

```
ssh TUNNUS@web1.simafri.cloud
```

Sama avain avaa myös **SFTP**:n<!-- --> (portti `22`) FileZillassa tai WinSCP<!-- -->:ss<!-- -->ä. Vain julkinen avain tallennetaan: yksityinen avaimesi pysyy tietokoneellasi.

## PHP-version valitseminen

Jokainen verkkotunnus valitsee PHP-versionsa osiossa **PHP Version Selector**. Tarjolla ovat nyt **PHP 8.4**, **8.3** (oletusversio), **8.1** ja **7.4**, OPcachen ja yleisten laajennusten kera: intl, mbstring, gd, curl, zip, xml, sodium, bcmath, soap, PDO MySQL<!-- -->:lle<!-- --> ja SQLitelle. Tarvitseeko sovelluksesi toisen version? Kirjoita tukeen: tiimimme lisää sen.

## Tietokannan luominen

1. Avaa paneelissa **MySQL Databases** ja luo tietokanta: sen nimi ja käyttäjä ovat muotoa `TUNNUS_nimi`.
2. Kirjoita käyttäjän salasana muistiin.
3. Anna sovelluksessasi:

| Asetus                         | Arvo                                        |
| ------------------------------ | ------------------------------------------- |
| **Palvelin**                   | `localhost`                                 |
| **Portti**                     | `3306`                                      |
| **Tietokanta** ja **käyttäjä** | juuri luomasi, esimerkiksi `TUNNUS_sivusto` |

Samasta osiosta avattava **phpMyAdmin** tuo `.sql`-tiedoston, vie tietokantasi ja selaa taulujasi.

## Composer, Node.js ja sovelluskehykset

SSH<!-- -->:n<!-- --> kautta webhotellisi pyörittää:

* **Composer 2**: `composer install`, `composer update`;
* **Node.js 24** ja **npm**: `npm install`, `npm run build` käyttöliittymäsi tai resurssiesi kääntämiseen;
* **Git**, **Python 3** ja **Perl**.

**Symfonyssa** tai **Laravelissa** verkkotunnuksen verkkojuuri on projektin `public/`-kansio. Siirrä projektisi `public_html`-kansion viereen ja korvaa sitten `public_html` linkillä sen `public/`-kansioon:

```
cd ~/domains/verkkotunnuksesi.com

mv public_html public_html.alkuperainen

ln -s oma-projekti/public public_html
```

Sovelluskehyksen komennot (`php bin/console`, `php artisan`) suoritetaan projektin kansiossa. **Angular**-, **React**- tai **Vue**-käyttöliittymää varten siirrä `npm run build` -komennon tulos kansioon `public_html` yhdessä `.htaccess`-tiedoston kanssa, joka ohjaa reitit tiedostoon `index.html`.

Jatkuvasti käynnissä olevan sovelluksen, kuten Node.js-palvelimen tai viestijonon, paikka on [VPS Pro](https://docs.simafri.com/fi/vps-pro/).

## Tehtävän ajastaminen

Anna osiossa **Cron Jobs** tiheys ja komento, esimerkiksi joka päivä kello 3:

```
0 3 * * * /usr/local/bin/php /home/TUNNUS/domains/verkkotunnuksesi.com/oma-projekti/bin/console app:nettoyage
```

## Verkkotunnustesi HTTPS

Jokainen verkkotunnus ja aliverkkotunnus saa oman Let's Encrypt -**HTTPS-varmenteensa**, joka haetaan ja uusitaan automaattisesti heti, kun verkkotunnus osoittaa palvelimeesi. **SSL/TLS Certificates** näyttää kunkin verkkotunnuksen varmenteen. Jos haluat ohjata kävijäsi aina `https://`-osoitteeseen, lisää `public_html`-kansion `.htaccess`-tiedoston alkuun:

```
RewriteEngine On

RewriteCond %{HTTPS} off

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

## Usein kysytyt kysymykset

### Sivustoni näyttää yhä oletussivun.

Etusivusi on oltava suoraan kansiossa `public_html` nimellä `index.php` tai `index.html` eikä alikansiossa. Poista oletussivu, jos se on yhä siellä.

### Miten asennan WordPressin?

Kirjoita tukeen ja kerro verkkotunnus: tiimimme asentaa WordPressin webhotelliisi ja antaa sinulle pääsyn sen hallintaan.

### SSH-yhteyteni hylätään.

Tarkista, että **julkinen** avaimesi on osiossa **SSH Keys** ja että kirjaudut tilisi **Käyttäjätunnuksella**. SSH-yhteys muodostetaan avaimella: ohjelmasi on käytettävä yksityistä avainta, joka vastaa tallennettua.
