2

My father maintains a website for my sisters small business, recently he has been unable to login and the website only gives a blank page. Upon a little digging on my end I have found out his host upgraded to PHP 7, and the Joomla version has never been upgraded beyond its original install version (I think possible 3.4 or maybe even lower, but definitely 3.x).

I have edited the configuration file to show errors, and see the following error now displayed on the home page:

Fatal error: Cannot use Joomla\String\String as String because 'String' is a special class name in /home/[username]/public_html/libraries/vendor/joomla/registry/src/Format/Json.php on line 12

From googling it seems this is due to conflict between old version of Joomla and PHP 7, but my problem is I am unable to upgrade it because administrator area is no longer accessible due to php errors, and the host has not made old versions of PHP available. I have downloaded a copy of the site and made a backup of the database so if need be I can do a fresh install, but if I do that I am not sure how to migrate the content from the old version into the new one.

I did try Akeeba backup using a old backup of the site, but that just restored everything including the old broken version of Joomla. Other than redoing the site from scratch, are there any other options for me? I did try a manual upgrade but after overwriting all the files I still couldn't access administrator area.

5
  • 2
    if you downloaded the old site, then run it on a local host on your laptop under PHP 5.6 (for example, use WampServer: wampserver.com/en ) . Then update the whole site on your laptop to the freshest Joomla 3.9 in the back-end of Joomla, then if it is running well on your laptop you can upload the whole site to the host server of yours (maybe to a new web subfolder on the server and then you point to the new folder as your domain/site new root folder and it will be done - well, more or less. since you have to deal with the database too...
    – Zollie
    Dec 28, 2019 at 18:29
  • Of course the above suggestion is OK if your host really does not provide earlier versions of PHP available in your web account which is quite weird and you should change web hosting company if it is really the case, since this is a minimum required service from a host to making you able to change PHP versions in your account even in subfolder levels.
    – Zollie
    Dec 29, 2019 at 7:55
  • If her business relied on the website at all I’d switch hosts for her, but for the ridiculously low price it is each year I can live with it. My main concern was a categorised image gallery with a few hundred images, each with its own description, I found I was able to export the tables for that component from the old database and insert them into the new one. As that was the most time consuming part I was worrying about sorted, I opted to just install a new version, import tables and images and redo the few articles it had again from scratch. WAMP is good to know for future reference though!
    – Dekks
    Dec 29, 2019 at 21:19
  • 1
    You can solve it this way or that way, that is the most important.
    – Zollie
    Dec 30, 2019 at 4:52
  • It's definitely something I would consider if (or considering how unmaintained the site is, when!) It happens again. I appreciate the information.
    – Dekks
    Dec 30, 2019 at 14:24

2 Answers 2

2

I would suggest you switch back to the earlier version of PHP and upgrade the Joomla site to the latest level and then switch back to PHP 7.x

If you login to the hosting account for the website look for an option change the PHP level for the account. Under cPanel hosting accounts you will find it as PHP Selector or Multi-PHP and a quick google search showed a few tutorials for Plesk accounts.

Or you can ask the hosting company if they can switch the account back to the pre 7.x level while you get the Joomla installation up to date. It will only affect your site/account, not all of their other customers.

In my experience there is a default level of PHP set by the hosting company and unless you choose to use another level of PHP your PHP will get upgraded on their schedule which is what it sounds like has happened here. You can change that so you are no longer using the default level of PHP, which I do for my sites so I can decide when to move to the next level of PHP.

PHP Selector and MultiPHP are two different products, and a nice hosting panel should only show the one they want you to use, but if you see both you need to work out which one is going to take affect, or again ask the hosting company support to regress the PHP level for you.

1
  • It’s a very cheap shared hosting package that still has the grandfathered price from over ten years ago. If it wasn’t so cheap I’d switch host, or get her one of those wysiwyg drag and drop sites so she could maintain it herself. As it is the site only gets a few hundred hits a year and relatively little traffic so so for now will have to live with the various niggles it has. Alas the things we do for family.
    – Dekks
    Dec 29, 2019 at 21:25
0

I ended up wiping and installing latest version of Joompa, recreating the articles from scratch, and importing the image gallery database and image files from a backup. If the site had more than a few articles then Zollie's suggestion to install a local copy of the environment using wamp and upgrading Joomla there and reuploading to the host seems like the best solution and possibly would of been quicker.

1
  • Just a suggestion, going forward, as it's a family thing. Every month or two, wander out to the site and grab a complete download of source and data, and keep it running locally in a machine of your own. Since it's working now, it shouldn't take very long to set it up on your local machine, and very little time to maintain it. Then when this happens again, you'll already have a working setup on your local machine so you can implement @zollie's suggestion quickly, and solve a problem for your father and sister with much less work. A win for the whole family.
    – Arlen
    Dec 30, 2019 at 15:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.