I have downloaded the latest release of the Matrix source code and uploaded it to my server
The Matrix core is located at /home/rylas/public_html/site
And the installer is located at /home/rylas/public_html/installer
I tried running the installer and all worked fine until I got to the database creation and PHP returned this error:
Warning: processaction(XML/Tree.php): failed to open stream: No such file or directory in /home/rylas/public_html/installer/steps/databasecreate.inc on line 123
Fatal error: processaction(): Failed opening required 'XML/Tree.php' (include_path='.:/usr/lib/php/;.:/usr/local/lib/php/;.:/home/rylas/pear/lib/') in /home/rylas/public_html/installer/steps/databasecreate.inc on line 123
On step 14 of the installer (create system config), you should get a list of config variables that Matrix uses.
The SQ_CONF_PEAR_PATH variable should look something like this: /home/rylas/public_html/site/php_includes
Is that what you are seeing?
Bit of history…
We dont require XML_Tree for Matrix, but we have our own version in the php_includes directory that we use to parse the XML into a format we use. The SQ_CONF_PEAR_PATH variable is used to tell Matrix where to find the additional PEAR modules (XML_Tree in this case)
You're right, the installer is looking for the actual PEAR path. It never actually saves the path you enter in a config, it only uses it for checking the PEAR registry is there. By default the config the installer writes uses the system root variable you provide in step 3 and appends 'php_includes' to it, which you can check on step 14 of the install.
Ok, I got that working, those errors are gone, but now im getting more…
Notice: Use of undefined constant SQ_INCLUDE_PATH - assumed 'SQ_INCLUDE_PATH' in /home/rylas/public_html/installer/steps/databasecreate.inc on line 127
Warning: processaction(SQ_INCLUDE_PATH/system_config.inc): failed to open stream: No such file or directory in /home/rylas/public_html/installer/steps/databasecreate.inc on line 127
Fatal error: processaction(): Failed opening required 'SQ_INCLUDE_PATH/system_config.inc' (include_path='.:/usr/lib/php/;.:/home/rylas/pear/lib/') in /home/rylas/public_html/installer/steps/databasecreate.inc on line 127
well the first time i tryed to install it, i deleted the php_includes folder because i thought it was just a replica of the XML_Tree class that PEAR offers, so I removed everything, re-extracted, and started from a clean slate and it all seemed to work up until i got those latest errors. Ive tried restarting again but it did the same thing.
Ill think ill just take it the advanced way and use the command-line installer.
Check your MATRIX/data/private/conf/main.inc file. That's where SQ_INCLUDE_PATH is defined; if it's missing, something's gone wrong along the way.
Edited by Greg Sherwood:
Actually, its not set in main.inc - its generated in core/include/init.inc based on the current location of that particular file. It's very hard to get that SQ_INCLUDE_PATH define wrong because it is sytem generated.
Try logging out of the installer to clear your session and try again.
// Re-generate the Config to make sure that we get any new defines that may have been issued
require_once SQ_INCLUDE_PATH.'/system_config.inc';
Change that to this
// Re-generate the Config to make sure that we get any new defines that may have been issued
echo 'SESSION: "'.$_SESSION['sys_root'].'"';
require_once SQ_INCLUDE_PATH.'/system_config.inc';
This should print out the location of where the installer thinks your Matrix system is installed. Is this correct ?
There sounds as though there's an issue with swapping from installer sessions to the matrix defined sessions. After creating the config, matrix has enough information to be initialised. From this point on the installer uses the session created by Matrix to store information in; it sounds as though somehow something is slipping through somewhere. Were you able to get anywhere with the cli install?
The clue that php was mis-behaving was running it in CLI mode, where I would get an error about gettext.so not being found. I checked that gettext was installed (it was), and I know that other sites we're running use gettext… so did a php -i which showed that it didn't think it was loaded.