PHP Installation sysPass

TuberPlays

Lt. Junior Grade
Registriert
Jan. 2016
Beiträge
439
Hallo zusammen,

der Linux Anfänger kommt mal wieder nicht weiter ;)

Ich versuche seit geraumer Zeit sysPass unter Cent OS 7 zu installieren.

Vorgegangen bin ich zuerst nach dieser Anleitung. Dort bekam ich beim Aufruf der Seite aber dann die PHP Seite Brockenweise plain angezeigt. Nach ein bisschen suchen habe ich das gefunden, also CentOS neu installiert (damit auch alles weg ist) und nach der Anleitung neu installiert.

Bei der Composer Installation bekomme ich auch etwas "fehlerhaltiges" zurück
Your requirements could not be resolved to an installable set of packages.

Problem 1
- This package requires php 5.6.* || 7.0.* but your HHVM version does not sa tisfy that requirement.
Problem 2
- Installation request for doctrine/annotations v1.4.0 -> satisfiable by doc trine/annotations[v1.4.0].
- doctrine/annotations v1.4.0 requires php ^5.6 || ^7.0 -> your PHP version (5.4.16) does not satisfy that requirement.
Problem 3
- Installation request for doctrine/cache v1.6.2 -> satisfiable by doctrine/ cache[v1.6.2].
- doctrine/cache v1.6.2 requires php ~5.5|~7.0 -> your PHP version (5.4.16) does not satisfy that requirement.
Problem 4
- Installation request for doctrine/collections v1.4.0 -> satisfiable by doc trine/collections[v1.4.0].
- doctrine/collections v1.4.0 requires php ^5.6 || ^7.0 -> your PHP version (5.4.16) does not satisfy that requirement.
Problem 5
- Installation request for doctrine/common v2.7.3 -> satisfiable by doctrine /common[v2.7.3].
- doctrine/common v2.7.3 requires php ~5.6|~7.0 -> your PHP version (5.4.16) does not satisfy that requirement.
Problem 6
- Installation request for guzzlehttp/guzzle 6.3.0 -> satisfiable by guzzleh ttp/guzzle[6.3.0].
- guzzlehttp/guzzle 6.3.0 requires php >=5.5 -> your PHP version (5.4.16) do es not satisfy that requirement.
Problem 7
- Installation request for guzzlehttp/promises v1.3.1 -> satisfiable by guzz lehttp/promises[v1.3.1].
- guzzlehttp/promises v1.3.1 requires php >=5.5.0 -> your PHP version (5.4.1 6) does not satisfy that requirement.
Problem 8
- Installation request for php-di/php-di 5.4.6 -> satisfiable by php-di/php- di[5.4.6].
- php-di/php-di 5.4.6 requires php >=5.5.0 -> your PHP version (5.4.16) does not satisfy that requirement.
Problem 9
- Installation request for phpmailer/phpmailer v6.0.3 -> satisfiable by phpm ailer/phpmailer[v6.0.3].
- phpmailer/phpmailer v6.0.3 requires php >=5.5.0 -> your PHP version (5.4.1 6) does not satisfy that requirement.

Läuft auch alles gut durch, nur bekomme ich nun beim Aufruf einen 500 HTTP Error.

Jemand hier, der mich unterstützen mag?

Und nein, die VM ist weder im Internet gehostet, noch darf diese nach der Installation nach draußen telefonieren , will ja keinen Bot-Member ;)

Grüße!
 
Du brauchst eine php-Version >= 5.5.0
Steht da aber auch.

-> Ergo: Such nach Anleitungen, wie man bei CentOS eine neuere PHP-Version installiert.
 
Sephe schrieb:
Du brauchst eine php-Version >= 5.5.0
Installiert ist laut Ausgabe 5.4.16. Dumme Frage, aber wie bekomme ich das geupdatet?

Habs hiernach probiert., bekomme aber nur Konflikte angezeigt:
Abhängigkeiten werden aufgelöst
--> Transaktionsprüfung wird ausgeführt
---> Paket php70w.x86_64 0:7.0.33-1.w7 markiert, um installiert zu werden
--> Abhängigkeit php70w-common(x86-64) = 7.0.33-1.w7 wird für Paket php70w-7.0.3 3-1.w7.x86_64 verarbeitet
--> Abhängigkeit php70w-cli(x86-64) = 7.0.33-1.w7 wird für Paket php70w-7.0.33-1 .w7.x86_64 verarbeitet
--> Abhängigkeit php70w-cli = 7.0.33-1.w7 wird für Paket php70w-7.0.33-1.w7.x86_ 64 verarbeitet
--> Transaktionsprüfung wird ausgeführt
---> Paket php70w-cli.x86_64 0:7.0.33-1.w7 markiert, um installiert zu werden
---> Paket php70w-common.x86_64 0:7.0.33-1.w7 markiert, um installiert zu werden
--> Konflikt wird verarbeitet: php70w-common-7.0.33-1.w7.x86_64 kollidiert mit p hp-common < 7.0
webtatic/x86_64/filelists_db | 51 kB 00:00

Pakete übersprungen wegen Abhängigkeitsproblemen:
php70w-7.0.33-1.w7.x86_64 von webtatic
php70w-cli-7.0.33-1.w7.x86_64 von webtatic
php70w-common-7.0.33-1.w7.x86_64 von webtatic

//edit
habs nun geschafft das alte PHP zu entfernen, bekomme aber immer noch die gleichen Fehler
 
Binde bitte Remi's Repo ein:
https://blog.remirepo.net/pages/Config-en

Hier ein Vorschlag des Wizards für Centos 7 für PHP 7.3.5 (Support bis Ende 2020)

Code:
RHEL 7 provides PHP version 5.4 in its official repository

Command to install the EPEL repository configuration package:

    yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm


Command to install the Remi repository configuration package:

    yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm


Command to install the yum-utils package (for the yum-config-manager command):

    yum install yum-utils


On RHEL you (probably) need to enable the optional channel for some dependencies.

Command to enable:

    subscription-manager repos --enable=rhel-7-server-optional-rpms


You want a single version which means replacing base packages from the distribution

Packages have the same name than the base repository, ie php-*

Some common dependencies are available in remi-safe repository, which is enabled by default

PHP version 7.3 packages are available for RHEL 7 in remi-php73 repository

Command to enable the repository:

    yum-config-manager --enable remi-php73


If the priorities plugin is enabled, ensure remi-php73 have higher priority (a lower value) than base and updates

Command to upgrade (the repository only provides PHP):

    yum update


Command to install additional packages:

    yum install php-xxx


Command to install testing packages:

    yum --enablerepo=remi-php73-test install php-xxx


Command to check the installed version and available extensions:

    php --version
    php --modules
 
TuberPlays schrieb:
unter Cent OS 7 zu installieren.
Meiner Meinung nach für einen Anfänger die falsche Distri.
Da würde ich dann doch eher Ubuntu empfehlen, einfach schon, weils dafür für jeden Pipifax Anleitungen, Foren und FAQs gibt.
Wobei es bei dir anscheinend schon daran scheitert, dass du einfach liest was da steht.
Die Meldung war ja nunmal mehr als eindeutig, wo das Problem liegt.
Auf diese Art wirst du mit keiner Linux-Distri vorwärts kommen.
 
  • Gefällt mir
Reaktionen: lokked, Cool Master und abcddcba
Warum nicht schlank und isoliert vom rest im Docker Container laufen lassen?
 
  • Gefällt mir
Reaktionen: Cool Master
rg88 schrieb:
Da würde ich dann doch eher Ubuntu empfehlen, einfach schon, weils dafür für jeden Pipifax Anleitungen, Foren und FAQs gibt.
Ich habs nun mal mit Debian versucht. Da es hierfür auch eine entsprechende Anleitung gibt.

Installation habe ich sweit durch. Allerdings bekomme ich beim Aufruf der Seite, dass er nicht auf die Config-Datei schreibend zugreifen kann. (Unable to write in file (/var/www/html/syspass/app/config/config.xml)). Wie kann ich denn sehen, wer den Prozess des Webservers gestartet hat? Ich denke mal auf dessen Berechtigungsebenen wird auch das PHP Script ausgeführt(?)

Grüße!
 
Anleitungen sind auch nicht 1:1 da um alles blindlings abzutippen. Man sollte auch rudimentär verstehen, was man dort abtippt/kopiert um es ggf. an die eigenen Bedürfnisse anzupassen.
Wenn ich raten müsste:
chown apache -R /var/www/html/syspass chmod 750 /var/www/html/syspass/app/config /var/www/html/syspass/app/backup
Läuft dein Webserver denn unter dem user "apache" oder ggf. eher unter dem user "www-data" oder einem anderen User?

Mit apachectl -S siehst du aktuelle Infos, wie z.B. welche Virtualhosts konfiguriert sind, PIDfile und auch unter welchem Benutzer und Gruppe der Apache läuft.
 
Habe es mir in der Demo auch mal näher angeschaut.
Und danach mal den Docker basierend auf Alpine Linux und Nginx von crazymax/syspass gepullt. (github)
Funzt einwandfrei "out of the box" Man muss lediglich noch in der WebUI bei der Ersteinrichtung die Konfiguration der MySQL Datenbank vornehmen. (bei mir ein bereits vorhandener MariaDB Docker)
Und das ding läuft!
 
  • Gefällt mir
Reaktionen: lokked
snaxilian schrieb:
Anleitungen sind auch nicht 1:1 da um alles blindlings abzutippen
Dann frage ich mich aber, wenn ich schon eine Anleitung mit den Befehlen schreibe, dann sollte diese doch auch so funktionieren, wie sie da steht. Eben genau für den Fall, dass mal jemand vorbei kommt, der sich mit Linux bisher noch nicht so auseinandergesetzt hat.

snaxilian schrieb:
Läuft dein Webserver denn unter dem user "apache" oder ggf. eher unter dem user "www-data" oder einem anderen User?
Explizit festgelegt habe ich keinen User. Die Anleitung "durchgespielt" habe ich als root-User. Ich weiß, das mach man nicht, aber so - habe ich zumindest gedacht - bekomme ich schon mal keine Permission Probleme.

snaxilian schrieb:
chmod 750 /var/www/html/syspass/app/config /var/www/html/syspass/app/backup
Läuft durch, ohne Fehler. Zugriff ist weiterhin nicht möglich.

snaxilian schrieb:
chown apache -R /var/www/html/syspass
gibt ein "chown: ungültiger Benutzer: „apache“" zurück. Wenn ich mir mal meine User anzeigen lass, sehe ich auch keinen Apache User. Habe den aber auch nicht angelegt

root@web01:~# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
_apt:x:104:65534::/nonexistent:/bin/false
dnsmasq:x:105:65534:dnsmasq,,,:/var/lib/misc:/bin/false
messagebus:x:106:110::/var/run/dbus:/bin/false
usbmux:x:107:46:usbmux daemon,,,:/var/lib/usbmux:/bin/false
geoclue:x:108:114::/var/lib/geoclue:/bin/false
speech-dispatcher:x:109:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/false
sshd:x:110:65534::/run/sshd:/usr/sbin/nologin
rtkit:x:111:115:RealtimeKit,,,:/proc:/bin/false
pulse:x:112:116:pulseAudio daemon,,,:/var/run/pulse:/bin/false
avahi:x:113:119:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
colord:x:114:120:colord colour management daemon,,,:/var/lib/colord:/bin/false
saned:x:115:121::/var/lib/saned:/bin/false
Debian-gdm:x:116:122:Gnome Display Manager:/var/lib/gdm3:/bin/false
hplip:x:117:7:HPLIP system user,,,:/var/run/hplip:/bin/false
web:x:1000:1000:web,,,:/home/web:/bin/bash

snaxilian schrieb:
Mit apachectl -S siehst du aktuelle Infos, wie z.B. welche Virtualhosts konfiguriert sind
Bei dem Command bekomme ich folgendes zurück
root@web01:~# apachectl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:80 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
root@web01:~#

Skynet7 schrieb:
mal den Docker basierend auf Alpine Linux und Nginx von crazymax/syspass gepullt
Ich würde mal sagen, wenn ich das Teil nicht mal so installiert bekomme, lass ich das mit Docker auch mal lieber? ;)

Grüße!


//edit
Ich glaube ich habs gefunden.. "chown www-data -R /var/www/html/syspass" wars. Das Verzeichnis darf ich nicht dem Apache User geben, den gibts ja nicht, sondern dem www-data User.

//edit2
Wäre ja zu schön..
779318


Jemand ne Idee?

Danke!
 
Zuletzt bearbeitet:
Allgemein gültige Anleitungen wirst du so nicht hinbekommen, wie du es dir wünscht bzw. bilden immer(!) nur eine Momentaufnahme basierend auf der installierten Variante der Distribution zu dem Zeitpunkt zu dem die Anleitung erstellt wurde. Ändert sich etwas an der Umgebung (OS, Updates einzelner Pakete, etc) müsste natürlich auch die Anleitung überprüft werden. Genau das ist der Grund, warum Anleitung eben das sind: Sie leiten dich an, wie du etwas umsetzen kannst. Es lehrt dich etwas bzw. hilft dabei etwas leichter zu verstehen und zu lernen.

Auch weil Anleitungen eben schnell veralten und dir niemand garantieren kann, dass dies stets aktuell ist, hat sich ja der Trend zu Docker und deklarativen Umgebungen per Terraform oder AWS CloudFormation o.ä. ergeben. Da bist gezwungen im Vorfeld zu "dokumentieren" wie deine Zielumgebung aussehen soll und anstatt dann darin etwas zu ändern aktualisierst eben deine "Doku" und baust die Umgebung neu auf.

Wenn chown apache -R ... ja schon Fehler wirft hättest du doch an den Punkt stoppen müssen und den Fehler beheben. Wie du anhand des nächsten Befehls ja heraus gefunden hast, läuft dein Webserver unter dem User www-data. Der korrekte Befehl wäre also chown www-data -R ... gewesen. Der www-data User ist der User unter dem das Programm apache2, also der Webserver läuft. Bei manchen Distris heißt der User eben www-data und bei anderen apache oder httpd oder sonstwie.

Docker nimmt einem vieles dieser Vorkonfiguration und Installation ab, da eben der Zielzustand im Dockerfile und dem Startbefehl o.ä. vorgegeben ist. Erleichtert die anfängliche Installation, bringt aber andere Stolpersteine mit. Installieren können viele, den sicheren und stabilen langfristigen Betrieb aber nicht und ist der Grund warum für 99,99% der Leute ein Webhosting, wo sich Leute mit entsprechenden Kenntnissen um den Betrieb kümmern, sinnvoller ist als ein eigener Server zumindest sobald das System öffentlich erreichbar sein soll.

Zu deiner aktuellen Fehlermeldung: Nutzt du aktuell denn Docker, CentOS oder Debian oder Ubuntu? Bis zu welchem Punkt welcher Anleitung bist du vorgegangen und klappte alles ohne Fehler? Sonst ist das hier rätselraten und Zeitverschwendung.
 
snaxilian schrieb:
Leute mit entsprechenden Kenntnissen um den Betrieb kümmern, sinnvoller ist als ein eigener Server zumindest sobald das System öffentlich erreichbar sein soll.
Dass ich nicht gerade der vom Himmel gefallende Linux-Meister bin, weiß ich selber. Liegt vielleicht auch daran, dass ich seit ca. 15 Jahren in meinem IT-Dasein vielleicht 3 - 5 Linux Kisten in die Finger bekommen habe. Auch habe ich bereits in meinem Startpost verdeutlicht, dass die Linux-Instanz nicht von außen erreichbar sein wird (und nein, damit meine ich nun nicht, dass ich das Teil auf einem Plastikrouter blocke, sondern ich rede hier von ordendlichen Security Applicances (in meinem Fall vom großen S) die das Teil dann abschotten).

snaxilian schrieb:
Nutzt du aktuell denn Docker, CentOS oder Debian oder Ubuntu
Ich versuche das Teil aktuell unter Debian 9 ohne Docker nach Anleitung zu installieren. Nachdem ich mit der alten Installation partut keine SQL Verbindung hin bekommen habe, habe ich die VM mal zurückgesetzt und PHP mit SysPass neu installiert. Aktuell bekomme ich allerdings (obwohl ich die Rechte korrekt gesetzt habe) nur eine Error 500 Meldung im Browser.

In der error.log* steht dass er versucht im Ordner "vendor" eine Datei zu öffnen. Kann aber nicht funktionieren, weil es den Ordner gar nicht gibt.

*
[Sun May 05 18:33:05.676734 2019] [php7:warn] [pid 33530] [client 192.168.2.30:59938] PHP Warning: require(/var/www/html/syspass/vendor/autoload.php): failed to open stream: No such file or directory in /var/www/html/syspass/lib/Base.php on line 65
[Sun May 05 18:33:05.676777 2019] [php7:error] [pid 33530] [client 192.168.2.30:59938] PHP Fatal error: require(): Failed opening required '/var/www/html/syspass/vendor/autoload.php' (include_path='.:/usr/share/php') in /var/www/html/syspass/lib/Base.php on line 65
 
mariadb-server ist installiert und alle anderen ganz oben unter Prerequisites genannten Abhängigkeiten sind installiert? Ist Composer installiert?
 
snaxilian schrieb:
Prerequisites genannten Abhängigkeiten sind installiert? Ist Composer installiert?
Ja, ist alles installiert. Nun funktionierts auch. Hatte bei einem Command nen Schreibfehler drin.

Nun kann ich das zwar installieren, kann mich aber nicht auf die Datenbank verbinden
779361


Datenbank angelegt und Rechte vergeben habe ich nach dieser Anleitung.

Grüße und Danke!
 
Sry aber wie lange eierst du damit jetzt schon rum?
779486

Was ist eigtl. das host Betriebssystem?
Sry das ich schon wieder nerve...
aber du scheinst keinen plan zu haben.
Deshalb las dir endlich helfen,
und spring auf den Zug der sich nennt:
"Get Shit Done!" auf...
jetzt mal ohne witz, ich helfe dir auch mit templates oder configs aus, aber so kann es doch nicht weiter gehen...

PS: mach endlich Docker klar... Je nach Betriebssystem am besten noch die universelle verwaltung "Portainer" (portainer.io) und du bist dabei!
 
Host OS ist bei ihm aktuell Debian 9, hat er aber auch geschrieben...

Docker ist btw kein Allheilmittel. Ja, die Installation geht ggf. schneller weil eben deklarativ schon alles benötigte genannt ist aber wenn ich mir das docker-compose File in der Doku so ansehe...
  • Rootkennwort für die DB "syspass"
  • Zur Verbindung der Container wird "link" genutzt. Ein Feature, dass seit mindestens 2016 als deprecated gilt und nicht mehr genutzt werden sollte
  • hart codierte Versionsnummern: Kann man machen, muss man eben regelmäßig(!) immer an den neuesten Stand anpassen
  • Port 3306 des mariadb Containers wird ebenso exposed, was absolut nicht notwendig ist

Ja, es funktioniert und "get shit done" klappt vielleicht, verschiebt die Probleme des langfristigen Betriebs aber nur nach hinten raus... Spätestens wenn der TE einen weiteren Webdienst per Docker nutzen will und dieser dann nicht auf 80/443 laufen kann weil der Port belegt ist. Erklärst du ihm dann auch, wie er sich einen Reverse Proxy einrichten kann?
 
snaxilian schrieb:
Syspass hat [...] ein eigenes Logfile. Was findest da?
Ja, die gibt es. Darin findet sich auch etwas zu den vergeblichen DB-Connects:
[2019-05-06 14:22:19] syspass.EXCEPTION: logger {"message":"(P) SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'
#0 /var/www/html/syspass/lib/SP/Storage/Database/MySQLHandler.php(174): PDO->__construct('mysql:charset=u...', 'root', 'SYSPASS_PASSWOR...', Array)
#1 /var/www/html/syspass/lib/SP/Services/Install/MySQL.php(94): SP\Storage\Database\MySQLHandler->getConnectionSimple()
#2 /var/www/html/syspass/lib/SP/Services/Install/MySQL.php(72): SP\Services\Install\MySQL->connectDatabase()
#3 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(266): SP\Services\Install\MySQL->__construct(Object(SP\Services\Install\InstallData), Object(SP\Config\ConfigData))
#4 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(187): SP\Services\Install\Installer->setupDb()
#5 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(99): SP\Services\Install\Installer->install()
#6 /var/www/html/syspass/app/modules/web/Controllers/InstallController.php(88): SP\Services\Install\Installer->run(Object(SP\Services\Install\InstallData))
#7 [internal function]: SP\Modules\Web\Controllers\InstallController->installAction()
#8 /var/www/html/syspass/lib/SP/Bootstrap.php(240): call_user_func_array(Array, Array)
#9 [internal function]: SP\Bootstrap->SP\{closure}(Object(Klein\Request), Object(Klein\Response), Object(Klein\ServiceProvider), Object(Klein\App), Object(Klein\Klein), Object(Klein\DataCollection\RouteCollection), Array)
#10 /var/www/html/syspass/vendor/klein/klein/src/Klein/Klein.php(886): call_user_func(Object(Closure), Object(Klein\Request), Object(Klein\Response), Object(Klein\ServiceProvider), Object(Klein\App), Object(Klein\Klein), Object(Klein\DataCollection\RouteCollection), Array)
#11 /var/www/html/syspass/vendor/klein/klein/src/Klein/Klein.php(588): Klein\Klein->handleRouteCallback(Object(Klein\Route), Object(Klein\DataCollection\RouteCollection), Array)
#12 /var/www/html/syspass/lib/SP/Bootstrap.php(464): Klein\Klein->dispatch(Object(Klein\Request))
#13 /var/www/html/syspass/lib/Base.php(75): SP\Bootstrap::run(Object(DI\Container))
#14 /var/www/html/syspass/index.php(28): require('/var/www/html/s...')
#15 {main}","caller":"N/A"}
[2019-05-06 14:22:19] syspass.EXCEPTION: logger {"message":"Unable to connect to DB
#0 /var/www/html/syspass/lib/SP/Services/Install/MySQL.php(72): SP\Services\Install\MySQL->connectDatabase()
#1 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(266): SP\Services\Install\MySQL->__construct(Object(SP\Services\Install\InstallData), Object(SP\Config\ConfigData))
#2 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(187): SP\Services\Install\Installer->setupDb()
#3 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(99): SP\Services\Install\Installer->install()
#4 /var/www/html/syspass/app/modules/web/Controllers/InstallController.php(88): SP\Services\Install\Installer->run(Object(SP\Services\Install\InstallData))
#5 [internal function]: SP\Modules\Web\Controllers\InstallController->installAction()
#6 /var/www/html/syspass/lib/SP/Bootstrap.php(240): call_user_func_array(Array, Array)
#7 [internal function]: SP\Bootstrap->SP\{closure}(Object(Klein\Request), Object(Klein\Response), Object(Klein\ServiceProvider), Object(Klein\App), Object(Klein\Klein), Object(Klein\DataCollection\RouteCollection), Array)
#8 /var/www/html/syspass/vendor/klein/klein/src/Klein/Klein.php(886): call_user_func(Object(Closure), Object(Klein\Request), Object(Klein\Response), Object(Klein\ServiceProvider), Object(Klein\App), Object(Klein\Klein), Object(Klein\DataCollection\RouteCollection), Array)
#9 /var/www/html/syspass/vendor/klein/klein/src/Klein/Klein.php(588): Klein\Klein->handleRouteCallback(Object(Klein\Route), Object(Klein\DataCollection\RouteCollection), Array)
#10 /var/www/html/syspass/lib/SP/Bootstrap.php(464): Klein\Klein->dispatch(Object(Klein\Request))
#11 /var/www/html/syspass/lib/Base.php(75): SP\Bootstrap::run(Object(DI\Container))
#12 /var/www/html/syspass/index.php(28): require('/var/www/html/s...')
#13 {main}","caller":"N/A"}
[2019-05-06 14:22:19] syspass.EXCEPTION: logger {"message":"(P) Unable to connect to DB
#0 /var/www/html/syspass/lib/SP/Services/Install/MySQL.php(94): SP\Storage\Database\MySQLHandler->getConnectionSimple()
#1 /var/www/html/syspass/lib/SP/Services/Install/MySQL.php(72): SP\Services\Install\MySQL->connectDatabase()
#2 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(266): SP\Services\Install\MySQL->__construct(Object(SP\Services\Install\InstallData), Object(SP\Config\ConfigData))
#3 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(187): SP\Services\Install\Installer->setupDb()
#4 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(99): SP\Services\Install\Installer->install()
#5 /var/www/html/syspass/app/modules/web/Controllers/InstallController.php(88): SP\Services\Install\Installer->run(Object(SP\Services\Install\InstallData))
#6 [internal function]: SP\Modules\Web\Controllers\InstallController->installAction()
#7 /var/www/html/syspass/lib/SP/Bootstrap.php(240): call_user_func_array(Array, Array)
#8 [internal function]: SP\Bootstrap->SP\{closure}(Object(Klein\Request), Object(Klein\Response), Object(Klein\ServiceProvider), Object(Klein\App), Object(Klein\Klein), Object(Klein\DataCollection\RouteCollection), Array)
#9 /var/www/html/syspass/vendor/klein/klein/src/Klein/Klein.php(886): call_user_func(Object(Closure), Object(Klein\Request), Object(Klein\Response), Object(Klein\ServiceProvider), Object(Klein\App), Object(Klein\Klein), Object(Klein\DataCollection\RouteCollection), Array)
#10 /var/www/html/syspass/vendor/klein/klein/src/Klein/Klein.php(588): Klein\Klein->handleRouteCallback(Object(Klein\Route), Object(Klein\DataCollection\RouteCollection), Array)
#11 /var/www/html/syspass/lib/SP/Bootstrap.php(464): Klein\Klein->dispatch(Object(Klein\Request))
#12 /var/www/html/syspass/lib/Base.php(75): SP\Bootstrap::run(Object(DI\Container))
#13 /var/www/html/syspass/index.php(28): require('/var/www/html/s...')
#14 {main}","caller":"N/A"}

Anhand des "SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'" lese ich mal raus, dass er angeblich keine Rechte hat, auf die DB zu verbinden. Kann aber eigendlich nicht sein, weil ihm die Rechte ja gegeben wurden.


//edit
Man sollte vielleicht auch die richten Usernamen verwenden. Dann sind die Fehler zwar nicht weg, aber der "kann nicht"-Faktor resuziert. Hier ein Auszug, wenn er vergeblich versucht zu connecten.
[2019-05-06 14:43:39] syspass.ERROR: logger {"message":"Could not set locale","caller":"SP\Core\Language::setLocales"}
[2019-05-06 14:43:39] syspass.INFO: logger {"message":"Extensions checked","caller":"SP\Core\PhpExtensionChecker::checkMandatory"}
[2019-05-06 14:43:39] syspass.ERROR: logger {"message":"Could not set locale","caller":"SP\Core\Language::setLocales"}
[2019-05-06 14:43:39] syspass.INFO: logger {"message":"Loaded icons cache","caller":"SP\Core\UI\Theme::initIcons"}
[2019-05-06 14:43:39] syspass.INFO: logger {"message":"Loaded actions cache","caller":"SP\Core\Acl\Actions::loadCache"}
[2019-05-06 14:43:39] syspass.EXCEPTION: logger {"message":"SQLSTATE[42000]: Syntax error or access violation: 1142 SELECT command denied to user 'syspass'@'localhost' for table 'user'
#0 /var/www/html/syspass/lib/SP/Services/Install/MySQL.php(124): PDOStatement->execute(Array)
#1 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(276): SP\Services\Install\MySQL->setupDbUser()
#2 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(187): SP\Services\Install\Installer->setupDb()
#3 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(99): SP\Services\Install\Installer->install()
#4 /var/www/html/syspass/app/modules/web/Controllers/InstallController.php(88): SP\Services\Install\Installer->run(Object(SP\Services\Install\InstallData))
#5 [internal function]: SP\Modules\Web\Controllers\InstallController->installAction()
#6 /var/www/html/syspass/lib/SP/Bootstrap.php(240): call_user_func_array(Array, Array)
#7 [internal function]: SP\Bootstrap->SP\{closure}(Object(Klein\Request), Object(Klein\Response), Object(Klein\ServiceProvider), Object(Klein\App), Object(Klein\Klein), Object(Klein\DataCollection\RouteCollection), Array)
#8 /var/www/html/syspass/vendor/klein/klein/src/Klein/Klein.php(886): call_user_func(Object(Closure), Object(Klein\Request), Object(Klein\Response), Object(Klein\ServiceProvider), Object(Klein\App), Object(Klein\Klein), Object(Klein\DataCollection\RouteCollection), Array)
#9 /var/www/html/syspass/vendor/klein/klein/src/Klein/Klein.php(588): Klein\Klein->handleRouteCallback(Object(Klein\Route), Object(Klein\DataCollection\RouteCollection), Array)
#10 /var/www/html/syspass/lib/SP/Bootstrap.php(464): Klein\Klein->dispatch(Object(Klein\Request))
#11 /var/www/html/syspass/lib/Base.php(75): SP\Bootstrap::run(Object(DI\Container))
#12 /var/www/html/syspass/index.php(28): require('/var/www/html/s...')
#13 {main}","caller":"N/A"}
[2019-05-06 14:43:39] syspass.EXCEPTION: logger {"message":"Unable to check the sysPass user (sp_5cd02bfb6386c)
#0 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(276): SP\Services\Install\MySQL->setupDbUser()
#1 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(187): SP\Services\Install\Installer->setupDb()
#2 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(99): SP\Services\Install\Installer->install()
#3 /var/www/html/syspass/app/modules/web/Controllers/InstallController.php(88): SP\Services\Install\Installer->run(Object(SP\Services\Install\InstallData))
#4 [internal function]: SP\Modules\Web\Controllers\InstallController->installAction()
#5 /var/www/html/syspass/lib/SP/Bootstrap.php(240): call_user_func_array(Array, Array)
#6 [internal function]: SP\Bootstrap->SP\{closure}(Object(Klein\Request), Object(Klein\Response), Object(Klein\ServiceProvider), Object(Klein\App), Object(Klein\Klein), Object(Klein\DataCollection\RouteCollection), Array)
#7 /var/www/html/syspass/vendor/klein/klein/src/Klein/Klein.php(886): call_user_func(Object(Closure), Object(Klein\Request), Object(Klein\Response), Object(Klein\ServiceProvider), Object(Klein\App), Object(Klein\Klein), Object(Klein\DataCollection\RouteCollection), Array)
#8 /var/www/html/syspass/vendor/klein/klein/src/Klein/Klein.php(588): Klein\Klein->handleRouteCallback(Object(Klein\Route), Object(Klein\DataCollection\RouteCollection), Array)
#9 /var/www/html/syspass/lib/SP/Bootstrap.php(464): Klein\Klein->dispatch(Object(Klein\Request))
#10 /var/www/html/syspass/lib/Base.php(75): SP\Bootstrap::run(Object(DI\Container))
#11 /var/www/html/syspass/index.php(28): require('/var/www/html/s...')
#12 {main}","caller":"N/A"}
[2019-05-06 14:43:39] syspass.EXCEPTION: logger {"message":"(P) SQLSTATE[42000]: Syntax error or access violation: 1142 SELECT command denied to user 'syspass'@'localhost' for table 'user'
#0 /var/www/html/syspass/lib/SP/Services/Install/MySQL.php(124): PDOStatement->execute(Array)
#1 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(276): SP\Services\Install\MySQL->setupDbUser()
#2 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(187): SP\Services\Install\Installer->setupDb()
#3 /var/www/html/syspass/lib/SP/Services/Install/Installer.php(99): SP\Services\Install\Installer->install()
#4 /var/www/html/syspass/app/modules/web/Controllers/InstallController.php(88): SP\Services\Install\Installer->run(Object(SP\Services\Install\InstallData))
#5 [internal function]: SP\Modules\Web\Controllers\InstallController->installAction()
#6 /var/www/html/syspass/lib/SP/Bootstrap.php(240): call_user_func_array(Array, Array)
#7 [internal function]: SP\Bootstrap->SP\{closure}(Object(Klein\Request), Object(Klein\Response), Object(Klein\ServiceProvider), Object(Klein\App), Object(Klein\Klein), Object(Klein\DataCollection\RouteCollection), Array)
#8 /var/www/html/syspass/vendor/klein/klein/src/Klein/Klein.php(886): call_user_func(Object(Closure), Object(Klein\Request), Object(Klein\Response), Object(Klein\ServiceProvider), Object(Klein\App), Object(Klein\Klein), Object(Klein\DataCollection\RouteCollection), Array)
#9 /var/www/html/syspass/vendor/klein/klein/src/Klein/Klein.php(588): Klein\Klein->handleRouteCallback(Object(Klein\Route), Object(Klein\DataCollection\RouteCollection), Array)
#10 /var/www/html/syspass/lib/SP/Bootstrap.php(464): Klein\Klein->dispatch(Object(Klein\Request))
#11 /var/www/html/syspass/lib/Base.php(75): SP\Bootstrap::run(Object(DI\Container))
#12 /var/www/html/syspass/index.php(28): require('/var/www/html/s...')
#13 {main}","caller":"N/A"}

Grüße und Danke!
 
Zuletzt bearbeitet:
Ich hab jetzt mal versucht das nach zu stellen:
  • VM mit Debian 9, locales, language, etc en_us, location: europe/berlin, keyboard layout german, restliche Einstellungen default und bei der Installation nur ssh server + system utilities gewählt
  • apt update && apt upgrade und danach die laut Doku benötigten Pakete installiert, gibt ja direkt ne copy & paste liste
  • apt install mariadb-server
  • aktuelle Version (3.0.5) gemäß Anleitung herunter geladen (sowohl die 3.0.5.irgendwas.tar.gz als auch die vendor.tar.gz)
  • 3.0.5.irgendwas.tar.gz nach /var/www/html/syspass entpackt
  • compostor ist trommelwirbel die Anleitung veraltet/fehlerhaft... Immerhin ist die Primärquelle angegeben, Download dort klappt
  • Kaffee trinken weil drölfzigtausend Abhängigkeiten installiert werden
  • Browser öffnen > http:ip.der.test.vm/syspass/index.php aufrufen > klappt
  • Kennwörter ausgedacht &
  • bei Datenbankanbindung: root, $passwort-des-mariadb-root-users, syspass, localhost &
  • Sprache "deutsch", Hosting-Modus nein

=> folgender Fehler tritt auf:
779672


Ursache ist die Art und Weise, wie mariadb in den Standardeinstellungen abgesichert ist und das aus gutem Grund.

Du sprachst davon, das System nicht öffentlich erreichbar betrieben zu wollen, daher hier die quick'n'dirty Lösung, die du niemals gar-nie-nicht so in öffentlich erreichbaren Systemen oder im Unternehmensumfeld nutzen solltest:
per SSH als Benutzer root: mariadb -u root UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket'; FLUSH PRIVILEGES; quit;
Wieder zurück im Browser > Installation klappt jetzt.

Wie gesagt: nicht schön und vor allem nicht sicher und zwar in keinster Art und Weise.
 
snaxilian schrieb:
Wie gesagt: nicht schön und vor allem nicht sicher und zwar in keinster Art und Weise.
Yay! Es funktioniert. Danke Dir!

snaxilian schrieb:
Du sprachst davon, das System nicht öffentlich erreichbar betrieben zu wollen
Nope. Hängt nun im "sicheren" Bereich hinter der Firewall und kann weder rein noch raus.

snaxilian schrieb:
per SSH als Benutzer root:
mariadb -u root
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
FLUSH PRIVILEGES;
quit;
Auch wenn nichts passieren dürfte: Kann man das noch "eleganter" lösen? Also dass zumindest nicht der root User genutzt wird? Irgendwie so: "User "syspass" darf eh alles".

Grüße und nochmal danke für deine Geduld!
 
Zurück
Oben