5.6 Upgrade: Fatal error - json.php

Permalink 2 users found helpful
Did an Upgrade from 5.5 to 5.6 with the following steps:
## Upgrading from a previous Version of concrete5

1. In the dashboard of your site, place your site into "Maintenance Mode." This will ensure your site does not appear down while upgrading.
2. Back up all site data thoroughly, including files and database tables, just in case.
3. Copy the "concrete" subdirectory from this new archive over your previous directory.
4. Visit the URLhttp://yoursite.com/index.php/tools/required/upgrade...
5. You should get some upgrade notes for the current version of Concrete. These might advise you to do current things for upgrading to go smoothly.
6. Click the upgrade button, and your site should be upgraded!

=> all went well!

Now when i want to add a new (edit an existing block works well) block on a page - i have the following error:

Warning: require_once(/data/vhosts/askwiki.ch/www/htdocs/concrete/models/json.php) [function.require-once]: failed to open stream: No such file or directory in /data/vhosts/askwiki.ch/www/htdocs/concrete/core/libraries/loader.php on line 40
Fatal error: require_once() [function.require]: Failed opening required '/data/vhosts/askwiki.ch/www/htdocs/concrete/models/json.php' (include_path='/data/vhosts/askwiki.ch/www/htdocs/libraries/3rdparty:/data/vhosts/askwiki.ch/www/htdocs/concrete/libraries/3rdparty:.:/usr/share/php5:/usr/share/php') in /data/vhosts/askwiki.ch/www/htdocs/concrete/core/libraries/loader.php on line 40


Thanks for any helpful suggestions!

ottigerb
 
ottigerb replied on at Permalink Best Answer Reply
ottigerb
Solved it by coping

root/concrete/libraries/3rdparty/JSON/JSON.php

to

root/concrete/models/json.php


=> it works with a stange feeling. :-)
4jhosting replied on at Permalink Reply
4jhosting
I too was having the same problem and used your suggestion of copying 3rdparty/JSON/JSON.php to root/concrete/libraries/models/json.php.

You are right it works but it seems strange that the required json.php file was left out of the directory where my installation expected it to be. It makes me think maybe my installation was off somewhere, else all upgrades would result in the same errors for everyone. Hopefully we will get an answer as more people upgrade.

thanks for the tip.
drumrby replied on at Permalink Reply
drumrby
I had the same problem and this fixed it. That said I was wondering the same as 4jhosting, maybe something with my installation was askew. Hopefully as more upgrade we will find out more.
sherryb replied on at Permalink Reply
Perfect fix! Thank you.
mhawke replied on at Permalink Reply
mhawke
Just so everyone knows, Tweetcrete was updated in the C5 marketplace to fix this issue.
nknadmin replied on at Permalink Reply
Lovely. Thanks for posting this. Solved my problem!
dcaryll replied on at Permalink Reply
dcaryll
Had the same issue. Moving the json.php file to the mentioned location also worked for me. Hoping it doesn't result in other errors in the future.

Thanks for the solution!
robsodium replied on at Permalink Reply
robsodium
I'm getting a similar error after upgrade...

Warning: require_once(/home/dispic_uk/core.distortedpictures.net/updates/concrete5.6.0.1/concrete/models/json.php) [function.require-once]: failed to open stream: No such file or directory in /home/dispic_uk/core.distortedpictures.net/updates/concrete5.6.0.1/concrete/core/libraries/loader.php on line 40
Fatal error: require_once() [function.require]: Failed opening required '/home/dispic_uk/core.distortedpictures.net/updates/concrete5.6.0.1/concrete/models/json.php' (include_path='/home/dispic_uk/core.distortedpictures.net/libraries/3rdparty:/home/dispic_uk/core.distortedpictures.net/updates/concrete5.6.0.1/concrete/libraries/3rdparty:.:/usr/local/lib/php:/usr/local/php5/lib/pear') in /home/dispic_uk/core.distortedpictures.net/updates/concrete5.6.0.1/concrete/core/libraries/loader.php on line 40


Any ideas on this one would be a massive help :)

Cheers,

Rob.
mhawke replied on at Permalink Reply
mhawke
I'm not having this problem so I'm not offering a solution but here are a few things to check...

1) Did you perform the above mentioned procedure?

2)Make sure that "root/concrete/libraries/3rdparty/JSON/JSON.php" still exists. Some comments above refer to 'moving' this file when you actually need to COPY it.

3) Check the case on the file's name you copied to "root/concrete/models/json.php". It needs to be lower case.
dcaryll replied on at Permalink Reply
dcaryll
Yeah, looks like the same error we were all having. Moving the json.php file should help you as well.

The uppercase/lowercase thing could be your issue. Make sure you download the file from 3rdparty/JSON/JSON.php and rename it json.php. Then upload it to root/concrete/models.
dcaryll replied on at Permalink Reply
dcaryll
Note that if you're core concrete folder is in the "updates" folder, then you'll have to use that path. So it would be core/updates/concrete5.6.0.1/concrete/models where you need to upload the json.php file to.
LiefZimmerman replied on at Permalink Reply
LiefZimmerman
This tidbit was my problem.
Why would my "core concrete folders" be in the updates folder?
robsodium replied on at Permalink Reply
robsodium
Cheers... this worked :)

Thanks everyone for the advice.

Rob.
jpgriffin replied on at Permalink Reply
jpgriffin
Cheers dcaryll.

Nearly gave up till I caught this hint about the updates folder.

Many thanks.
andrew replied on at Permalink Reply
andrew
Where is Loader::model("json"); or Loader::model('json'); being run? This isn't code that appears in the core.
mhawke replied on at Permalink Reply
mhawke
I used grep to scan my 5.6 test site that has a lot of packages in the packages folder. This site successfully upgraded. I can find "Loader::model('json')" called in 2 files. Both in the "jereme_tweetcrete" package. I don't have this package officially installed in my site but it's in my packages folder waiting to be installed. Perhaps that's why my upgrade went smoothly. It's found here:

Line 3 of

"\packages\jereme_tweetcrete\libraries\twitteroauth\twitteroauth.php"

and line 4 of

"\packages\jereme_tweetcrete\models\tweetcrete_hash_tag.php"
dcaryll replied on at Permalink Reply
dcaryll
I've got Tweetcrete installed as well. Perhaps that's the issue with all of our sites.
robhall replied on at Permalink Reply
robhall
I'm having the same problem but the fixes recommended (copying files) above are not working for me. I too have tweetcrete installed.

I think I've compounded the issue as well by trying a restore from cpanel with still no success.

Any more help greatly appreciated.
mhawke replied on at Permalink Reply
mhawke
I'm not sure that your problem is related to the Tweetcrete issue but can you get to your dashboard to uninstall Tweetcrete? I'm not sure how much your site relies on it but when you uninstall the package, it removes the current Tweetcrete blocks.

The cPanel stuff makes me nervous as well. Can you remember what you did in there?
witwag replied on at Permalink Reply
witwag
Same issue onhttp://www.agence-redaction-web.fr/... with Jereme Tweetcrete also installed...
robhall replied on at Permalink Reply
robhall
I've managed to restore to an earlier version and will leave alone until I get some confidence that this is resolved.
entchurch replied on at Permalink Reply
entchurch
I too have Tweetcrete installed but wasn't using it and got the same error. I made the changes suggested and that seemed to clear up the problem. Thanks for the help everyone.
mhawke replied on at Permalink Reply
mhawke
I don't think you have to have a Tweetcrete block actually on your site to cause the problem. I think all that's required to cause the problem is to have it installed so that it shows up on your list of possible blocks to add. On my sites that upgraded fine, the Tweetcrete folder existed in my packages directory but I had not officially installed the package. The sites that had problems were ones that had the package officially installed into the C5 infrastructure even if no Tweetcrete blocks had been placed on the site. Andrew mentioned in one of the Totally Random videos that 5.6 is stricter about structural problems in packages which is a good thing in the bigger picture.
jlackman replied on at Permalink Reply
I just upgraded to 5.6.3.3 and generated this error. I have tried all of the suggestions regarding the json.php file, lower case, in the upgrade core and the root core locations. It's still not working. I can't get to the panel to remove or upgrade tweetcrete either, so is there any way to manually remove TweetCrete if that's the problem?


Warning: require_once(/home3/jlackman/public_html/outshinedesign.com/updates/concrete5.6.3.3/concrete/models/json.php) [function.require-once]: failed to open stream: No such file or directory in /home3/jlackman/public_html/outshinedesign.com/updates/concrete5.6.3.3/concrete/core/libraries/loader.php on line 48

Fatal error: require_once() [function.require]: Failed opening required '/home3/jlackman/public_html/outshinedesign.com/updates/concrete5.6.3.3/concrete/models/json.php' (include_path='/home3/jlackman/public_html/outshinedesign.com/libraries/3rdparty:/home3/jlackman/public_html/outshinedesign.com/updates/concrete5.6.3.3/concrete/libraries/3rdparty:.:/opt/php53/lib/php') in /home3/jlackman/public_html/outshinedesign.com/updates/concrete5.6.3.3/concrete/core/libraries/loader.php on line 48
mhawke replied on at Permalink Reply
mhawke
Last resort is to open the 'Packages' table in phpMyAdmin and delete the tweetcrete entry.
jlackman replied on at Permalink Reply
My issue is resolved. I had to download the \core files from C5, then uploaded them to my site. Then, I went and looked again and the JSON was capitalized. So I changed that to lower case and now it works.