Fatal error on installation - call to a member function getPackageHandle line 223

Permalink
Hi,

I am trying to do a new installation of Concrete5.6.0.2 on a QNAP TS210 NAS drive. I previously had an old version (5.4.2.2) running but the idea was to completely replace it and design a new site.

I get through the first install page, and there are no warnings/errors there. On the next page though, where I enter the site name, server username and password etc, there is a message at the bottom saying:

Fatal error: Call to a member function getPackageHandle() on a non-object in /share/HDA_DATA/Qweb/concrete5.6.0.2/concrete5.6.0.2/concrete/single_pages/install.php on line 223

Would anyone have any idea what is causing this please? Php version is up to date, the php safe mode is off. I have re-downloaded 5.6.0.2 from the website and unzipped it again but with an identical problem. Is it anything to do with other databases running on phpMyAdmin/mySQL?

Any thoughts would be very gratefully received.

Dominic

 
JohntheFish replied on at Permalink Reply
JohntheFish
Sometimes installation gives funny errors when the database details are incorrect. I am not saying that is where this error comes from, but double-checking all the database info you enter to the installer is something to do in minute detail before digging further.
domblack replied on at Permalink Reply
Thanks for the amazingly speedy response John - I will re-check that and let you know.

Dominic
iControl1 replied on at Permalink Reply 1 Attachment
Hi There,

I am having the same issue with this.
I am installing C5 on a subdomain.
I get the error message on the page asking for the database details, so it appears there is an error even before I tell it how to log into the database etc.... (See Attachment)

Any ideas?
beeman89045 replied on at Permalink Reply
Slightly dated thread, but has anyone solved this issue on Synology NAS?
beeman89045 replied on at Permalink Reply
I figured this out for my Synology DS412+ NAS. I assume the solution will be similar on other Synology models. Some people have posted no issues with installing, which I assume would be attributed to the directories below not being created or the Synology Indexing service being off.

The issue is the result of the Synology Indexing service which places - by default - an @eaDir in nearly every user-created directory. @eaDir is a "hidden" folder where the server stores thumbnail files.

Concrete's install process attempts to enumerate the directories in the StartingPointPackages (around line 223) in Install.php.

<?php  
$availableSampleContent = StartingPointPackage::getAvailableList();
foreach($availableSampleContent as $spl) {
   $pkgHandle = $spl->getPackageHandle();
   ...
   }
?>


Essentially this portion of the script grabs what it believes are valid C5 Package Directories from /concrete/config/install/packages but the inclusion of the unexpected Synology @eaDir directory returns a NULL value in the getAvailableList() function. When the loop initiates on $spl, it hits that NULL value in the array, causing the

"Fatal error: Call to a member function getPackageHandle() on a non-object"

Removing the @eaDir will eliminate this error on Synology NAS. There are number of methods (Google) to stop the @eaDir indexing service and remove the @eaDir directories, but I used this one:

http://wiszkowski.blogspot.com/2012/08/synology-tweaking-eadir.html...