Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Upgrading SilverStripe /

Ask questions about upgrading SilverStripe to the latest version.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Error messages galore and upgrading hell


Go to End


5 Posts   2321 Views

Avatar
Codetapper

Community Member, 8 Posts

9 June 2010 at 1:49pm

Edited: 09/06/2010 3:41pm

My local Silverstripe test site decided to corrupt itself recently. I am running the latest WAMPServer 2.0i (PHP 5.3) on a Windows 7 Pro machine. It is a very basic install with Blog and Forum disabled and absolutely no external modules. I got the following errors appearing:

Parse error: parse error, expecting `T_STRING' in C:\wamp\www\ss\sapphire\core\ManifestBuilder.php(236) : eval()'d code on line 1

I decided to try and download 2.4 and install that. Even more errors:

Parse error: parse error, expecting `T_STRING' in C:\wamp\www\ss\sapphire\core\ManifestBuilder.php(236) : eval()'d code on line 1

Warning: $project isn't set in C:\wamp\www\ss\sapphire\core\ManifestBuilder.php on line 259

Warning: SS_Report::register(): 'SideReport_EmptyPages' is not a subclass of SS_Report in C:\wamp\www\ss\cms\code\Report.php on line 301

Warning: SS_Report::register(): 'SideReport_RecentlyEdited' is not a subclass of SS_Report in C:\wamp\www\ss\cms\code\Report.php on line 301

Warning: SS_Report::register(): 'SideReport_ToDo' is not a subclass of SS_Report in C:\wamp\www\ss\cms\code\Report.php on line 301

Fatal error: Class 'Email' not found in C:\wamp\www\ss\sapphire\security\Member.php on line 1547

I haven't changed any of those files. The error handling in Silverstripe is a disgrace. Sometimes a dodgy line of code can make the entire site display a general "there has been an error" message on a live site. This ManifestBuilder file gives out a next to useless message - why can't it say what the problem is? Why does a module that comes with the clean 2.4 install (SS_Report) complain so much when I haven't touched a single line of code in the cms/sapphire directories?

I also agree with others on here saying the upgrade method is abysmal compared to many other systems. It should be more like Wordpress where you can just click an Upgrade button and you're done.

Avatar
Willr

Forum Moderator, 5523 Posts

9 June 2010 at 5:49pm

Hm something sounds like it went majorly wrong. Make sure the first thing you did after replacing the sapphire/ cms/ dirs (and deleting the jsparty dir) you run a /dev/build?flush=all.

As for the upgrading progress, it is something that could be improved but the idea of the CMS is that its for the Users so anything in there is targeted towards them. Also the modules aren't at the stage in terms of APIs and support to fully automate the upgrade process. If upgrading was an option in the CMS I could just imagine the number of clients who click buttons and break the whole site!.

SilverStripe is very different than wordpress in the regard that SS encourages a lot more custom development rather than out of the box setups and our APIs are still young and being fleshed out so it wouldn't be completely safe to have completely streamlined upgrades.

Avatar
Codetapper

Community Member, 8 Posts

9 June 2010 at 6:46pm

Doing a dev/build gives the same result - it bombs out without being able to run anything, hence I can't get the database to reset itself as the error remains.

Avatar
Willr

Forum Moderator, 5523 Posts

9 June 2010 at 7:21pm

Ok well lets try and go through this error by error

Warning: $project isn't set in C:\wamp\www\ss\sapphire\core\ManifestBuilder.php on line 259

Your mysite/_config.php file should have the following also check that nothing in your _config file could be causing the Parse error: parse error, expecting `T_STRING' error.

global $project;
$project = "mysite";

Warning: SS_Report::register(): 'SideReport_ToDo' is not a subclass of SS_Report in C:\wamp\www\ss\cms\code\Report.php on line 301

This is odd, I'm picking the manifest is simply out of date but check to see if it is a subclass - if you open up cms/code/SideReport.php on line 126ish you should see SideReport_EmptyPages extends SS_Report. Other things to check for this

* Permissions of the cms folder. Can your webserver read the files (including SideReport).

Fatal error: Class 'Email' not found in C:\wamp\www\ss\sapphire\security\Member.php on line 1547

Hm you should have an sapphire/email/Email.php file. Again check this file is readable by the webserver.

Avatar
Codetapper

Community Member, 8 Posts

10 June 2010 at 12:09pm

Edited: 10/06/2010 12:11pm

A completely clean install of v2.4 with a blank database gives the following errors:

Installing SilverStripe...

I am now running through the installation steps (this should take about 30 seconds)

If you receive a fatal error, refresh this page to continue the installation

    * Setting up 'mysite/_config.php'...
    * Setting up C:\wamp\www\ss\mysite/_config.php
    * Setting up '.htaccess' file...
    * Setting up C:\wamp\www\ss\.htaccess

      Parse error: parse error, expecting `T_STRING' in C:\wamp\www\ss\sapphire\core\ManifestBuilder.php(236) : eval()'d code on line 1

      Warning: $project isn't set in C:\wamp\www\ss\sapphire\core\ManifestBuilder.php on line 259

      Warning: SS_Report::register(): 'SideReport_EmptyPages' is not a subclass of SS_Report in C:\wamp\www\ss\cms\code\Report.php on line 301

      Warning: SS_Report::register(): 'SideReport_RecentlyEdited' is not a subclass of SS_Report in C:\wamp\www\ss\cms\code\Report.php on line 301

      Warning: SS_Report::register(): 'SideReport_ToDo' is not a subclass of SS_Report in C:\wamp\www\ss\cms\code\Report.php on line 301
    * Building database schema...

      Fatal error: Class 'DatabaseAdmin' not found in C:\wamp\www\ss\install.php on line 1025 

I added full permissions to 'Everyone' to be sure to the entire ss folder, making no difference. The _config.php file is the standard one SilverStripe installs itself, so it has $project at the top set to mysite.

Incidentally, I am running PHP 5.3.0 yet at the top of the install script failing it has the title set to 'PHP 5 is required' in case that makes a difference.