bernhard Posted December 20, 2023 Share Posted December 20, 2023 Hey @adrian just installed a new pw instance (dev) for testing and got this error: ErrorException: is_file(): open_basedir restriction in effect. File(ProcessWire\BasicPagePage.php) is not within the allowed path(s): (/path/to/user/www:/path/to/user/files:/path/to/user/tmp) in /path/to/user/www/tmp/processwire-dev/wire/core/WireClassLoader.php:354 Stack trace: #0 [internal function]: Tracy\Bar->Tracy\{closure}(2, '...', '...', 354) #1 /path/to/user/www/tmp/processwire-dev/wire/core/WireClassLoader.php(354): is_file('...') #2 /path/to/user/www/tmp/processwire-dev/wire/core/WireClassLoader.php(313): ProcessWire\WireClassLoader->findClassInPaths('...', Array) #3 [internal function]: ProcessWire\WireClassLoader->loadClass('...') #4 /path/to/user/www/tmp/processwire-dev/wire/core/Templates.php(878): class_exists('...') #5 /path/to/user/www/tmp/processwire-dev/wire/core/Template.php(1441): ProcessWire\Templates->getPageClass(Object(ProcessWire\Template), true) #6 /path/to/user/www/tmp/processwire-dev/wire/core/PagesLoader.php(1312): ProcessWire\Template->getPageClass() #7 /path/to/user/www/tmp/processwire-dev/wire/core/PagesLoader.php(521): ProcessWire\PagesLoader->getById(Array, Object(ProcessWire\Template)) #8 /path/to/user/www/tmp/processwire-dev/wire/core/Pages.php(289): ProcessWire\PagesLoader->find('...', Array) #9 /path/to/user/www/tmp/processwire-dev/wire/core/Wire.php(419): ProcessWire\Pages->___find('...', Array) #10 /path/to/user/www/tmp/processwire-dev/wire/core/WireHooks.php(968): ProcessWire\Wire->_callMethod('...', Array) #11 /path/to/user/www/tmp/processwire-dev/wire/core/Wire.php(484): ProcessWire\WireHooks->runHooks(Object(ProcessWire\Pages), '...', Array) #12 /path/to/user/www/tmp/processwire-dev/wire/core/Page.php(3968): ProcessWire\Wire->__call('...', Array) #13 /path/to/user/www/tmp/processwire-dev/wire/core/PageTraversal.php(132): ProcessWire\Page->_pages('...', '...', Array) #14 /path/to/user/www/tmp/processwire-dev/wire/core/PageTraversal.php(157): ProcessWire\PageTraversal->children(Object(ProcessWire\HomePage), '...', Array) #15 /path/to/user/www/tmp/processwire-dev/wire/core/Page.php(1883): ProcessWire\PageTraversal->child(Object(ProcessWire\HomePage), '...', Array) #16 /path/to/user/www/tmp/processwire-dev/site/assets/cache/FileCompiler/site/modules/TracyDebugger/panels/RequestInfoPanel.php(484): ProcessWire\Page->child('...') #17 /path/to/user/www/tmp/processwire-dev/site/assets/cache/FileCompiler/site/modules/TracyDebugger/tracy-2.10.x/src/Tracy/Bar/Bar.php(143): RequestInfoPanel->getPanel() #18 /path/to/user/www/tmp/processwire-dev/site/assets/cache/FileCompiler/site/modules/TracyDebugger/tracy-2.10.x/src/Tracy/Bar/Bar.php(115): Tracy\Bar->renderPanels('') #19 /path/to/user/www/tmp/processwire-dev/site/assets/cache/FileCompiler/site/modules/TracyDebugger/tracy-2.10.x/src/Tracy/Bar/Bar.php(89): Tracy\Bar->renderPartial('...') #20 /path/to/user/www/tmp/processwire-dev/site/modules/TracyDebugger/tracy-2.10.x/src/Tracy/Debugger/DevelopmentStrategy.php(123): Tracy\Bar->render(Object(Tracy\DeferredContent)) #21 /path/to/user/www/tmp/processwire-dev/site/assets/cache/FileCompiler/site/modules/TracyDebugger/tracy-2.10.x/src/Tracy/Debugger/Debugger.php(319): Tracy\DevelopmentStrategy->renderBar() #22 [internal function]: Tracy\Debugger::shutdownHandler() #23 {main} Tracy was installed some seconds before, so it should be the latest version ? Link to comment Share on other sites More sharing options...
adrian Posted December 20, 2023 Share Posted December 20, 2023 Hi @bernhard - I am not sure why PW is trying to an is_file() on ProcessWire\BasicPagePage.php because that's obviously not a valid path. Perhaps you could assist by checking back through the stack trace to see where it is coming from. The referenced line in the RequestInfo panel is a $p->child() call, so not sure how that alone could be triggering this error. Link to comment Share on other sites More sharing options...
bernhard Posted December 21, 2023 Author Share Posted December 21, 2023 I added echo "$file<br>" in WireClassLoader.php:354 right above the is_file() and this is what I get: /path/to/user/www/tmp/processwire-dev/wire/core/ModulesInfo.php /path/to/user/www/tmp/processwire-dev/wire/core/ModulesClass.php /path/to/user/www/tmp/processwire-dev/wire/core/ModulesFlags.php /path/to/user/www/tmp/processwire-dev/wire/core/ModulesFiles.php /path/to/user/www/tmp/processwire-dev/wire/core/ModulesConfigs.php /path/to/user/www/tmp/processwire-dev/wire/core/ModulesLoader.php /path/to/user/www/tmp/processwire-dev/wire/core/WireDatabasePDOStatement.php /path/to/user/www/tmp/processwire-dev/wire/core/WireCacheDatabase.php /path/to/user/www/tmp/processwire-dev/wire/core/DefaultPage.php ProcessWire\DefaultPage.php /path/to/user/www/tmp/processwire-dev/site/classes/DefaultPage.php /path/to/user/www/tmp/processwire-dev/wire/core/HomePage.php ProcessWire\HomePage.php /path/to/user/www/tmp/processwire-dev/site/classes/HomePage.php /path/to/user/www/tmp/processwire-dev/wire/core/PageProperties.php /path/to/user/www/tmp/processwire-dev/wire/core/PageValues.php /path/to/user/www/tmp/processwire-dev/wire/core/AdminPage.php ProcessWire\AdminPage.php /path/to/user/www/tmp/processwire-dev/site/classes/AdminPage.php /path/to/user/www/tmp/processwire-dev/wire/core/UserPage.php ProcessWire\UserPage.php /path/to/user/www/tmp/processwire-dev/site/classes/UserPage.php /path/to/user/www/tmp/processwire-dev/wire/core/RolePage.php ProcessWire\RolePage.php /path/to/user/www/tmp/processwire-dev/site/classes/RolePage.php /path/to/user/www/tmp/processwire-dev/wire/core/WireInputDataCookie.php /path/to/user/www/tmp/processwire-dev/wire/core/PermissionPage.php ProcessWire\PermissionPage.php /path/to/user/www/tmp/processwire-dev/site/classes/PermissionPage.php /path/to/user/www/tmp/processwire-dev/wire/core/FileLog.php /path/to/user/www/tmp/processwire-dev/wire/core/PagesRequest.php /path/to/user/www/tmp/processwire-dev/wire/core/PagesPathFinder.php /path/to/user/www/tmp/processwire-dev/wire/core/AdminThemeFramework.php /path/to/user/www/tmp/processwire-dev/wire/core/WireMarkupRegions.php Then I added this: if($file === "ProcessWire\DefaultPage.php") { echo var_dump(Debug::backtrace()); } // result array(9) { [0]=> array(2) { ["file"]=> string(34) "/wire/core/WireClassLoader.php:313" ["call"]=> string(81) "WireClassLoader $classLoader->findClassInPaths("DefaultPage", [ 'ProcessWire\' ])" } [1]=> array(2) { ["file"]=> string(28) "/wire/core/Templates.php:862" ["call"]=> string(39) "class_exists("ProcessWire\DefaultPage")" } [2]=> array(2) { ["file"]=> string(28) "/wire/core/Template.php:1441" ["call"]=> string(45) "$templates->getPageClass(Template $obj, true)" } [3]=> array(2) { ["file"]=> string(31) "/wire/core/PagesLoader.php:1312" ["call"]=> string(24) "Template->getPageClass()" } [4]=> array(2) { ["file"]=> string(24) "/wire/core/Pages.php:217" ["call"]=> string(30) "PagesLoader->getById(array(8))" } [5]=> array(2) { ["file"]=> string(30) "/wire/core/ProcessWire.php:625" ["call"]=> string(14) "$pages->init()" } [6]=> array(2) { ["file"]=> string(30) "/wire/core/ProcessWire.php:582" ["call"]=> string(47) "ProcessWire $wire->initVar("pages", Pages $obj)" } [7]=> array(2) { ["file"]=> string(30) "/wire/core/ProcessWire.php:315" ["call"]=> string(36) "ProcessWire $wire->load(Config $obj)" } [8]=> array(2) { ["file"]=> string(13) "/index.php:52" ["call"]=> string(43) "ProcessWire $wire->__construct(Config $obj)" } } Any ideas? Maybe I should better create an issue for PW itself? Link to comment Share on other sites More sharing options...
adrian Posted December 21, 2023 Share Posted December 21, 2023 It is weird to me seeing all those paths like "ProcessWire\UserPage.php" in amongst the other full correct paths. They are clearly not valid and will trigger errors for any open_basedir restrictions. So it does seem like a question for Ryan from what I can see. 1 Link to comment Share on other sites More sharing options...
aComAdi Posted January 24 Share Posted January 24 HI Bernhard, Have you found some explanation/resolution to this issue. We just installed a 3.0.229 instance and have noticed the same error in Tracey. Simultaniously we see the following notice on pages (in the backend) which we have never seen persiting before. FieldtypeImage: Settings have not yet been committed. Please review the settings on this page and save once more (even if you do not change anything) to confirm you accept them. We obviously saved the page and also checked the template and all associated image fields. All seems normal. Actually editing the page works correctly as well, as does the front-end. It's just confusing and we don't want to run into problems down the road with this installation. Link to comment Share on other sites More sharing options...
bernhard Posted January 24 Author Share Posted January 24 Hey @aComAdi thx for the report. Are you on the latest dev? See https://github.com/processwire/processwire-issues/issues/1862 I've heard from @Stefanowitsch that the issue is still there so it might be necessary to reopen the issue. But it's gone one my end so we'd need more insights first ? Link to comment Share on other sites More sharing options...
aComAdi Posted January 24 Share Posted January 24 I'll upgrade to dev version 3.0.235 then...will report back. Link to comment Share on other sites More sharing options...
aComAdi Posted January 24 Share Posted January 24 Oh sorry, only saw now that this was within the Tracy branch. Upgraded Tracy to 4.25.13. That resolved the error output by Tracy. (But not my original issue that I was researching.) Link to comment Share on other sites More sharing options...
Stefanowitsch Posted January 24 Share Posted January 24 This error completely disappeared after I changed the PHP ini settings to: open_basedir: none Before that I got all kinds of "open_basedir restriction in effect" error messages. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now