Posts by peng

    Danke für die Info ocin4.


    Seit heute früh habe ich außer einem "Ich habe Ihre Anfrage soeben an unsere Kollegen der entsprechenden Abteilung zur Bearbeitung weiter geleitet." noch nichts gehört.


    Erst der Mist gestern mit über 1 Stunde Wartezeit ohne jemanden zu erreichen, dann die Mail wo versucht wird alle Schuld von sich zu weisen ("Zu individueller Software und zur Einrichtung können wir keinen Support geben") und jetzt zieht sich das anscheinend auch hin. Mal sehen. Ich werde berichten.


    Update 1 (Rückmeldung von Netcup):

    Quote

    es gibt leider ein Fehler welcher verhindert, dass images die im Vorjahr geändert wurden verwendet werden.

    Als Workaround versuchen Sie bitte einmal das Image lokal zu kopieren um das Änderungsdatum zu aktualisieren und dann die Kopie hochzuladen und zu mounten.

    Ich teste und berichte :)


    Update 2

    Der Workaround funktioniert. Ich konnte problemlos die Images mounten.


    Danke nochmal für Eure Hilfe bei der Fehlersuche.

    KB19


    Okay, damit ist meine Theorie "auf älteren Servern gehen die ISOs nicht" gerade ins Wasser gefallen. Ob das jetzt gut oder schlecht ist weiß ich noch nicht ^^


    In jedem Fall ist es eine Erkenntnis die hoffentlich den Support weiter bringt.


    Danke Dir KB19!


    Image BF17 RS 1000 Plus / VPS 50 G7
    ( peng)
    Freund von mir mit VPS 200 G8 VPS 200 G8 BF (DerRené) RS X-Mas und einen VPS 20 G7
    ( KB19)
    VPS50 G7, VPS Eierpower 1 Ostern 2019 (@ocin4)
    Acronis nein unbekannt unbekannt unbekannt unbekannt
    dban-2.3.0_i586.iso nein ja ja ja ja
    Macrium Free nein unbekannt ja unbekannt unbekannt
    shredos-2021.08.2_20_x86-64_0.32.014_20211130.iso ja



    ja unbekannt unbekannt unbekannt


    Meinst du das hier?


    Kannst also gern bei mir ein Häkchen mehr setzen

    Danke sehr. Erledigt :)

    So sieht das bei mir aus.


    n1.png


    n2.png


    @All: Gibt es hier jemanden der einen Server hat der älter als die aktuelle 8. Generation ist um das dban-ISO zu testen?


    Image BF17 RS 1000 Plus / VPS 50 G7 Freund von mir mit VPS 200 G8 VPS 200 G8 BF (DerRené)
    Acronis nein unbekannt unbekannt
    dban-2.3.0_i586.iso nein ja ja
    Macrium Free nein unbekannt unbekannt
    shredos-2021.08.2_20_x86-64_0.32.014_20211130.iso ja

    ja unbekannt


    Das ist sehr nett, vielen Dank. Das Acronis-Image ist nicht kostenlos. Das Macrium "Free" ist zwar kostenlos aber Du musst erst die Software installieren, dann kannst das ISO erstellen. Viel zu umständlich :) Meine Behauptung ist aber: Wird das dban-Image funktionieren, funktioniert auch der Rest. Ich danke Dir dennoch vielmals. :thumbup:


    Mal schauen ob sich jemand mit einem älteren Server findet um es zu testen.

    Hallo zusammen,


    meinen alten Beitrag kann ich leider nicht mehr editieren.

    Netcup hat sich gemeldet. Die Antwort

    Quote

    Wenn Sie sicher sind, dass Ihre eigenen Images fehlerfrei sind - das werden wir auch mit einer Beschwerde nicht püfen aus genannten Gründen, [...] senden Sie uns doch bitte, was genau passiert und wobei. Gern auch als Screenshot im Anhang. Beachten Sie bitte, wir müssen es nachvollziehen können. Gern sehen wir es uns dann nochmals an.

    Dies habe ich erledigt.


    Ich habe noch weiter getestet und nun wird es interessant.


    Image BF17 RS 1000 Plus / VPS 50 G7 Freund von mir mit VPS 200 G8
    Acronis nein unbekannt
    dban-2.3.0_i586.iso nein ja
    Macrium Free nein unbekannt
    shredos-2021.08.2_20_x86-64_0.32.014_20211130.iso ja
    ja


    nein = Drive could not be changed. Please try again with server powered off.


    Es scheint wohl also Images zu geben die funktionieren - warum auch immer.

    Eventuell gibt es einen Zusammenhang mit dem alter des Servers? Vielleicht wurde ja irgendwas geändert.. Denn früher konnte ich alle meine ISOs problemlos mounten.


    DerRené und AutoYaST könnt Ihr mir bitte sagen bei welchem Produkt Ihr die "dban"-ISO einlegen konntet?

    AutoYaST DBAN war nur ein versuch nachdem meine eigentlichen Images (Acronis Boot CD) nicht eingebunden werden konnten.


    netcup1.png


    Genau das will ich auch erreichen :D


    Aber ich glaube langsam es gibt keinen Telefonsupport mehr. Bin mittlerweile bei 52 Minuten. 8|

    Früher war das eigentlich immer eine Angelegenheit von unter 5 Minuten. Oft viiiiel kürzer..

    Hast du mal ein Beispiel für ein eigenes Image, das nicht funzt und im Netz zu finden ist? Könnte man ja mal am anderen Server gegentesten.

    Gerne.


    DBAN -> https://de.osdn.net/projects/s….3.0/dban-2.3.0_i586.iso/


    Ist nur rund 16 MB groß.


    Edit: Ich habe die 3 Images mal in einem zweiten Server probiert... Gleiches Ergebnis.

    Kurzer Gegentest hier lokal mit vmware -> ohne Probleme.

    Hallo zusammen,


    gestern wollte ich ein Boot-Image in meinen (ausgeschalteten) vServer einlegen:

    Drive could not be changed. Please try again with server powered off.


    Das Image hatte ich früher x-Mal problemlos laden können.


    Image gelöscht, erneut hochgeladen -> gleicher Fehler.

    Zwei andere Images hochgeladen -> gleicher Fehler.


    Ich wende mich an den Support und kriege eine Belehrung darüber, dass man natürlich nicht jedes einzelne Image prüfen kann und ich für den Server verantwortlich bin: :thumbdown:

    Das ich das Laufwerk über das CCP gar nicht nutzen kann entgeht dem Mitarbeiter wohl:


    Quote

    Selbstverständlich können wir Ihre eigenen Images nicht prüfen. Das würde jeden Rahmen sprengen.


    Sie besitzen bei uns einen virtuellen Server. Wir stellen Ihnen die Laufzeitumgebung bereit. Zu individueller Software und zur Einrichtung können wir keinen Support geben. Nach Einrichtung haben wir keinen Zugriff mehr auf Ihr System. Die Einrichtung und Konfiguration Ihrer Dienste und Pflege obliegt Ihrer Verantwortung.

    Hat jemand noch einen Tipp von Euch bevor ich dem Mitarbeiter was "passendes" zurück schreibe?


    Vielen Dank Euch!

    Danke für Eure Antworten,


    echi dieses Projekt (muss) auf einem shared Hosting laufen. Bei meinen vservern hätte ich ja viiiel mehr Freiheiten ;)


    Ich habe als Lösung vorerst die Option gewählt, dass ich in der generierten Cache-Datei die Pfade manuell umbiege.


    Falls jemand auf das gleiche Problem stößt, so habe ich es gelöst:

    1. neuer artisan command: php artisan config:cacheSharedWebhosting /var/www/vhosts/hosting123.abc123.netcup.net
      der Parameter ist der Pfad der vorangestellt wird
    2. im Skript selbst ermittle ich den Hauptordner der Webanwendung --> /project_xy
    3. im Skript: /bootstrap/cache/config.php öffnen und nach /project_xy suchen. Hier den übergebenen Parameter aus dem Aufruf voranstellen

    Die Lösung ist nicht wirklich schön, aber sie funktioniert. Auf Dauer ist es denke ich eh besser das Projekt auf einen vServer zu migrieren, da ich früher oder später mit Sicherheit auf weitere Einschränkungen stoßen werde.

    Hallo tab


    dann hole ich mal ein wenig aus mit Informationen :)


    Ich mache ein automatisches Deployment eines Projekts mit Laravel.

    Nachdem das Deployment fertig ist, generiere ich den Konfigurationscache neu (php ./artisan config:cache)

    Der Befehl schnappt sich die vielen Konfigurationsdateien und baut daraus eine Einzelne.


    In der neuen Datei sind dann Einträge (als Resultat) wie:

    Code
    'path' => '/project_xy/storage/framework/cache/data',

    Die original Konfigurationsdatei für diese Zeile sieht so aus:

    Code
    'path' => storage_path('framework/cache/data'),


    Der Eintrag /project_xy/storage/framework/cache/dataexistiert aber für einen Aufruf im Web nicht und es kommt zu einer Fehlermeldung (open_basedir ...)


    D.h.

    Code
    Falsch
    'path' => '/project_xy/storage/framework/cache/data',
    Richtig
    'path' => /var/www/vhosts/hosting123.abc123.netcup.net/project_xy/storage/framework/cache/data

    Mache ich die diese Änderung in der gecachten Konfigurationsdatei händisch, funktioniert alles.


    storage_path() im original wird vermutlich auf __DIR__ zurückgreifen. Dies würde erklären, warum ich in der CLI und im Browserunterschiedliche Pfade habe. Mein Ziel (Wunsch) ist es also über die CLI valide Pfade für Aufrufe über den Browser zu erhalten.

    Hallo zusammen,


    ein neuer Tag, ein neues Problem ^^


    Ich habe ein Skript welches ich auf der Kommandozeile ausführen möchte (Im Detail: Ich erstelle den Konfigurationscache für laravel).

    Das Skript macht fleißig gebrauch von __DIR__ um die Konfigurationspfade abzulegen.


    Nun ist aber mein Problem, dass __DIR__ in der CLI und im Browser verschieden sind.


    __DIR__ in der CLI

    Code
    bash-4.4$ pwd
    /projekt_xy
    bash-4.4$ php -r "echo __DIR__;"
    /projekt_xy


    __DIR__ im Browser

    /var/www/vhosts/hosting123.abc123.netcup.net/projekt_xy


    Meine Frage nun:
    Habt ihr einen Tipp für mich wie ich den Pfad "umbiegen" kann?

    Was mir spontan einfällt:

    • Mir schwebt der Gedanke vor die untere Ordnerstruktur temporär "nachzubauen" und von dort aus dann das Skript aufzurufen, die Idee gefällt mir aber überhaupt nicht.
    • Nachträglich in der generierten Konfigurationsdatei die Pfade anpassen
    • Ein Hilfsskript bauen (welches ich über den Browser aufrufe) das wiederum mein Skript aufruft. Dann bin ich ja nämlich im richtigen Pfad


    Danke Euch

    Ich weiss nicht, ob sich open_basedir überhaupt mit symlinks austricksen lässt:


    "When a script tries to access the filesystem, for example using include, or fopen(), the location of the file is checked. When the file is outside the specified directory-tree, PHP will refuse to access it. All symbolic links are resolved, so it's not possible to avoid this restriction with a symlink."


    Quelle: https://www.php.net/manual/en/ini.core.php#ini.open-basedir

    Vielleicht verstehe ich die Aussage falsch, aber /var/www/vhosts/hosting123.abc123.netcup.net/project_xy/20211106214144/storage (der Symlink) ist ja innerhalb von open_basedir


    Versuchs also mal mit

    cd /project_xy/202111106214144

    ln -s ../storage storage


    Perfekt. Das hat funktioniert! Vielen vielen Dank!


    Jetzt frage ich mich aber, warum hat mein Ansatz nicht funktioniert?

    Quote

    BTW: open_basedir kenne ich jetzt nicht, aber

    ln -s /project_xy/storage /project_xy/20211106214144/storage

    sieht für mich nicht gesund aus.

    Weil ich absolute Pfade verwende?

    Zusätzlich zu dem, was tab über mir bereits völlig korrekt angemerkt hat…


    Hat der Ordner project_xy die gleichen Rechte bzw. den gleichen Besitzer/Gruppe wie httpdocs?


    Falls nicht: Wiederhole den Test nochmals mit dem Docroot innerhalb von httpdocs.

    project_xy hat 755, httpdocs hat 750

    Code
    drwxr-xr-x  5 hosting123 psacln  4096 Nov  7 15:06 project_xy
    drwxr-x---  2 hosting123 psaserv 4096 Nov  7 15:39 httpdocs

    tab und KB19

    Und wenn du den '/' am Anfang weglässt? Ansonsten wird das Ziel ja ein absoluter Pfad, der so natürlich nicht innerhalb von irgendwas liegen kann.

    hier habe ich ein Verständnisproblem.

    die(__DIR__)liefert mir /var/www/vhosts/hosting123.abc123.netcup.net/project_xy/20211106214144/public

    und diesen Ordner bzw. alles unterhalb WEBSPACEROOT (=/var/www/vhosts/hosting123.abc123.netcup.net) kann ich problemlos auslesen wenn es kein Ziel von einem Symlink ist.


    Hier nochmal ein Update meiner Grafik:

    netcup2.png


    Euch beiden und auch allen anderen danke für die Hilfe! :)

    Hallo zusammen,


    ich habe noch ein paar Tests gemacht und nun als Grafik zusammenfasst.

    Damit sieht man auf einen Blick was geht und was nicht:


    netcup.png



    Und wie führst du die index.php aus? Aufruf über den Browser?

    Korrekt, über den Browser.

    Nur um das auch noch auszuschließen: Ändert sich am Verhalten etwas, wenn der Symlink über den Webserver (PHP) erstellt wird? Oder taucht der Fehler da schon beim Erstellen mittels symlink() auf?

    Gerade getestet. Der Fehler tritt auch hier auf.


    Skript

    Code
    $result = symlink('/../../storage', __DIR__ . '/../storage');
    if ($result) { echo "symlink OK"; } 
    else { echo "error"; }

    Ergebnis

    Code
    Warning: symlink(): open_basedir restriction in effect. File(/storage) is not within the allowed path(s): (/var/www/vhosts/hosting123.abc123.netcup.net/:/tmp/:/var/lib/php/sessions) in

    Danke für Deine Antwort.


    Ist FollowSymLinks oder SymlinkIfOwnerMatch auch gesetzt (.htaccess, falls Apache überhaupt verwendet wird)

    Ist gesetzt:

    Apache Configuration
    <IfModule mod_rewrite.c>
        Options +FollowSymLinks
        RewriteEngine On
    </IfModule>


    Ich konnte das Problem sogar weiter Reduzieren:


    Also

    • ohne Laravel etc.
    • Obige .htaccess und folgende Index.php
    • DocumentRoot = /project_xy/20211106214144/public

    unterer Test liefert

    Code
    is not within the allowed path(s): (/var/www/vhosts/hosting123.abc123.netcup.net/:/tmp/:/var/lib/php/sessions)

    Sowohl vendor als auch storage sind aber innerhalb von /var/www/vhosts/hosting123.abc123.netcup.net/

    nämlich:

    Code
    vendor: /var/www/vhosts/hosting123.abc123.netcup.net/project_xy/20211106214144/vendor
    storage: /var/www/vhosts/hosting123.abc123.netcup.net/project_xy/20211106214144/storage

    Der einzige Unterschied: storage ist ein Symlink ln -s /project_xy/storage /project_xy/20211106214144/storage

    Hallo zusammen,


    ich entwickle gerade eine Webseite mit Laravel. Für einen Test wollte ich meinen aktuellen Stand bei Netcup hochladen.

    Leider scheint dies nicht zu klappen.


    mit display_errors=on sehe ich:

    Code
    Warning: file_exists(): open_basedir restriction in effect. 
    File(/var/www/vhosts/hosting123.abc123.netcup.net/project_xy/20211106214144/public/../storage/framework/maintenance.php) 
    is not within the allowed path(s): (/var/www/vhosts/hosting123.abc123.netcup.net/:/tmp/:/var/lib/php/sessions) 
    in /var/www/vhosts/hosting123.abc123.netcup.net/project_xy/20211106214144/public/index.php on line 19

    open_basedir für die Domain ist im WCP wie folgt gesetzt: {WEBSPACEROOT}{/}{:}{TMP}{/}{:}{/}var{/}lib{/}php{/}sessions

    Damit müsste die Datei (eigentlich?) auch erreichbar sein.


    Meine Ordnerstruktur:

    Code
    /project_xy/storage/ <= symlink: ln -s /project_xy/storage /project_xy/20211106214144/storage
    /project_xy/20211106214144/storage/
    /project_xy/20211106214144/storage/framework/
    /project_xy/20211106214144/storage/framework/maintenance.php
    /project_xy/20211106214144/public/ <= als document_root im WCP für die Domain eingestellt
    /project_xy/20211106214144/public/index.php

    "storage" liegt also Außerhalb des aktuellen Deployments und wird per Symlink in den Ordner gesetzt (ln -s /project_xy/storage /project_xy/20211106214144/storage)

    Verzichte ich auf diesen Symlink und lege stattdessen den "storage"-Ordner direkt in das entsprechende Verzeichnis, funktioniert es.


    Unter "Einstellungen für Apache & nginx" habe ich

    Fähigkeit, symbolischen Verknüpfungen zu folgen, einschränken Wählen Sie diese Option aus, um Benutzer daran zu hindern, die Anweisung FollowSymLink in .htaccess zu verwenden und um so die Serversicherheit zu verbessern. deaktiviert


    Zur Sicherheit noch eine weitere Übersicht der Struktur:

    Code
    bash-4.4$ ls -la /project_xy/20211106214144
    lrwxrwxrwx  1 hosting123 psacln   15 Nov  7 12:04 storage -> /project_xy/storage
    
    bash-4.4$ ls -la /project_xy/
    total 4672
    drwxr-xr-x  9 hosting123 psacln     4096 Nov  7 12:02 .
    drwx--x--- 18 hosting123 psaserv    4096 Nov  6 19:03 ..
    drwxr-xr-x 10 hosting123 psacln     4096 Nov  7 12:04 20211106214144
    drwxr-xr-x  5 hosting123 psacln     4096 Oct 31 00:47 storage

    Hat jemand von Euch eine Idee warum es nicht klappt?


    Vielen Dank.