Page 1 of 1

SSH Restriktive Umgebung, Nextcloud, php und mysql

Posted: Mon 27. Sep 2021, 15:24
by DiscordDigital
Sehr geehrte KeyHelp Community
Sehr geehrtes KeyHelp Team

Ich nutze Nextcloud auf KeyHelp und habe das Problem, dass wenn ich mich via restriktiver SSH Umgebung verbinde,
ich kein "php occ" ausführen kann, es gibt dann lediglich eine Fehlermeldung.

Ohne restriktive SSH Umgebung funktioniert es. Ich habe bereits probiert mysql in den "Restricted SSH environment" freizuschalten,
jedoch funktioniert auch so die Verbindung nicht.

Ich habe das Thema jetzt in Bedienung und Nutzung aufgenommen, da ich davon ausgehe dass ich etwas nicht richtig konfiguriert habe.
Folgende Fehlermeldung wirft occ von Nextcloud in der Restricted SSH Umgebung:

Code: Select all

An unhandled exception has been thrown:
Doctrine\DBAL\Exception: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2002] No such file or directory in /www/nextcloud/lib/private/DB/Connection.php:87
Stack trace:
#0 /www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1486): OC\DB\Connection->connect()
#1 /www/nextcloud/3rdparty/doctrine/dbal/src/Connection.php(1014): Doctrine\DBAL\Connection->getWrappedConnection()
#2 /www/nextcloud/lib/private/DB/Connection.php(231): Doctrine\DBAL\Connection->executeQuery()
#3 /www/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php(210): OC\DB\Connection->executeQuery()
#4 /www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php(287): Doctrine\DBAL\Query\QueryBuilder->execute()
#5 /www/nextcloud/lib/private/AppConfig.php(344): OC\DB\QueryBuilder\QueryBuilder->execute()
#6 /www/nextcloud/lib/private/AppConfig.php(109): OC\AppConfig->loadConfigValues()
#7 /www/nextcloud/lib/private/AppConfig.php(300): OC\AppConfig->getApps()
#8 /www/nextcloud/lib/private/legacy/OC_App.php(961): OC\AppConfig->getValues()
#9 /www/nextcloud/lib/private/Server.php(685): OC_App::getAppVersions()
#10 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(160): OC\Server->OC\{closure}()
#11 /www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#12 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(127): Pimple\Container->offsetGet()
#13 /www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query()
#14 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query()
#15 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(182): OC\AppFramework\Utility\SimpleContainer->get()
#16 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(160): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#17 /www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#18 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(127): Pimple\Container->offsetGet()
#19 /www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query()
#20 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query()
#21 /www/nextcloud/lib/private/Server.php(1050): OC\AppFramework\Utility\SimpleContainer->get()
#22 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(160): OC\Server->OC\{closure}()
#23 /www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#24 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(127): Pimple\Container->offsetGet()
#25 /www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query()
#26 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query()
#27 /www/nextcloud/lib/private/Server.php(2010): OC\AppFramework\Utility\SimpleContainer->get()
#28 /www/nextcloud/lib/private/Files/View.php(118): OC\Server->getLockingProvider()
#29 /www/nextcloud/lib/private/Server.php(433): OC\Files\View->__construct()
#30 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(160): OC\Server->OC\{closure}()
#31 /www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}()
#32 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(127): Pimple\Container->offsetGet()
#33 /www/nextcloud/lib/private/ServerContainer.php(136): OC\AppFramework\Utility\SimpleContainer->query()
#34 /www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(56): OC\ServerContainer->query()
#35 /www/nextcloud/lib/private/Server.php(1373): OC\AppFramework\Utility\SimpleContainer->get()
#36 /www/nextcloud/lib/base.php(594): OC\Server->boot()
#37 /www/nextcloud/lib/base.php(1083): OC::init()
#38 /www/nextcloud/console.php(48): require_once('/www/nextcloud/...')
#39 /www/nextcloud/occ(11): require_once('/www/nextcloud/...')
Gibt es da Einstellungen die ich noch vornehmen kann damit es vielleicht doch funktioniert?

Vielen Dank!

Re: SSH Restriktive Umgebung, Nextcloud, php und mysql

Posted: Mon 27. Sep 2021, 15:43
by Blackmoon
Moin,
kann es sein, dass in der Konfigurationsdatei (./config/config.conf) von Nextcloud noch absolute Pfade drin stehen, die vor Aktivierung der SSH Jails gesetzt wurden?

Re: SSH Restriktive Umgebung, Nextcloud, php und mysql

Posted: Mon 27. Sep 2021, 16:12
by DiscordDigital
Blackmoon wrote: Mon 27. Sep 2021, 15:43 Moin,
kann es sein, dass in der Konfigurationsdatei (./config/config.conf) von Nextcloud noch absolute Pfade drin stehen, die vor Aktivierung der SSH Jails gesetzt wurden?
Hallo Blackmoon,

ich habe den Pfad angepasst in der config file, dann funktioniert allerdings Nextcloud nicht mehr, da der restriktive Pfad nur für SSH funktioniert.
In der SSH Sitzung funktioniert dann weiterhin "php occ" nicht. Ich denke nicht dass es daran liegt.

Trotzdem Danke für den Hinweis

Re: SSH Restriktive Umgebung, Nextcloud, php und mysql

Posted: Mon 27. Sep 2021, 16:47
by Alexander
Grüße,

öffne einmal die Datei config/config.php im Nextcloud Ordner und ändere "localhost" zu "127.0.0.1".

Re: SSH Restriktive Umgebung, Nextcloud, php und mysql

Posted: Mon 27. Sep 2021, 16:59
by DiscordDigital
Alexander wrote: Mon 27. Sep 2021, 16:47 Grüße,

öffne einmal die Datei config/config.php im Nextcloud Ordner und ändere "localhost" zu "127.0.0.1".
Hallo Alexander

Das löst tatsächlich das Problem mit der Datenbank-Verbindung, allerdings gibt es jetzt eine Fehlermeldung, dass der "datadirectory" Ordner nicht gefunden werden kann. Macht ja auch Sinn, in der Config steht der absolute Pfad, wenn ich ihn zum Pfad der SSH restriktiven Umgebung ändere, dann funktioniert "php occ", dann funktioniert jedoch die gesamte Nextcloud nicht mehr, da wo die SSH restriktive Umgebung nicht mehr wirkt der Pfad dann falsch ist.

Gibt es da noch eine elegante Lösung? Mir fällt spontan gerade keine ein

Re: SSH Restriktive Umgebung, Nextcloud, php und mysql  [GELÖST]

Posted: Mon 27. Sep 2021, 17:08
by tab-kh
DiscordDigital wrote: Mon 27. Sep 2021, 16:59 Das löst tatsächlich das Problem mit der Datenbank-Verbindung, allerdings gibt es jetzt eine Fehlermeldung, dass der "datadirectory" Ordner nicht gefunden werden kann. Macht ja auch Sinn, in der Config steht der absolute Pfad, wenn ich ihn zum Pfad der SSH restriktiven Umgebung ändere, dann funktioniert "php occ", dann funktioniert jedoch die gesamte Nextcloud nicht mehr, da wo die SSH restriktive Umgebung nicht mehr wirkt der Pfad dann falsch ist.

Gibt es da noch eine elegante Lösung? Mir fällt spontan gerade keine ein
Gibt es. Siehe z.B. hier: https://github.com/froonix/webhosting-m ... config.php
Also einfach eine Datei data.config.php im config-Verzeichnis erstellen mit dem verlinkten Inhalt. Das sollte das Problem beheben.

Edit: Klappt mit '/../data' natürlich nur, wenn deine datadirectory nicht woanders hin verschoben wurde. In dem Fall müsste dann dieser Pfad entsprechend angepasst werden.

Re: SSH Restriktive Umgebung, Nextcloud, php und mysql

Posted: Mon 27. Sep 2021, 17:46
by DiscordDigital
tab-kh wrote: Mon 27. Sep 2021, 17:08
DiscordDigital wrote: Mon 27. Sep 2021, 16:59 Das löst tatsächlich das Problem mit der Datenbank-Verbindung, allerdings gibt es jetzt eine Fehlermeldung, dass der "datadirectory" Ordner nicht gefunden werden kann. Macht ja auch Sinn, in der Config steht der absolute Pfad, wenn ich ihn zum Pfad der SSH restriktiven Umgebung ändere, dann funktioniert "php occ", dann funktioniert jedoch die gesamte Nextcloud nicht mehr, da wo die SSH restriktive Umgebung nicht mehr wirkt der Pfad dann falsch ist.

Gibt es da noch eine elegante Lösung? Mir fällt spontan gerade keine ein
Gibt es. Siehe z.B. hier: https://github.com/froonix/webhosting-m ... config.php
Also einfach eine Datei data.config.php im config-Verzeichnis erstellen mit dem verlinkten Inhalt. Das sollte das Problem beheben.

Edit: Klappt mit '/../data' natürlich nur, wenn deine datadirectory nicht woanders hin verschoben wurde. In dem Fall müsste dann dieser Pfad entsprechend angepasst werden.
Hat super funktioniert, vielen Dank!