We regularly receive "bug" reports and support requests which are the variation of the following:
I just restored my site. Even though my hosts uses PHP 7.3 my site complains that it's running on PHP 5.4.45. This must be a bug.
Sometimes they might manifest themselves as a variation of this:
I just restored my site and all I can see is a blank page / PHP error.
In both cases the root cause is the same: your host has multiple PHP versions installed on the server and the default PHP version is too old for your site.
Quick fix: go to your hosting control panel and select a newer PHP version for your site.
Keep reading to understand why this happens and what you can do about it.
The messages about the PHP version do not do anything fancy to detect the PHP version. They simply ask PHP to report its PHP version by reading the PHP_VERSION constant. This constant is defined by PHP itself and it takes its value when PHP was compiled by your host. That is to say, it can never report the "wrong" PHP version. It always reports the exact PHP version your site is running under.
The real problem is that your host has multiple PHP versions installed but the default PHP version used to run your site is very old and not the same as the much newer one reported by your hosting control panel. We understand it's counter-intuitive. It's how your host works which is outside our control. All we can do is explain how things work under the hood and what you can do to fix your sites.
Most modern hosts have multiple versions of PHP installed in parallel on the server. In our example above a host has both PHP 5.4 and 7.3 installed in parallel.
The hosting control panel (e.g. cPanel or Plesk) will only ever run under the specific PHP version it was designed to run with. In fact, the hosting control panel doesn't run under your hosting account. It's a parallel system to the web server serving your site. When you visit the hosting control panel you see the PHP version the panel runs under in its own isolated web server. It is NOT the PHP version your site runs under.
Without doing anything further, your site runs under the default PHP version your host has selected for your web server. Typically hosts choose an older, obsolete PHP version. It makes business sense for them. Most of their clients will be maintaining old sites which have not been updated in years. By using a veritably antediluvian PHP version as the default they avoid having to provide support to these clients. The web hosting business bases its profitability on marginal cost cuts, after all.
This is, of course, a big problem when you want to run a modern, up-to-date site with modern, up-to-date software that requires a newer PHP version. All of these hosts allow you to select which PHP version your site will run under through their hosting control panel.
Most servers supporting multiple PHP versions run under Apache. When you go to your hosting control panel and change the PHP version what really happens is that your site's .htaccess file is edited. Typically, you will see a line starting with AddHandler or SetHandler added to the bottom of the file. Here's an example line from a typical cPanel installation enabling PHP 7.3:
AddHandler application/x-httpd-php73 .php .php5 .php4 .php3
In many cases you can select a different PHP version for each folder of your site. For example, you can set one version for the root of your site (typically called public_html, htdocs or www) and a different one for Joomla's administrator or WordPress' wp-admin folder. This is implemented by creating / modifying the .htaccess files inside each folder. Please keep that in mind if your public site seems to be running under a different version that your site's administrator backend.
Also note that .htaccess files, therefore the selection of a PHP version applied through a .htaccess file, cascades. This is a fancy way to say that whatever you select in your site's root will be applied to all subdirectories and their subdirectories and so on and so forth. You can override the cascade if you select a different PHP version for a specific folder. For example, if you apply a different PHP version in your administrator directory the setting inherited from the site's root is ignored and overridden by the PHP version selected for the administrator folder. All subdirectories of the administrator folder will use the PHP version specified for the administrator folder itself.
If you find yourself in a situation where you can't understand why different PHP versions are reported in different parts of your site try editing your .htaccess files and remove all AddHandler and SetHandler lines. Then go to your hosting control panel and apply the required PHP version to your site's root.
If you are using Akeeba Backup / Solo 7.3.0 or later and Akeeba Kickstart 7.0.1 or later any custom PHP versions will be honoured and applied to your restored site by default.
If you are restoring to a new server you need to go to your hosting control panel and apply the newer PHP version to your site's root right after uploading kickstart.php and your backup archive but before starting the restoration. If you are using the Site Transfer Wizard you need to do that after the wizard tells you it has finished uploading the files and before clicking the button to start the restoration on the new server.
Kickstart and the restoration script inside your backup archive will take note of the AddHandler and SetHandler lines and use them throughout restoration. Moreover, they will apply them to your .htaccess file when you click on the Clean Up button. This way your newer PHP version will be effective even after the restoration is complete.
If you are using an older version of Akeeba Backup and / or Kickstart you will have to apply the newer PHP version after you click the Clean Up button at the end of the restoration process.
There's a number of third party Joomla! extensions and WordPress plugins which can modify the .htaccess file of your site. As a result of these changes the AddHandler / SetHandler lines which set up a newer PHP version on your site may be removed.
On WordPress the .htaccess file is modified, not replaced, one section at a time specific to each plugin. Since the PHP version lines (AddHandler or SetHandler) are placed at the end of the .htaccess file they are not supposed to be touched by any third party plugins. Therefore nothing special is required there.
Joomla doesn't come with a default .htaccess file. Third party extensions can generate a new .htaccess from scratch. One such extension is our Admin Tools for Joomla. If you are using it you need to make a manual change to its configuration if and only if you are using its .htaccess Maker feature.
This ensures that regenerating your .htaccess file through the .htaccess Maker won't accidentally bump your site back to the server's older, default PHP version.
When restoring the site to a new server you have to follow this procedure again. The custom PHP version AddHandler line may be different on every host or even every server used by the same host.
Hello! Thank you for you interest in writing about, demoing, or teaching about Akeeba. We appreciate it!
These guidelines will help you talk about Akeeba and show our brand in a way that's accurate and consistent. To make any use of our logos or content in a way not covered by these guidelines, please contact us so we can discuss your use case.
Akeeba, Ltd is a developer-run company which has produced popular software for Joomla, WordPress, and the occasional stand-alone PHP application since 2006. We believe in crafting quality products, with a special focus on security and an eye towards the future. Our extensions help you manage your site and keep your site safe from hackers.
Backup Project Started | October 2006 (originally known as JoomlaPack) |
---|---|
Company Established | June 2012 |
Location | Nicosia, Cyprus |
Team Size | 2 |
The Akeeba logos include the Akeeba name and AK icon, as well as our product logos. Please don't modify the logos or use them in a confusing way, including suggesting sponsorship or endorsement by Akeeba, or in a way that confuses Akeeba with another brand (including your own). Thank you!
Akeeba Backup is an award-winning website backup product. We offer different versions for Joomla, WordPress, and a standalone PHP version called Akeeba Solo. You can use the free versions, or subscribe to a Professional plan to get advanced features and personalized support. Please note you need a separate subscription for Joomla, WordPress, and Akeeba Solo, as the products differ.
Admin Tools helps you manage and optimise your WordPress or Joomla site. The Professional versions also include robust security features, to help you protect your site against malicious bots or hackers. Please note you need a separate subscription for Joomla and WordPress, as the products differ.
Kickstart is an free and fast archive utility that allows you to quickly extract ZIP, JPA, and JPS files directly on your server. No need to upload thousands of files. Enjoy lightning-fast speed and reliability, even on the vast majority of shared hosts.
Akeeba LoginGuard is a free two-step verification extension for Joomla. Fun fact: Akeeba built the original two-factor authentication plugin now included in Joomla's core. Now we've gone back and made it better. Provided for free to help you gain additional login security.
Engage is a robust and fast comment system for Joomla. Works with Joomla's core content compontent and includes a full HTML editor for writing comments. Currently free without support, but we will be providing a subscription for end-user support soon.
A powerful ticket system component for Joomla, which we use to provide support on our own site. Provide support services on your site, the easy way. Full HTML editing. Email replies. WYSIWYG email template editing. Multilingual support. And much more!
Sometimes, when filing a ticket you may receive an error page "403 You have triggered our site protection". This is not a bug, it's really our site's protection kicking in when it find potentially dangerous or objectionable content in your ticket.
In this page we'll explain what that content would be and how to address it so you can file your ticket.
First, please make sure that you are allowed to access the support category you're trying to file a ticket in. This is explained further below.
When you have any triggering content in your ticket's title or main content area -- as explained further below -- you will see an error and your ticket will not be filed.
If the triggering content is an excerpt of a log file please place your log file in a compressed ZIP file and attach this ZIP file to your ticket. If your ZIP file is over 2MB big please upload the ZIP file to a public storage server (your site, Dropbox, OneDrive, Google Drive etc) and paste a download link in your ticket text.
If the triggering content is part of an error message please take a screenshot in PNG or JPG format and attach it to your ticket. If you cannot take a screenshot of the entire content please copy it into a plain text (.txt) file and treat that file as a log file per the previous paragraph (ZIP and attach it).
If the triggering content is part of a suspected hacked URL or hacking signature you can treat it the same way you should treat an error message as explained in the paragraph above: take a screenshot; if a screenshot is not a viable option please copy to a text file, ZIP the file and attach it to your ticket.
The only support category everyone has access to without further conditions is Pre-sales.
If you are trying to request support for any other software you need to have an active subscription that gives you access to the downloads and support of the software you are trying to get help for. If you are unsure, please make sure you are already logged in and do check your active subscriptions. If there's a problem with your subscription, e.g. it did not renew automatically even though you chose the recurring option when subscribing, please file a Pre-sales ticket about the subscription issue so we can help you with that issue first.
Further to that, please note that similarly titled software for different platforms requires separate subscriptions. For example, Akeeba Backup for Joomla is different than Akeeba Backup for WordPress. Getting support for Akeeba Backup for Joomla requires an active JoomlaDeluxe, Essentials or AkeebaBackup subscription. Getting support for Akeeba Backup for WordPress requires an active WPBundle or BackupWP subscription. If, for example, you only have an AkeebaBackup subscription you will get a 403 when trying to get support for Akeeba Backup for WordPress. In that case you'd be similarly unable to request support for Admin Tools for Joomla since it's not included with the AkeebaBackup subscription.
Finally note that in some cases you may have the Professional versions of our software on your site through the site integrator that built or maintains your site. In this case you cannot get updates or support directly from us. Instead, you need to go through that person or company. If you are no longer working with them you will need to purchase a qualifying subscription to request support. If you're not sure which subscription you should purchase please file a Pre-sales support request, either on our ticket system or our Contact Us page, so we can help you.
It's hard to find a solution if you don't know what kind of content might be triggering our site's protection. The following is the most common triggering content we've encountered when our clients attempt to file tickets on our site.
Database / SQL code
This is the most common case. You are trying to copy an error message which contains database (SQL) code, e.g. from a restoration gone wrong. We do not allow raw SQL code in our tickets' content for security reasons. You need to take a screenshot or copy it into a .txt file, ZIP the file and attach the ZIP archive to your ticket.
Please note that this can also be triggered in some circumstances by combinations of words which are very unlikely in the regular flow of the English language but common in SQL code such as "select frοm", "insert intο" or "replace intο". If that's the problem, please rephrase.
PHP, JavaScript, embeds or other non-static content (including in attachments)
Our site might reject tickets or silently reject attachments if they are detected to contain executable code such as PHP, JavaScript, embedded dynamic content etc.
If that's the case please do not include this content in your ticket's body. Instead, put the content in .txt file, ZIP the file and attach the ZIP archive to your ticket.
Objectionable / spam words
If you copied a spam or other message which contains profanity (swear words) or words commonly used by spammers. Keep in mind that our content filter includes word from different languages and character sets i.e not just English or similar western languages but also words in Russian written in Cyrillic characters.
If that's the case please do not include this content in your ticket's body. Instead, put the content in .txt file, ZIP the file and attach the ZIP archive to your ticket.
Hacking signatures
This is especially likely if you are trying to get support for a block notification you got from Admin Tools. This might include a hacking signature which is blocked by Admin Tools. Therefore it will also be blocked on our site if it's part of a ticket.
If that's the case please do not include this content in your ticket's body. Instead, put the content in .txt file, ZIP the file and attach the ZIP archive to your ticket.
Hello!
Our site is undergoing planned maintenance on Sunday, April 17th, 2022 between 07:00 GMT and 14:00 GMT.
During that time our sales system will be temporarily unavailable to prevent billing errors.
You can bookmark this URL and visit it right after the end of the maintenance period to complete your purchase.
We sincerely apologize for the inconvenience.
Best regards,
You can request a quote and / or an invoice in advance of your payment.
Typically this is necessary if you work in an organization which does not have a company credit card and / or requires all software purchases to be made against an invoice via bank / wire transfer.
Please be advised that in this case the prices and pricing policy posted on our site's Subscribe page does not apply. The prices and the pricing policy listed there are only valid for self-service, fully automated payments initiated by the client.
The prices listed in our Subscribe page only apply for self-service checkouts. When paying against an invoice the following price list applies:
You can purchase subscriptions for 1, 2, or 3 years.
Bundles are not products, they are a collection of products. Each included bundle product is billed as an individual product.
When Purchasing against an invoice you are not eligible for any automatic discounts, coupon codes, or any other discount offer.
You can request your invoice to be issued in a currency other than Euro as long as it's supported by our reseller which handles the transactions. Do note that in that list any currency denoted with an asterisk is not one we can issue invoices in. If you had requested a quote we can only issue an invoice in the same currency and for the same amount as the quote.
Invoices can be paid by bank / wire transfer, credit card, or PayPal through our reseller. We do not accept any other forms of payment, indicatively but not exclusively: cryptocurrency (e.g. Bitcoin), Western Union, cash, gift cards, e-wallet transfers etc.
The terms of payment for invoices are 100% payment within 30 days. In case of invoices issued in a currency other than Euro we request 100% payment within 10 days due to the risk of currency exchange rates.
Bank / wire transfer payments are collated by our reseller, Paddle, approximately once every 7 business days. Please allow another 1-3 business days for us to receive notification from Paddle and activate your subscription.
If you make a bank / wire transfer payment please remember to ask your bank to bear all expenses yourself. If our reseller receives a smaller amount than invoiced they will be contacting you to recover the missing sum which can lead to delays.
We will not activate a subscription / subscription renewal before our reseller notifies us that they have received the full amount. This may lead to service interruption when purchasing a renewal, or delays when purchasing a new subscription. Please take that into account when considering when to initiate your purchase process.
You can request your quote to be issued in a currency other than Euro as long as it's supported by our reseller which handles the transactions. Do note that in that list any currency denoted with an asterisk is not one we can issue quotes in.
The quotes we issue are valid for 40 calendar days from the day of issuance. However, any quotes issued against a currency other than Euro will only be valid for 7 calendar days from the day of issuance due to the risk of currency exchange rates. The time zone applicable is understood to be Asia/Nicosia (Cyprus time).
You cannot make a payment against a quote. The quote is merely informative of the pricing reserved for you for the validity period printed on it. You must request an invoice to be issued before making a payment. The invoice can only be issued or the same currency and amount you were quoted for.
If you are interested in receiving a quote and / or invoice before making a payment please use the Pre-sales category in our Contact Us page to send us the following information:
We will get back to you within 1-3 business days.
If you want to resell a subscription you are purchasing against an invoice, please let us know when you ask us to issue an invoice. In this case we will make two significant changes in the way we handle payment:
This lets you resell the subscription you purchased from us to your client with a markup of your choosing without the client knowing how much you paid us.