# Ihre Website online stellen

## Wohin Ihre Dateien gehören

Jede Domain Ihres Kontos hat ihren eigenen Ordner, und ihre Website wird aus dem darin enthaltenen Ordner `public_html` ausgeliefert:

```
/home/BENUTZERNAME/domains/ihre-domain.com/public_html
```

`BENUTZERNAME` ist der Benutzername Ihres Kontos, der in Ihrem Kundenbereich angezeigt wird. Eine Datei `index.php` oder `index.html` in `public_html` wird zur Startseite Ihrer Website.

## Ihre Dateien hochladen

Drei Wege führen zum selben Ordner; wählen Sie den, der Ihnen am besten passt.

### Der Dateimanager

Im Panel, **File Manager**: Laden Sie Ihre Dateien aus Ihrem Browser hoch, auch ein `.zip`-Archiv, das Sie direkt dort entpacken. Das ist der schnellste Weg für einige wenige Dateien.

### Verschlüsseltes FTP (FTPS)

In einem FTP-Programm wie FileZilla:

| Einstellung      | Wert                                                                              |
| ---------------- | --------------------------------------------------------------------------------- |
| **Protokoll**    | FTP, mit **expliziter TLS-Verschlüsselung** (FTPS)                                |
| **Server**       | der Name Ihres Servers, zum Beispiel `web1.simafri.cloud`                         |
| **Port**         | `21`                                                                              |
| **Benutzername** | der Benutzername Ihres Kontos oder ein in **FTP Management** angelegtes FTP-Konto |
| **Passwort**     | das des Panels oder das des FTP-Kontos                                            |

Die TLS-Verschlüsselung schützt Ihr Passwort und Ihre Dateien während der Übertragung; wählen Sie in FileZilla **Explizites FTP über TLS erfordern**. Ein in **FTP Management** angelegtes FTP-Konto hat die Form `name@ihre-domain.com` und lässt sich auf einen Ordner beschränken, zum Beispiel für einen Dienstleister.

### SSH und SFTP

Der SSH-Zugang erfolgt per **Schlüssel**, den Sie im Panel hinterlegen:

1. Noch kein Schlüssel? Führen Sie auf Ihrem Computer `ssh-keygen -t ed25519` aus und öffnen Sie dann die Datei mit der Endung `.pub`: Das ist Ihr **öffentlicher** Schlüssel.
2. Öffnen Sie im Panel **SSH Keys** und fügen Sie Ihren öffentlichen Schlüssel ein.
3. Verbinden Sie sich:

```
ssh BENUTZERNAME@web1.simafri.cloud
```

Derselbe Schlüssel öffnet **SFTP** (Port `22`) in FileZilla oder WinSCP. Nur der öffentliche Schlüssel wird hinterlegt: Ihr privater Schlüssel bleibt auf Ihrem Computer.

## Die PHP-Version wählen

Jede Domain wählt ihre PHP-Version in **PHP Version Selector**. Derzeit verfügbar sind **PHP 8.4**, **8.3** (die Standardversion), **8.1** und **7.4**, mit OPcache und den gängigen Erweiterungen: intl, mbstring, gd, curl, zip, xml, sodium, bcmath, soap, PDO für MySQL und SQLite. Ihre Anwendung braucht eine andere Version? Schreiben Sie an den Support: Unser Team fügt sie hinzu.

## Eine Datenbank anlegen

1. Öffnen Sie im Panel **MySQL Databases** und legen Sie eine Datenbank an: Ihr Name und ihr Benutzer haben die Form `BENUTZERNAME_name`.
2. Notieren Sie das Passwort des Benutzers.
3. Geben Sie in Ihrer Anwendung an:

| Einstellung                    | Wert                                                    |
| ------------------------------ | ------------------------------------------------------- |
| **Host**                       | `localhost`                                             |
| **Port**                       | `3306`                                                  |
| **Datenbank** und **Benutzer** | die soeben angelegten, zum Beispiel `BENUTZERNAME_site` |

**phpMyAdmin**, das Sie aus derselben Rubrik öffnen, importiert eine `.sql`-Datei, exportiert Ihre Datenbank und durchsucht Ihre Tabellen.

## Composer, Node.js und Frameworks

Über SSH führt Ihr Hosting aus:

* **Composer 2**: `composer install`, `composer update`;
* **Node.js 24** und **npm**: `npm install`, `npm run build`, um Ihr Frontend oder Ihre Assets zu kompilieren;
* **Git**, **Python 3** und **Perl**.

Für **Symfony** oder **Laravel** ist das Web-Stammverzeichnis der Domain der Ordner `public/` des Projekts. Legen Sie Ihr Projekt neben `public_html` ab und ersetzen Sie dann `public_html` durch einen Link auf seinen Ordner `public/`:

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

mv public_html public_html.original

ln -s mein-projekt/public public_html
```

Die Befehle des Frameworks (`php bin/console`, `php artisan`) starten Sie im Projektordner. Für ein Frontend mit **Angular**, **React** oder **Vue** legen Sie das Ergebnis von `npm run build` in `public_html` ab, mit einer `.htaccess`-Datei, die die Routen an `index.html` weiterleitet.

Eine Anwendung, die dauerhaft laufen muss, wie ein Node.js-Server oder eine Nachrichtenwarteschlange, gehört auf einen [VPS Pro](https://docs.simafri.com/de/vps-pro/).

## Eine Aufgabe planen

Geben Sie in **Cron Jobs** die Häufigkeit und den Befehl an, zum Beispiel jeden Tag um 3 Uhr:

```
0 3 * * * /usr/local/bin/php /home/BENUTZERNAME/domains/ihre-domain.com/mein-projekt/bin/console app:bereinigung
```

## Das HTTPS Ihrer Domains

Jede Domain und Subdomain erhält ihr Let's-Encrypt-**HTTPS-Zertifikat**, automatisch angefordert und erneuert, sobald die Domain auf Ihren Server zeigt. **SSL/TLS Certificates** zeigt das Zertifikat jeder Domain. Um Ihre Besucher stets zur Adresse mit `https://` zu leiten, fügen Sie am Anfang der `.htaccess`-Datei in `public_html` hinzu:

```
RewriteEngine On

RewriteCond %{HTTPS} off

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

## Häufige Fragen

### Meine Website zeigt noch die Standardseite.

Ihre Startseite muss direkt in `public_html` liegen, unter dem Namen `index.php` oder `index.html`, und nicht in einem Unterordner. Löschen Sie die Standardseite, falls sie noch dort liegt.

### Wie installiere ich WordPress?

Schreiben Sie an den Support und geben Sie die Domain an: Unser Team installiert WordPress auf Ihrem Hosting und übergibt Ihnen den Zugang zu seiner Verwaltung.

### Meine SSH-Verbindung wird abgelehnt.

Prüfen Sie, dass Ihr **öffentlicher** Schlüssel in **SSH Keys** steht und dass Sie sich mit dem **Benutzernamen** Ihres Kontos verbinden. Die SSH-Verbindung erfolgt per Schlüssel: Ihr Programm muss den privaten Schlüssel verwenden, der zum hinterlegten passt.
