Aktivierung
Loggen Sie sich ins Plesk Administrationstool ein.
Falls Sie das Plesk Admin-Passwort nicht mehr besitzen, beachten Sie bitte den Artikel: Passwort vergessen
Über den Menüpunkt Websites & Domains können Sie unter Webhosting-Zugang den SSH-Zugang für den Systembenutzer freigeben:
Wählen Sie nun /bin/bash (chrooted) bei Zugang zum Server via SSH:
Login / Verbindungsaufbau
Verwenden Sie nun als SSH-Port 2121:
# ssh <benutzername>@<server> -p2121
ihrbenutzer@server.host.ch's password:
user@server />
Alternativ können Sie mit einem SSH-Client wie z.B. PuTTY, iTerm, MacOS Terminal o.ä. verbinden.
Verfügbare Befehle
Basis-Befehle | awk, basename, cat, cd, chgrp, chmod, chown, cp, cut, date echo, env, expr, file, gawk, grep, hostname, less, ln, ls mkdir, more, mv, printenv, pwd, readlink, rm, sed, sleep sort, stat, stty, tail, timeout, touch, tput, tr, uname, uniq wc, which, xargs, zgrep, zless |
Netzwerk / Dateiübermittlung | curl, rsync, scp, ssh, ssh-keygen, ssh-keyscan, wget |
Editor | vi, vim, nano |
Komprimierung/Archivierung | gunzip, gzip, tar, unzip, zip, bunzip2, bzip2 |
Suche | find, grep, diff |
Datenbank | mysql, mysqldump |
Entwickler-Tools | composer (Version 2), composer1 (Version 1), composer2 (Version 2) git, patch, wp (WP-CLI) PHP 7.4: /usr/bin/php bzw. php |
Weitere Hinweise
Hier finden Sie zusätzliche Hinweise über den SSH-Zugriff.
MySQL
Verbindungsaufbau
Die Verbindung zum Datenbank-Server muss zwingend über 127.0.0.1 erfolgen.
Hierfür muss an erster Stelle in Plesk der Zugriff von 127.0.0.1 erlaubt werden. Klicken Sie hierzu in Plesk unter "Datenbanken > Benutzerverwaltung" auf den entsprechenden Benutzer und aktivieren Sie dann unter "Zugriffssteuerung" die Option "Remoteverbindungen zulassen von" und tragen Sie im darunterliegenden Feld 127.0.0.1 ein.
Danach können Sie via Shell wie folgt verbinden.
Beispiel:
user@server /> mysql -h 127.0.0.1 -u <Datenbankbenutzer> -p <Datenbank>
Composer
composer ist in Version 1.x und 2.x global installiert und kann wie folgt aufgerufen werden:
$ composer
$ composer1
$ composer2
Beispiel
$ composer create-project -s dev typo3/flow-base-distribution testprojekt
Installing typo3/flow-base-distribution (dev-master 855c48407039a5917e4e4e35c92b841b99ab8b84)
- Installing typo3/flow-base-distribution (dev-master master)
Cloning master
Created project in testprojekt
Loading composer repositories with package information
Installing dependencies (including require-dev)
- Installing composer/installers (v1.0.13)
Loading from cache [..]
Beispiel Composer Update mit verschiedenen PHP Versionen und erhöhtem memory_limit
/opt/php73/bin/php -d memory_limit=2048M /bin/composer update
/opt/php74/bin/php -d memory_limit=2048M /bin/composer update
/opt/php80/bin/php -d memory_limit=2048M /bin/composer update
/opt/php81/bin/php -d memory_limit=2048M /bin/composer update
/opt/php82/bin/php -d memory_limit=2048M /bin/composer update
SSH
Eigener SSH-Key hinterlegen
Um ohne Passwort zu verbinden, können Sie jederzeit Ihren Public SSH-Key auf dem Server hinterlegen. Erstellen Sie hierzu ein Verzeichnis ".ssh" auf Root-Ebene (/) und legen Sie den Key in der Datei authorized_keys ab:
user@server /> mkdir ~/.ssh && chmod 700 ~/.ssh
user@server /.ssh> cd .ssh
user@server /.ssh> vi authorized_keys
user@server /.ssh> chmod 600 authorized_keys
sudo
Der sudo-Befehl wird nicht benötigt, da PHP direkt mit dem eigenen Systembenutzer ausgeführt wird.
Als Beispiel, in der Anleitung Ihres CMS stehen die folgenden Befehle:
# sudo -u www.data php occ maintenance:mode —on
# sudo -u www.data php occ db:add-missing-indices
# sudo -u www.data php occ db:convert-filecache-bigint
# sudo -u www.data php occ maintenance:mode —off
Diese können Sie wie folgt über die Shell ausführen:
php occ maintenance:mode —on
php occ db:add-missing-indices
php occ db:convert-filecache-bigint
php occ maintenance:mode —off
WordPress CLI / Drupal (drush / Drupal Console)
Keine Datenbankverbindung möglich
Bei Ausführung von wp Commands wird folgender Fehler ausgegeben:
Error: Error establishing a database connection
bzw. bei drush:
* connect the database through a socket. The socket file may be
wrong or the php-cli may have no access to it in a jailed shell.
Standardmässig hinterlegt die Applikation "localhost" als Datenbank-Host. Da die Shell-Umgebung mit TCP arbeitet, kann darauf nicht via Socket zugegriffen werden. Somit ist eine Anpassung in der Konfig-Datei erforderlich. Sie können entweder "localhost:3306" auf "127.0.0.1:3306" ändern oder die Konfig dynamisch gestalten.
Beispiel WordPress (wp-config.php):
/** Tell WP-CLI to use TCP instead of socket connection */
if ( defined( 'WP_CLI' ) && WP_CLI ) {
/** MySQL hostname for WP-CLI */
define('DB_HOST', '127.0.0.1:3306');
} else {
/** MySQL hostname */
define('DB_HOST', 'localhost:3306'); }
PHP
PHP Version ändern
Standardmässig wird PHP 7.4 beim Ausführen des Befehls "php" verwendet. Sie haben jedoch die Möglichkeit, dies mit einem Alias nach Ihren Bedürfnissen anzupassen.
Beispiel PHP 8.0:
alias php='/opt/php80/bin/php'
echo "alias php='/opt/php80/bin/php'" >> ~/.bash_profile
export PATH=/opt/php80/bin:$PATH
echo "export PATH=/opt/php80/bin:\$PATH" >> ~/.bash_profile
Kundenbeiträge
Automatisierte Deployments
- Florian Moser - plesk-deployer: https://github.com/FlorianMoser/plesk-deployer
Managed Server
Auf Managed Servern ist SSH per Default von aussen nicht verfügbar. Bitte melden Sie sich beim Support, um SSH freizuschalten.
Artikel aktualisiert am 10.01.2023