Currently I have multiple installations SS 2.4.5 running in production.
On our dev web server I've just recently downloaded SS 3.0.5 and started walking through the upgrade guidelines from:
http://doc.silverstripe.org/framework/en/installation/upgrading
and reading:
http://doc.silverstripe.org/framework/en/trunk/changelogs/3.0.0#upgrading
"Rename references of sapphire to framework in .htaccess, web.config and /usr/bin/sake (the last is only necessary if you use sake)"
- don't see any .htaccess files
- /cms/web.config doesn't seem to contain any reference to /sapphire or /framework
- not using /usr/bin/sake as far as I know
I've backed up the working test installation of 2.4.5 before starting. I've only been working with this inherited SilverStripe a few months however I am fairly familiar with Unix, Apache and PHP. There is a fair bit of content on the 3 sites along with a handful of custom templates that were developed outside our organization.
Basically I've just deleted/moved the old 2.4.5 /cms and /sapphire directories and moved the 3.0.5 directories for /cms and the /framework directories into the old /html.
At this point I am sure some url's are broken due to rewrite rules. I've gone into Apache's httpd.conf and vhosts.conf files and replaced the few instances of 'sapphire' with 'framework' and restarted Apache. I did not find any .htaccess files under /html.
When I attempt to go the the website in order to do a /dev/build, I end up with a 500 Internal Error instead of the /dev/build output. Going to http://<mysite>/i.php will show me the PHP info page.
I assumed at first SilverStripe's main.php isn't even getting read and that I'm missing somewhere that has sapphire hardcoded instead of framework at the very least but was wondering where I should be looking next, however from my Apache error log I've seen (IPs changed to xxx by me:
[Mon Feb 25 16:08:50 2013] [error] [client xxx.xxx.xxx.xxx] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[Mon Feb 25 16:05:10 2013] [error] [client xxx.xxx.xxx.xxx] PHP Fatal error: Call to undefined function mb_http_output() in ../www/html/framework/core/Core.php on line 232
the lines from Core.php:
232 mb_http_output('UTF-8');
233 mb_internal_encoding('UTF-8');
234 mb_regex_encoding('UTF-8');
###
Update:
Looking at phpinfo() I don't think multibyte extensions are installed in the version of PHP on the server currently. Perhaps this is the culprit?
After doing a 'yum install php53-mbstring.x86_64' and restarting Apache I seem to no longer be getting mbstring errors. Still can't /dev/build but errors from Apache now look like:
[Mon Feb 25 17:05:18 2013] [error] [client xxx.xxx.xxx.xxx] PHP Strict Standards: Declaration of SortableDataObject::extraStatics() should be compatible with that of DataExtension::extraStatics() in /www/html/dataobject_manager/code/SortableDataObject.php on line 123
and similar errors for other modules like ConcurrentEditingSiteTree, GoogleSitemapDecorator, AssetManagerFolder, etc.
###
Update #2:
After commenting out about a dozen lines from /mysite/_config.php and many reloads of http://<mysite>/dev/buid/?flush=1 some dev/build output was displayed. Quite a bit actually. Hopefull I would at least be able to get to the front page I directed the browser to http://<mysite> but was greeted by trace output which I suppose is a better than a 500 Internal Error. The trace results without the actual lines of code displayed looks something like:
[Strict Notice] Declaration of Subsite::duplicate() should be compatible with that of DataObject::duplicate()
GET /
Line 8 in /www/html/subsites/code/Subsite.php
[Strict Notice] Declaration of Subsite::canEdit() should be compatible with that of DataObject::canEdit()
GET /
Line 8 in /www/html/subsites/code/Subsite.php
[User Deprecated] DataList->join is deprecated. Use innerJoin() or leftJoin() instead. Called from DataObject::get.
GET /
Line 171 in /www/html/framework/dev/Deprecation.php
[User Deprecated] DataQuery->join is deprecated. Use innerJoin() or leftJoin() instead. Called from {closure}.
GET /
Line 171 in /www/html/framework/dev/Deprecation.php
[Notice] Undefined offset: 0
GET /
Line 306 in /data/www/html/subsites/code/Subsite.php
[User Deprecated] SQLQuery->__get is deprecated. Please use getDelete() instead. Called from SiteTreeSubsites->augmentSQL.
GET /
Line 171 in /www/html/framework/dev/Deprecation.php
###
Suggestions welcome.