Neos Installation mit Ploi, Runcloud oder Serverpilot

Hat jemand Erfahrung mit der Installation von NEOS auf Serverinstanzen, welche mit Server Management Tools wie Ploi, Runcloud oder Serverpilot betrieben werden? Bei Runcloud und Serverpilot bin ich nicht weitergekommen, resp. immer in einem 500-Error geendet (nach Aufruf von /setup).

Ploi.io (holländischer Anbieter) klingt mit seinen Features, wie Load balancing, Laravel-Optimierung, Cloudflareanbindung, Redis, Backup, Monitoring etc. recht vielversprechend. Ich werde hiermit mal einen weiteren Versuch starten …

Hallo Daniel,
Erfahrungen nicht, aber wenn du Details zum 500er aus der Data/Log/System.log mitbringst kommen wir sicher zusammen weiter.

Hi Daniel
Super, danke für dein Angebot! Ich habe soeben ploi.io mit einem hetzner-Server aufgesetzt läuft einwandfrei :slight_smile:
Dann habe ich eine Site aufgesetzt mit PHP 7.4/MariaDB 10.3/512MB Memory und im Rootverzeichnis die Installation gestartet (Die Webroot zeigt auf /Web)

composer create-project neos/neos-base-distribution .

Ist problemlos & fehlerfrei durchgelaufen.

Dann habe ich …

domain.de/setup

… aufgerufen. Das sah schon wesentlich besser aus als bei serverpilot & runcloud. Hier wurde ich zumindest schon auf den Login mit SetupPassword gelangt. Nach Eingabe des PW lande ich jedoch wieder auf dem Ausgangsscreen mit dem «Welcome to Neos»-Screen mit dem Hinweis auf einen Datenbank-Error …

Die Logs unter Exceptions bestätigen die Meldung

Previous exception: Exception #1045 in line 22 of /home/web/domain.de/Packages/Libraries/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php: SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO)

Bei der lokalen Installation in meiner Testumgebung mit Verwendung des internen Server wurde ich an dieser Stelle durch ein Wizard mit Eingabe der Datenbank-Credentials geführt.

So habe ich einen …

./flow neos.flow:cache:flush 

… ausgeführt und Configuration/Settings.yaml manuell angelegt mit der Datenbank-Config nach diesem Muster:

Neos:
    Flow:
        persistence:
            backendOptions:
                driver: mysqli
                dbname: neoscms
                user: dblogin
                password: '******'
                host: 127.0.0.1

Nun folgen Fehlermeldungen in den Exceptions, welche darauf hinweisen, dass die Tabellen in der Datenbank fehlen

[string] => Exception in line 131 of /home/web/domain.de/Packages/Libraries/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliConnection.php: Table 'neoscms.neos_neos_domain_model_domain' doesn't exist

Nach einem …

./flow neos.flow:doctrine:migrate

… scheint die Datenbank zu stehen.

Jetzt erfolgt auf der Startseite nachfolgender Hinweis

#1346950755: Homepage could not be loaded. Probably you haven't imported a site yet
./flow kickstart:package neos.demo
Package "neos.demo" already exists.

hilft leider auch nicht weiter …

$ composer dump-autoload
Generating autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
Generated autoload files

auch nicht.

Damit wäre meine Neos-Installations-Customerjourney vorerst auf Grund gelaufen :slight_smile:
Aber ich bleibe dran. Der eine oder andere Tipp würde mir vielleicht weiterhelfen. Ich dokumentiere das gerne so, dass auch weiter Neos-Neulinge schneller zurecht kommen. Details wie Logs liefere ich nach …

Ein erneuter Aufruf von domain.de/setup erzeugt nach Login mit SetupPasswort nachfolgende Meldung

Argument 1 passed to Neos\Neos\View\FusionExceptionView_Original::getFusionRuntime() must implement interface Neos\ContentRepository\Domain\Model\NodeInterface, null given, called in
/home/web/domain.de/Data/Temporary/Development/Cache/Code/Flow_Object_Classes/Neos_Ne>     os_View_FusionExceptionView.php on line 123
    Exception Code	0
    Exception Type	TypeError
    Thrown in File	>     Data/Temporary/Development/Cache/Code/Flow_Object_Classes/Neos_Neos_View_FusionExceptionView.php
    Line	170
    Original File	Packages/Application/Neos.Neos/Classes/View/FusionExceptionView.php`

Hey Daniel,

das ist alles noch nicht so schön :slight_smile:
Grundsätzlich als Erklärung warum das nicht Out-of-the-box funktioniert: Neos ist nicht dafür gedacht, auf einem Server im Produktionsmodus installiert zu werden. Mehr als ausprobieren kannst du es ja dort auch nicht. Eigentlich ist es so gedacht, dass es in einer Entwicklungsumgebung im Development Modus installiert wird und dann voll konfiguriert auf einen Server deployed wird.

Aber du bist ja jetzt sehr weit gekommen, den Fehler den ich noch sehe ist:

ansatt
./flow kickstart:package neos.demo
welches ein neues Package mit dem Namen erzeugen würde - weleches es schon gibt, ist hier
./flow site:import --package-key Neos.Demo
hier auszuführen, was den Inhalt der Demo Seite importiert.

Funktioniert so! Danke :slight_smile:

./flow site:import --package-key Neos.Demo

Danach noch einen Admin angelegt

./flow user:create demo@demo.ch passw*rt Daniel Demo --roles Neos.Neos:Administrator

Leider zeigen alle URL’s inkl. Login-Formular auf /index.php/xxxx was mir den Login ins Backend vorerst mal verunmöglicht. Kann man das irgendwo mittels PrettyURL-Einstellung steuern? Das URL-ReWriting scheint zu funktionieren. Jedenfalls zeigt domain.de/de die deutsche Website. Domain.de – Domains günstig registrieren – Ihre Domain Suche und Verwaltung hingegen zeigt einen “Page Not Found”

Btw. bietest du oder jemand anders aus dem Coreteam Developer-Trainings an?

Ja klar machen wir auch. Wenn du schon weisst was du dir vorstellst, kannst du mir hier gerne mal eine DM schicken.

Um das Problem mit dem URL-ReWriting zu lösen habe ich in ploi bei mir die nginx Konfiguration angepasst.

Wenn ich das richtige sehe, dann muss lediglich der location Block für php umgestellt werden. So sieht er zumindest bei mir aus:

location ~ \.php$ {
      include                      fastcgi_params;
      fastcgi_pass                 unix:/run/php/php7.4-fpm-zukunft-ubyhx.sock; # Dieser Pfad muss angepasst werden. Dazu schauen, was bereits in der Konfiguration steht.
      fastcgi_index                index.php;
      fastcgi_param                FLOW_CONTEXT       Development; # oder auf Production umstellen
      fastcgi_param                FLOW_REWRITEURLS   1;
      fastcgi_split_path_info      ^(.+\.php)(.*)$;
      fastcgi_param                SCRIPT_FILENAME     $document_root$fastcgi_script_name;
      fastcgi_param                PATH_INFO $fastcgi_path_info;
      fastcgi_intercept_errors     on;
      fastcgi_param  HTTPS         on;
      fastcgi_param  SERVER_PORT   443;

      fastcgi_buffer_size          128k;
      fastcgi_buffers              256 16k;
      fastcgi_busy_buffers_size    256k;
      fastcgi_temp_file_write_size 256k;
    }

Danke, funktioniert nun einwandfrei :slight_smile:

Wir (Flownative) bieten das auch an, also… melde dich bei Bedarf! :wink:

Danke ich melde mich gerne, sobald ich den Bedarf genauer eingrenzen kann :slight_smile: