Neos Installation auf einem vServer?


(Matthias Pohl) #1

Moin, ich wollte Neos auf einem vServer (debian, php7.2, apache 2) installieren.
Ich habe schon einige Hilfeseiten durch gelesen, doch komme ich nicht weiter. Vielleicht kann mir jemand einen Tip geben, wie ich vorgehen muss.


(Karsten Dambekalns) #2

Das ist aber sehr vage… und COMPLETE NEWBIES GUIDE: install NEOS CMS on Linux Ubuntu hilft nicht weiter? Debian sollte nahe genug dran sein…

Oder geht es um ein spezifisches Config-Tool (Confixx, …)?

Am besten stellst du konkrete Fragen, dann sind die Antworten tendenziell besser. :sunglasses:


(Matthias Pohl) #3

Danke für die Information. Aber irgendwie komme ich da nicht weiter…
Installiere ich das unter root oder unter einem anderem User?

Da ich den vServer schon etwas länger habe und einige Sachen schon drauf laufen, habe ich mir die ersten Schritte gespart. (php7.2, zip, unzip)

  1. cd /var/www/ # go to web-root folder
  2. sudo -R chown www-data:www-data /var/www/html # set folder user to apache2
  3. sudo chmod 777 /var/www/html # enable writing
  4. cd /var/www/html/ # go to web-pages-root folder
  5. composer create-project neos/neos-base-distribution neos1 # create neos1…neos[N] projects in folder neos[1…N]
  6. cd /var/www/html/neos1 # or neos[2…N]
  7. sudo chown -R www-data:www-data neos1 # set folder neos1 + subfolders + files to user apache2
  8. sudo ./flow core:setfilepermissions [user] www-data www-data# automatically changing file permissions from your user to apache2 user
  9. sudo nano var/www/html/Neos/Data/SetupPassword.txt # change Neos-PWD from “generated PWD ? new PWD”
  10. ./flow server:run # start NEOS server
  11. lynx 127.0.0.1/setup or user normal browser # browse the application on the server internally

Nr. 22. läuft nicht, der command wird nicht erkannt, gefunden!!!


(Matthias Pohl) #4

Ich habe es auch nach dieser Version https://www.neos.io/download-and-extend.html versucht…
aber ich komme da zu keinem Erfolg. Offenscihtlich wird etwas heruntergeladen, aber ich kann den Befehl ./flow server:run nicht ausführen, weil anscheinend irgendetwas total verkehrt bei mir läuft.

Meine Absicht war NEOS CMS auf einem vServer zu installieren, dieser läuft unter debian 9.7. Also ich wollte keine Version local haben, sondern direkt auf dem Server. komme aber irgendwie nicht weiter…


(Matthias Pohl) #5

Ein weiterer Versuch und ich bekomme nachfolgende Fehlermeldung…

Do not run Composer as root/super user! See https://getcomposer.org/root for details
Installing neos/neos-base-distribution (4.2.8)
-Installing neos/neos-base-distribution (4.2.8): Downloading (100%)
Created project in neoscms
Loading composer repositories with package information
Updating dependencies
Killed


(Wolfgang Schneider) #6

Hallo Matthias,

meine Installation läuft auch noch nicht (ich habe gerade wieder alles gelöscht).

Das “./” vor dem ./flow sucht den Befehl flow im aktuellen Verzeichnis.
Schau mal in den übergeordneten Verzeichnissen nach. Da findest Du"flow" vermutlich irgendwo.
Da musst Du ggf. mit “…/” jeweils ein Verzeichnis “höher gehen”; eine Ebene höher, z.B. mit …/flow
Alternativ wechselst Du das Verzeichnis mit cd …/
Achtung: Das sollen eigentlich zwei Punkte sein, aber in der Leseansicht sind drei Punkte sichtbar.

Die composer-Meldung “nicht als root” ist eine Sicherheits-Warnung. Es sollte aber trotzdem alles installiert werden (so meine Annahme).


(Matthias Pohl) #7

Moin, nein es werden nur ein paar Ordner und wenige Dateien installiert.
Aber der wesentliche Anteil offensichtlich nicht, wie man in verschiedenen YouTube Videos sehen kann. Das ganze wird mit “kiled“ abgebrochen, siehe Post zuvor.


(Christian Müller) #8

composer braucht recht viel ram und zeit, das muss beides für command line PHP konfiguriert sein. Grundsätzlich macht man gar nichts mit root, außer man muss. Allerdings würde ich sagen, wenn das nicht klar ist, würde ich empfehlen nicht selbst einen vServer aufzusetzen weil der wahrscheinlich am Ende ein Sicherheitsrisiko darstellt. Ich würde auch davon abraten gar keine lokale Installation zu haben, nur auf einem vServer zu Entwicklung ist IMHO sehr unpraktisch.


(Matthias Pohl) #9

Wie muss php denn konfiguriert werden, dami die Installation läuft.

Ich bin bisher davon ausgegangen, dass man neos auch einsetzen kann, also nicht nur lokal, sondern auch eine Webseite live betreiben kann.


(Matthias Pohl) #11

habe es nun installiert via composer, komme aber nun im setup bei der DB-Einbindung nicht weiter. Ich bekomme da einen Fehler angezeigt:

Blockquote > An exception occurred while executing ‘CREATE TABLE flow3_resource_resourcepointer (hash VARCHAR(255) NOT NULL, PRIMARY KEY(hash)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB’:

Specified key was too long; max key length is 767 bytes

The exception details have been logged to the Flow system log.
Exception in line 184 of /var/www/neos/Packages/Libraries/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php: An exception occurred while executing ‘CREATE TABLE flow3_resource_resourcepointer (hash VARCHAR(255) NOT NULL, PRIMARY KEY(hash)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB’:

Was läuft da verkehrt?


(Bastian Heist) #12

Deine Datenbankversion ist zu alt - du brauchst mindestens MySQL 5.7.x oder MariaDB 10.2.x. (oder Postgres). Grund: Wir nehmen die Kollation utf8mb4 als Standard, die gibt es erst ab diesen Versionen. Wenn das nicht so einfach zu ändern ist, kannst du auch die aktuelle LTS-Version von neos (3.3) nehmen, das funktioniert auch noch mit älteren DBs.


(Matthias Pohl) #13

Danke für die Info, das habe ich überlesen…
Welche Einstellungen sollte man in der php.ini Datei vornehmen, damit die neos installation und anschließend neos gut läuft.
Ich habe dazu hier mal was gelesen, kann mich aber nicht mehr an die Stelle erinnern.
Die grundsätzliche Voraussetzung (mariadb 10.3 und php 7.2) ist geschaffen…

Nun halte ich mich schon strikt an die Vorgaben und die Installationsanleitung, aber ich bekomme beim ausführen des composer-Befehls immer ein Timeout!

edit: hiermit hat es dann geklappt:

Unter Linux, scheint es, dass dieser Befehl ausgeführt hilft IPv4-Datenverkehr als ipv6 eine höhere Prio zu machen, die eine bessere Alternative ist als ipv6 vollständig zu deaktivieren:
sudo sh -c "echo ‘precedence ::ffff:0:0/96 100’ >> /etc/gai.conf"


(Matthias Pohl) #14

Ich geh doch recht in der Annahme, dass man mit Neos nicht nur Webseiten gestalten kann, sondern diese auch online stellt. Zumindestens gehe ich davon aus, dass dem auch so ist bei einem CMS.
Warum sollte das dann nicht auch auf einem vServer funktionieren?
Oder anders gefragt, was für weitergehende Voraussetzung sind an das System Neos gestellt, die ich noch nicht durchdrungen habe?
Also, mit der Demo.Site habe ich es hinbekommen, aber wenn ich eine eigene Seite schalten möchte, dann funktioniert dieses nicht. Ich habe dazu auch schon einen anderen Beitrag erstellt.
Grundsätzlich finde ich Neos und die Umsetzung nicht schlecht, nur bin ich an einem Punkt angelangt, wo ich einfach nicht weiterkomme.
Die ganze Installation auf dem vServer hat funktioniert und wie schon gesagt auch die Darstellung der Demo.Site hat geklappt. Aber es scheint, dass irgendwo der Fehler im Detail liegt und ich diesen nicht erkennen kann. (Bin leider kein IT’ler)
Vielleicht kann mir ja jemand weiterhelfen. Der Server läuft mit ubuntu 16.04 und alle anderen Voraussetzungen wie php 7.2 und mariaDB 10.3 sind geschaffen.


(Christian Wellinghorst) #15

Ich lehne mich mal etwas aus dem Fenster und behaupte, dass @christianm hauptsächlich meinte, dass es eben einfach nicht sinnvoll ist, direkt auf einem vServer zu “entwickeln”. Neos ist hinsichtlich Komplexität und Zielsetzung kein Wordpress - wenn es darum geht, dass man “nur” eine “schicke” Webseite schnell erstellen möchte, bei der die technische Umsetzung egal ist, ist man mit Wordpress vielleicht sogar besser beraten (oder noch besser mit Jimdo o.Ä.?). Da kann man sich bequem die Plugins zusammenklicken und gut ist.
Legt man aber etwas Wert auf eine schlanke und technisch gute Umsetzung, ist Neos sicherlich die bessere Wahl - dabei empfiehlt es sich aber tendenziell halt, das ganze Projekt lokal durchzuentwickeln und erst wenn es fertig ist auf einem Produktivserver einzusetzen. Für solche Szenarien bringt Neos ja auch die nötigen Werkzeuge von Haus aus mit.

Mein Rat wäre: wenn du Neos einfach nur “ausprobieren” möchtest, installiere es in einer lokalen Umgebung bzw., wenn es nur um den Funktionstest, nicht um die “Installationserfahrung” geht gibt es evtl. ja sogar einen Docker Container o.Ä. (weiß ich gerade nicht).
Ich kann mich der Empfehlung / Meinung von @christianm aber nur anschließen: wenn nicht klar ist, dass man am besten fast gar nichts als root macht, würde ich vom Betrieb eines eigenen vServers abraten. Ist nicht böse gemeint, aber gerade von unerfahrenen Admins selbst administrierte vServer sind immer wieder gerne Ziel von Hackern und werden dann für Mining, Spam-Versand und Ähnliches gekapert.
Und schließlich - ganz nüchtern: warum für einen vServer bezahlen, wenn man es zu Hause auch “für umme” haben kann :wink:


(Matthias Pohl) #16

Danke, für die klaren Worte…
Ich muss aber für mein besseres Verständnis einfach noch einmal nachfragen…

Und ja ich bin auf Neos aufmerksam geworden und fand die Idee / Umsetzung nicht schlecht. Wie ich schon geschrieben habe bin ich davon ausgegangen, das man die Seite entwickelt und anschließen online stellen kann. So wie Du es auch mit anderen Worten umschrieben hast.
Aber vielleicht geht mir einfach das gewisse IT-Hintergrundwissen ab, um die Umsetzung komplett zu durchdringen. :wink:
Okay, lokal entwickelt ist mir schon klar, aber wie setze ich es dann anschließend auf einem “Produktivserver” um?

Wie schon gesagt meine berufliche Ausrichtung geht eher in die Richtung Maschinenbau, um hieraus das passende für mich ableiten zu können.
Gut zur “Entwicklung” ist der vServer nun nicht geeignet (das hatten wir nun schon geklärt), aber soll ich daraus ableiten, dass man lieber einen eigenen Server für die Umsetzung betreiben sollte, wie auf schon vorhandene Ressourcen zu gehen?


(Christian Wellinghorst) #17

Hmm, vielleicht kannst du nochmal etwas deine Zielsetzung umreißen und man sollte sicherlich im Blick behalten, worum es bei welchem Punkt geht. :wink:

Was den vServer angeht: da ist meine Empfehlung, den einfach grundsätzlich nicht als “Experiment” zu betreiben, wenn er öffentlich im Internet steht. Allein die Administration erfordert einfach schon eine Menge Wissen und das Potential für Missbrauch aufgrund falscher Konfigurationen oder auch Sicherheitslücken ist groß. Das war einfach nur ein grundsätzlicher Hinweis / Tipp, der mit Neos erstmal konkret gar nichts zu tun hat. Wenn es dir darum geht, Erfahrungen mit Unix / Linux-Systemen zu machen, würde ich dir empfehlen mit einer VM herumzuspielen. Als Windows-Nutzer kannst du dir z.B. HyperV zur Virtualisierung anschauen, auf dem Mac kenne ich mich nicht so aus (Parallels Desktop oder Virtual Box gibt es da z.B.), unter Linux wäre ebenfalls Virtual Box eine Option, aber Linux in einer VM unter Linux zu lernen ist vielleicht etwas unsinnig :wink:

Wenn ich dich richtig verstehe fragst du, ob es aus meiner Sicht sinnvoller ist, Neos auf einem “neuen” Server zu installieren als den vorhandenen vServer zu verwenden, richtig? In Kurzform: ja. Ich würde empfehlen zum “spielen” und entwickeln keinen Server zu verwenden, der tatsächlich im Internet erreichbar ist. Dafür kannst du besser eine VM auf deinem Rechner aufsetzen oder ggf. eben auf Containerlösungen (z.B. Docker) zurückgreifen. Auch wenn der vServer schon da ist: je mehr du experimentierst ohne fundiertes Wissen zu haben, desto höher ist einfach auch das Risiko, versehentlich Lücken zu schaffen. Gerade wenn du tendenziell immer als root arbeitest ist das ein Indiz dafür, dass dir noch Grundlagen fehlen (auch ich bin hier bei weitem kein Experte, aber wie Christian Müller schon schrieb: “Grundsätzlich macht man gar nichts mit root, außer man muss.”).

Aber zurück zu deinem Ursprungsproblem: technisch ist es natürlich absolut möglich, mit Neos direkt eine Seite auf einem Produktivserver umzusetzen. In den meisten Fällen dürfte es so sein (und das ist m.M.n. auch zu empfehlen), dass man in einer lokalen Entwicklungsumgebung zunächst die “Grundlagen” umsetzt (Template, CSS, Inhaltstypen, …) und mit Beispielseiten testet. Diese Grundlagen überträgt man dann irgendwann auf sein Produktivsystem und setzt dort die eigentliche Inhaltspflege fort.
Wenn du das Ganze also mehr als “Testsystem” nutzt, kannst du natürlich die lokale Umgebung komplett weglassen. Warum ich keinen vServer für sowas nutzen würde habe ich ja erläutert :slight_smile:

Also: Schreib’ gerne nochmal, was dein Ziel ist, vielleicht kann dir dann konkreter geholfen werden (falls ich es überlesen habe gib mir doch schnell eins auf die Finger :wink: ).
Willst du einfach nur schnell irgendwie eine Webseite erstellen ist Neos vielleicht nicht der optimale Startpunkt für dich (auch wenn ich persönlich z.B. ein Wordpress-Hasser bin…).
Willst du einfach nur Neos kennenlernen, würde ich mal nach einem vorkonfigurierten Container schauen.
Willst du dich in Neos und auch in Linux und das ganze Server-Setup einarbeiten, empfehle ich dir eine VM.


(Matthias Pohl) #18

Danke, zuvor hast Du geschrieben, dass es noch andere Möglichkeiten gibt wie ein vServer. Hat sich das nur auf Neos und das experimentelle Arbeiten bezogen oder auf den grundsätzlichen Verzicht auf einen vServer?


(Christian Wellinghorst) #19

Ich bin mir gerade nicht sicher, ob ich dich richtig verstehe. Einen vServer solltest du aus meiner Sicht nur betreiben, wenn du dich damit auskennst, weil er halt über das Internet erreichbar ist - von daher bezieht sich das nicht nur auf Neos und das Testen bzw. experimentelle Arbeiten.

Alternativen für sowas sehe ich primär wie gesagt in VMs / Containern. Damit kannst du alles machen, was du mit einem vServer auch kannst (technisch ist es im Fall einer VM sogar genau das Gleiche), nur eben mit deutlich geringerem Risiko.

Ein vServer kann - wenn man sich denn damit auskennt - dann durchaus sinnvoll sein, wenn man z.B. mit mehreren Leuten standortübergreifend an etwas arbeiten / testen will…


(Sebastian Kurfuerst) #20

Hey zusammen,

Genau, da hast du vollkommen Recht :slight_smile:

Den Prozess, wie man die Seite online bekommt, nennt man in der Regel “Deployment”.

Grundsätzlich geht es darum, alle Quelldateien der Seite (also PHP-Dateien, Templates, …) in der richtigen Version auf den öffentlich erreichbaren Server zu packen.

Der erste Schritt hierzu ist, das gesamte Projekt in Git einzuchecken (einschließlich der composer.lock-datei), in der dann die exakten Abhängigkeiten bspw. von Flow und Neos steht.

Da gibt es verschiedene Varianten, den Code auf den produktiven Server zu bekommen:

  • man kann auf dem Produktivserver das Git-Repository auschecken; muss danach den Ordner “Data/Temporary” löschen damit die Caches neu aufgebaut werden.
  • Man kann den lokalen Stand bspw. mittels rsync auf den Remote-Server übertragen; oder man nimmt ein Tool bspw. wie Surf - das ist aber für kleine Seiten ggf. overkill.
  • Man baut einen Docker Container und lässt ihn irgendwo laufen.

Einer der allersimpelsten Wege ist vermutlich die Nutzung von Flownative Beach, da man so nur das Git Repository angeben muss, und das Deployment passiert von selbst.

Jetzt muss man, wenn der Code deployt ist, den initialen Content-Stand auf den Live-Server bekommen. Hier gibt es grundsätzlich zwei Wege:

  • Man exportiert den Content mittels ./flow site:export und committed ihn ins Git (der Content Dump mit allen Bildern etc. liegt dann im Site Package), und auf dem Online-System nimmt man dann ./flow site:import.
  • Alternativ kopiert man den Data/Persistent Ordner auf den Server, und gleichermaßen die Datenbank. Dann hat man auch alles.

Ich hoffe, das hilft etwas :slight_smile: :slight_smile: :slight_smile:

Liebe Grüße und schönes Wochenende,
Sebastian
PS: Habe nicht den vollen Post gelesen; hoffe das war etwas sinnvoll wass ich geschrieben hab :wink: