[nginx Problem] Grav Installation funktioniert nicht

Edward

New Member
Hi,

inspiriert von diesem Tutorial wollte ich mal Grav probieren. Ich habe leider ein Problem - was nicht ISPConfig 3 betrifft - liegt wohl an meinen Nginx Derektiven. Ich bekomme diese Fehlermeldung - direkt nach der Installation:

982


UnexpectedValueException: The stream or file "/var/www/clients/client1/web5/web/logs/grav.log" could not be opened in append mode: failed to open stream: Permission denied in /var/www/clients/client1/web5/web/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:110 Stack trace: #0 /var/www/clients/client1/web5/web/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(39): Monolog\Handler\StreamHandler->write(Array) #1 /var/www/clients/client1/web5/web/vendor/monolog/monolog/src/Monolog/Logger.php(344): Monolog\Handler\AbstractProcessingHandler->handle(Array) #2 /var/www/clients/client1/web5/web/vendor/monolog/monolog/src/Monolog/Logger.php(470): Monolog\Logger->addRecord(500, 'Failed to start...', Array) #3 /var/www/clients/client1/web5/web/system/src/Grav/Common/Errors/Errors.php(73): Monolog\Logger->addCritical('Failed to start...') #4 /var/www/clients/client1/web5/web/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php(50): Grav\Common\Errors\Errors->Grav\Common\Errors\{closure}(Object(Grav\Framework\Session\Exceptions\SessionException), Object(Whoops\Exception\Inspector), Object(Whoops\Run)) #5 /var/www/clients/client1/web5/web/vendor/filp/whoops/src/Whoops/Run.php(370): Whoops\Handler\CallbackHandler->handle(Object(Grav\Framework\Session\Exceptions\SessionException)) #6 [internal function]: Whoops\Run->handleException(Object(Grav\Framework\Session\Exceptions\SessionException)) #7 {main}

Meine Nginx Derektiven nachfolgend, gefunden in diesem Thread:

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }

location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }

location ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }

location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; }

location ~ \.php$ {
# Choose either a socket or TCP/IP address
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}

Diese Nginx Variablen vom Hersteller funktonieren leider bei mir auch nicht, habe sie natürlich entsprechend angepasst (korrekter root Pfad ist /var/www/clients/client1/web5/web/ in meinem Fall). Es scheint ein Rechte-Problem zu geben. Die Rechte habe ich nach dieser "Anleitung" überprüft, owner ist immer das richtige Web. Habe jetzt 777 alle noch mal gegeben, keine Änderung.

Habe auch das Web neu angelegt, vielleicht war das ja korrupt. Habt ihr Anregungen wo das Problem liegen könnte?
Danke für Tipps!
 

Edward

New Member
Ich konnte das Problem soweit lösen, leider nicht komplett befriedigend.

Als Derektiven funktioniert bei PHP 8 dies:

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }

location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }

location ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }

location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; }

location ~ \.php$ {
# Choose either a socket or TCP/IP address
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}

Dann rekursiv 0777 setzen auf alle Ordner und Dateien im "web", z.B. über WinSCP:

983


Sicherheitstechnisch ist das natürlich absolut nicht empfehlenswert. Werde jetzt mal alle Dateien auf 0644 setzen und nur die Ordner auf 0777.

Warum die Rechte überhaupt falsch gesetzt sind, ist mir nicht klar. Bin über einen extra erstellten Shell-Nutzer auf das Web und nicht über root oder sonstige User - sollten da nicht alle Dateien automatisch dem web12 gehören?

Nachtrag: Habe jetzt mal nur die Ordner bei 0777 gelassen und alle Dateien innerhalb des Webs auf 0644 mit dem Befehl find /var/www/clients/client2/web12/web/ -type f -exec chmod 644 {} \; gesetzt.

Da gehen manche Seiten, manche nicht. Nur mit 0777 läuft alles rund. Ich frag mich ob das echt so sein soll, finde ich unsicher. In der Doku finde ich dbzgl. nichts.
 
Zuletzt bearbeitet:

Till

Administrator
Du hast damit PHP auf einen falschen user umgeschaltet und Dir damit richtige Sicherheitslücken ins setup eingebaut.

Deinem ursprünglichen Problem nach hast Du vermutlich irgend was im web Folder aus Versehen auf user oder Gruppe www-data geändert gehabt. Um die Fehler zu beheben:

1) Das hier muss weg:

Code:
location ~ \.php$ {
# Choose either a socket or TCP/IP address
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
2) Die den falschen user und falsche Gruppe korrigieren:

chown -R web12:client2 /var/www/clients/client2/web12/web/*
 

Edward

New Member
Du hast damit PHP auf einen falschen user umgeschaltet und Dir damit richtige Sicherheitslücken ins setup eingebaut.
Besten Dank für die Aufklärung Till!

Ich habe den Nginx Snippet hier in einem anderem Thread gefunden und einfach reinkopiert (ich weiß sollte man eher nicht machen, aber ich habe stundenlang eigene Lösungen erfolglos getestet).

Wenn ich den zitierten Teil entferne, sieht meine Nginx Konfig so aus:
NGINX:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }
location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
location ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; }

Dann bekomme ich diese Fehlermeldung beim Aufruf der Website:
Code:
Grav\Framework\Session\Exceptions\SessionException thrown with message "Failed to start session: session_start(): Failed to read session data: files (path: /var/lib/php/sessions)"

Stacktrace:
#7 Grav\Framework\Session\Exceptions\SessionException in /var/www/clients/client2/web12/web/system/src/Grav/Framework/Session/Session.php:247
#6 Grav\Framework\Session\Session:start in /var/www/clients/client2/web12/web/system/src/Grav/Common/Session.php:48
#5 Grav\Common\Session:init in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/InitializeProcessor.php:451
#4 Grav\Common\Processors\InitializeProcessor:initializeSession in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/InitializeProcessor.php:112
#3 Grav\Common\Processors\InitializeProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#2 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#1 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Grav.php:303
#0 Grav\Common\Grav:process in /var/www/clients/client2/web12/web/index.php:58
Hier die Fehlermeldung noch einmal als Bild:

984

chown -R web12:client2 /var/www/clients/client2/web12/web/* habe ich ausgeführt und manuell noch mal geprüft, ich verstehe nicht warum er jetzt wieder Rechteprobleme hat. :confused:

Server ist mit dem "Autoinstaller" installiert und sonst läuft auch alles gut; WordPress, XenForo, phpBB etc. problemlos.
 

Till

Administrator
Dein Session fehler liegt daran, dass Du vermutlich noch die selbe session ID unter falschem user hast. Die kann er jetzt halt nicht mehr öffnen, wenn der richtige user verwendet wird. Mach mal browser im incognito modus auf oder lösche alle cookies der betreffenden domain im browser.
 

Edward

New Member
Danke für den Tipp, ist mir auch vorhin dann mal aufgefallen - hatte 2 Inkognito Tabs auf, einen davon vergessen und somit wurden nicht wie erwartet beim Schließen die Cookies gelöscht...

Danach hatte ich beim Aufruf der Seite auch wieder eine Fehlermeldung, die kam aber von einem Theme für Grav namens "Scholar". Letztes Update dafür wurde im Mai veröffentlicht.

RuntimeException thrown with message "Template "partials/what_links_here.html.twig" is not defined in "default.html.twig" at line 43."

Stacktrace:
#60 RuntimeException in /var/www/clients/client2/web12/web/system/src/Grav/Common/Twig/Twig.php:441
#59 Twig\Error\LoaderError in /var/www/clients/client2/web12/web/vendor/twig/twig/src/Loader/ChainLoader.php:142
#58 Twig\Loader\ChainLoader:getCacheKey in /var/www/clients/client2/web12/web/vendor/twig/twig/src/Environment.php:351
#57 Twig\Environment:getTemplateClass in /var/www/clients/client2/web12/web/vendor/twig/twig/src/Environment.php:445
#56 Twig\Environment:loadTemplate in /var/www/clients/client2/web12/web/vendor/twig/twig/src/Template.php:375
#55 Twig\Template:loadTemplate in /var/www/clients/client2/web12/web/cache/twig/45/4546301fa31f35d0adc436e508af623e924404116ee962067da228f378d284ad.php:101
#54 __TwigTemplate_2c62033f6d5446ee6eea6cc1a0e05d641d45f9988f82ec12c5ef0eeb7e0f6a5a:block_main in /var/www/clients/client2/web12/web/vendor/twig/twig/src/Template.php:214
#53 Twig\Template:displayBlock in /var/www/clients/client2/web12/web/cache/twig/3d/3d0609eab91b8956a3034421d59b1ddca3f17807032ab50a2c502e9ff95f233c.php:217
#52 __TwigTemplate_f802e417fb4a6e15dc5e8fdb4f3ca4725ebedf5aa14f23962260fdff4422549a:block_body in /var/www/clients/client2/web12/web/vendor/twig/twig/src/Template.php:214
#51 Twig\Template:displayBlock in /var/www/clients/client2/web12/web/cache/twig/3d/3d0609eab91b8956a3034421d59b1ddca3f17807032ab50a2c502e9ff95f233c.php:55
#50 __TwigTemplate_f802e417fb4a6e15dc5e8fdb4f3ca4725ebedf5aa14f23962260fdff4422549a:doDisplay in /var/www/clients/client2/web12/web/vendor/twig/twig/src/Template.php:453
#49 Twig\Template:displayWithErrorHandling in /var/www/clients/client2/web12/web/vendor/twig/twig/src/Template.php:420
#48 Twig\Template:display in /var/www/clients/client2/web12/web/cache/twig/45/4546301fa31f35d0adc436e508af623e924404116ee962067da228f378d284ad.php:47
#47 __TwigTemplate_2c62033f6d5446ee6eea6cc1a0e05d641d45f9988f82ec12c5ef0eeb7e0f6a5a:doDisplay in /var/www/clients/client2/web12/web/vendor/twig/twig/src/Template.php:453
#46 Twig\Template:displayWithErrorHandling in /var/www/clients/client2/web12/web/vendor/twig/twig/src/Template.php:420
#45 Twig\Template:display in /var/www/clients/client2/web12/web/vendor/twig/twig/src/Template.php:432
#44 Twig\Template:render in /var/www/clients/client2/web12/web/vendor/twig/twig/src/TemplateWrapper.php:47
#43 Twig\TemplateWrapper:render in /var/www/clients/client2/web12/web/vendor/twig/twig/src/Environment.php:384
#42 Twig\Environment:render in /var/www/clients/client2/web12/web/system/src/Grav/Common/Twig/Twig.php:439
#41 Grav\Common\Twig\Twig:processSite in /var/www/clients/client2/web12/web/system/src/Grav/Common/Service/OutputServiceProvider.php:36
#40 Grav\Common\Service\OutputServiceProvider:Grav\Common\Service\{closure} in /var/www/clients/client2/web12/web/vendor/pimple/pimple/src/Pimple/Container.php:118
#39 Pimple\Container:eek:ffsetGet in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/RenderProcessor.php:40
#38 Grav\Common\Processors\RenderProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#37 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#36 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/DebuggerAssetsProcessor.php:38
#35 Grav\Common\Processors\DebuggerAssetsProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#34 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#33 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/PagesProcessor.php:98
#32 Grav\Common\Processors\PagesProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#31 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#30 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/TwigProcessor.php:38
#29 Grav\Common\Processors\TwigProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#28 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#27 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/AssetsProcessor.php:39
#26 Grav\Common\Processors\AssetsProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#25 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#24 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/SchedulerProcessor.php:40
#23 Grav\Common\Processors\SchedulerProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#22 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#21 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/BackupsProcessor.php:39
#20 Grav\Common\Processors\BackupsProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#19 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#18 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/TasksProcessor.php:69
#17 Grav\Common\Processors\TasksProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#16 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#15 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/RequestProcessor.php:63
#14 Grav\Common\Processors\RequestProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#13 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#12 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/ThemesProcessor.php:38
#11 Grav\Common\Processors\ThemesProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#10 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#9 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/PluginsProcessor.php:39
#8 Grav\Common\Processors\PluginsProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#7 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#6 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/InitializeProcessor.php:130
#5 Grav\Common\Processors\InitializeProcessor:Grav\Common\Processors\{closure} in /var/www/clients/client2/web12/web/system/src/Grav/Common/Debugger.php:546
#4 Grav\Common\Debugger:profile in /var/www/clients/client2/web12/web/system/src/Grav/Common/Processors/InitializeProcessor.php:131
#3 Grav\Common\Processors\InitializeProcessor:process in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50
#2 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62
#1 Grav\Framework\RequestHandler\RequestHandler:handle in /var/www/clients/client2/web12/web/system/src/Grav/Common/Grav.php:303
#0 Grav\Common\Grav:process in /var/www/clients/client2/web12/web/index.php:58

Andere Themes funktionieren aber - manche benötigen das Gantry 5 Framework (Fehlermeldung ist eindeutig wenn dies der Fall ist) - daher kann man dies einfach ignorieren.

Es läuft nun alles. :)
 

Werbung

Top