Jump to content

Error on Request Info Panel on fresh installation when editing the home page


Recommended Posts

Posted

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 ? 

Posted

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.

Posted

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?

Posted

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.

  • Like 1
  • 1 month later...
Posted

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.

 

Posted

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.)

Posted

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.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...