# Publikacja strony

## Gdzie trafiają pliki

Każda domena na koncie ma swój folder, a jej strona jest serwowana z zawartego w nim folderu `public_html`:

```
/home/USERNAME/domains/your-domain.com/public_html
```

`USERNAME` to nazwa użytkownika konta, wyświetlana w panelu klienta. Plik `index.php` lub `index.html` umieszczony w `public_html` staje się stroną główną witryny.

## Przesyłanie plików

Do tego samego folderu prowadzą trzy drogi; proszę wybrać najwygodniejszą.

### Menedżer plików

W panelu, **File Manager**: pliki przesyła się z przeglądarki, również archiwum `.zip`, które rozpakowuje się na miejscu. To najszybsza droga dla kilku plików.

### Szyfrowany FTP (FTPS)

W programie FTP, takim jak FileZilla:

| Ustawienie            | Wartość                                                              |
| --------------------- | -------------------------------------------------------------------- |
| **Protokół**          | FTP, z **jawnym szyfrowaniem TLS** (FTPS)                            |
| **Host**              | nazwa Państwa serwera, na przykład `web1.simafri.cloud`              |
| **Port**              | `21`                                                                 |
| **Nazwa użytkownika** | nazwa użytkownika konta lub konto FTP utworzone w **FTP Management** |
| **Hasło**             | hasło do panelu lub hasło konta FTP                                  |

Szyfrowanie TLS chroni hasło i pliki podczas przesyłania; w programie FileZilla proszę wybrać **Wymagaj jawnego FTP przez TLS**. Konto FTP utworzone w **FTP Management** ma postać `name@your-domain.com` i można je ograniczyć do jednego folderu, na przykład dla zewnętrznego wykonawcy.

### SSH i SFTP

Dostęp SSH odbywa się za pomocą **klucza**, który zapisują Państwo w panelu:

1. Nie mają Państwo jeszcze klucza? Na komputerze proszę uruchomić `ssh-keygen -t ed25519`, a następnie otworzyć plik z końcówką `.pub`: to Państwa klucz **publiczny**.
2. W panelu proszę otworzyć **SSH Keys** i wkleić klucz publiczny.
3. Połączyć się:

```
ssh USERNAME@web1.simafri.cloud
```

Ten sam klucz otwiera **SFTP** (port `22`) w programie FileZilla lub WinSCP. Zapisuje się wyłącznie klucz publiczny: klucz prywatny pozostaje na Państwa komputerze.

## Wybór wersji PHP

Każda domena ma własną wersję PHP, wybieraną w **PHP Version Selector**. Obecnie dostępne są **PHP 8.4**, **8.3** (wersja domyślna), **8.1** i **7.4**, z OPcache i popularnymi rozszerzeniami: intl, mbstring, gd, curl, zip, xml, sodium, bcmath, soap, PDO dla MySQL i SQLite. Aplikacja wymaga innej wersji? Prosimy napisać do wsparcia: nasz zespół ją doda.

## Tworzenie bazy danych

1. W panelu proszę otworzyć **MySQL Databases** i utworzyć bazę: jej nazwa i użytkownik mają postać `USERNAME_nazwa`.
2. Zanotować hasło użytkownika.
3. W aplikacji podać:

| Ustawienie                | Wartość                                                          |
| ------------------------- | ---------------------------------------------------------------- |
| **Host**                  | `localhost`                                                      |
| **Port**                  | `3306`                                                           |
| **Baza** i **użytkownik** | te, które właśnie Państwo utworzyli, na przykład `USERNAME_site` |

**phpMyAdmin**, otwierany z tej samej sekcji, importuje plik `.sql`, eksportuje bazę i pozwala przeglądać tabele.

## Composer, Node.js i frameworki

Przez SSH na Państwa hostingu działają:

* **Composer 2**: `composer install`, `composer update`;
* **Node.js 24** i **npm**: `npm install`, `npm run build` do kompilacji front-endu lub zasobów;
* **Git**, **Python 3** i **Perl**.

W przypadku **Symfony** lub **Laravel** katalogiem głównym domeny jest folder `public/` projektu. Proszę umieścić projekt obok `public_html`, a następnie zastąpić `public_html` dowiązaniem do jego folderu `public/`:

```
cd ~/domains/your-domain.com

mv public_html public_html.original

ln -s my-project/public public_html
```

Polecenia frameworka (`php bin/console`, `php artisan`) uruchamia się w folderze projektu. W przypadku front-endu **Angular**, **React** lub **Vue** proszę umieścić wynik `npm run build` w `public_html`, wraz z plikiem `.htaccess`, który kieruje ścieżki do `index.html`.

Aplikacja, która musi działać w trybie ciągłym, na przykład serwer Node.js lub kolejka wiadomości, ma swoje miejsce na [VPS Pro](https://docs.simafri.com/pl/vps-pro/).

## Planowanie zadania

W **Cron Jobs** proszę podać częstotliwość i polecenie, na przykład codziennie o 3:00:

```
0 3 * * * /usr/local/bin/php /home/USERNAME/domains/your-domain.com/my-project/bin/console app:cleanup
```

## HTTPS Państwa domen

Każda domena i subdomena otrzymuje **certyfikat HTTPS** Let's Encrypt, wnioskowany i odnawiany automatycznie, gdy tylko domena wskazuje na Państwa serwer. **SSL/TLS Certificates** wyświetla certyfikat każdej domeny. Aby zawsze kierować odwiedzających na adres `https://`, proszę dodać na początku pliku `.htaccess` w `public_html`:

```
RewriteEngine On

RewriteCond %{HTTPS} off

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

## Najczęstsze pytania

### Moja strona wciąż wyświetla stronę domyślną.

Strona główna musi znajdować się bezpośrednio w `public_html`, pod nazwą `index.php` lub `index.html`, a nie w podfolderze. Proszę usunąć stronę domyślną, jeśli nadal tam jest.

### Jak zainstalować WordPressa?

Prosimy napisać do wsparcia, podając domenę: nasz zespół zainstaluje WordPressa na hostingu i przekaże Państwu dostęp do jego panelu administracyjnego.

### Moje połączenie SSH jest odrzucane.

Proszę sprawdzić, czy klucz **publiczny** znajduje się w **SSH Keys** i czy logują się Państwo **Nazwą użytkownika** konta. Połączenie SSH odbywa się za pomocą klucza: program musi używać klucza prywatnego odpowiadającego zapisanemu kluczowi publicznemu.
