This documentation page does not apply to our software versions for Joomla! 4.0 and later versions. If you are not using Joomla 3 please consult the documentation index to find and read the correct version of the documentation.
Sometimes, when restoring a site on a different host or when transferring a site between a local and a live server, you will end up with a misbehaving site. The following pages will allow you to troubleshoot such issues.
You have to make sure that there are no settings transferred
in files from your old server which are not compatible with your new
host. The most notable culprits are .htaccess
and local php.ini
directives.
If you have used Admin Tools' .htaccess Maker please remember that after restoring the site to a different location you will need to reconfigure and create a new .htaccess. Login to the back-end of your site, go to Components, Admin Tools, .htaccess Maker, then change the domain and directory names at the bottom of the page and finally click on Save & Create .htaccess. This is mandatory, every time you move your site to a different host, domain name, subdomain or directory.
This is a very common mistake with Joomla!1.6 and later
versions. What you probably not remember is that you modified the
cookie setup parameters in your site's Global Configuration page.
The thing is, if you modify the cookie domain name and/or path, it's
very likely that you will no longer be able to log in to your site
if the domain name, subdomain or directory changes - exactly what
happens when you restore a site to anywhere except its original
location! Luckily, the workaround is very simple. Please edit the
configuration.php
file in the root of your site
and find the lines starting with public $cookie_domain
and public $cookie_path
. Modify them so that they
read:
public $cookie_domain = ''; public $cookie_path = '';
Save the file, clear your browser's cookies and cache, quit and restart your browser and try logging in to your site. You should be able to login without any problem now.
Another thing that you should be aware of is that the same problem could be caused by your .htaccess file. It's always a good idea to at least temporarily rename .htaccess to something else (e.g. htaccess.bak) when you're trying to troubleshoot a login issue. A .htaccess file may define redirections which get in the way during login.
Tip | |
---|---|
You can change these parameters when restoring your site. We advise to clear (delete the contents of) these settings on most servers. In fact, if you need to set them to something other than blank (blank means "Joomla!, figure it out yourself") you would have already known what to set them to and why you need to do that. |
There is one more thing which has to do with your caching and
session storage options in your site's
configuration.php
file. If you are using redis,
memcached and so on it is possible that these are not supported by
your new host. Just to be on the safe side, edit your
configuration.php
file and change the following
lines to read:
public $cache_handler = 'file'; public $caching = '0'; public $session_handler = 'database';
The first two lines set the cache handler to use files and disables caching which addresses blank page / 500 error when accessing your site. The latter line sets the session handler to the default (database) which addresses log in issues.
If you are restoring to a local server, please make sure that
your PHP memory limit is adequately high. On some local hosts the
default setting is 8Mb, which is too low for Joomla!. You can
determine this be editing your local server's
php.ini
file. Look for a line like this (the
value 8M might be different):
memory_limit = 8M
Change it so that it reads:
memory_limit = 128M
If you are on a live host, please ask your host and make sure that your PHP memory limit is at least 32M. If it's not, ask your host for the proper way to increase it.
Look in your site's .htaccess file for directives such as
php_value
, php_flag
and
AddHandler
. Try commenting them out (putting a hash
in front of the line) to see if it helps.
Usually they have a format like this:
AddHandler application/x-httpd-php5 .php
You most probably have to remove those lines beginning with
AddHandler
, especially if your problem is that you get
a bunch of code, or the web browser offers to download index.php,
instead of your site's front page. You most certainly have to remove
such lines if you are restoring on a local server.
You should also try commenting out lines (by placing a single
# character in front of them) which look suspicious to you, because
any of those directives may cause trouble. If in doubt, get a fresh
Joomla! package, extract the htaccess.txt
file
from it, rename it to .htaccess
and upload it
to your host.
Check if you have redirections in your
.htaccess
file, for example directing all
traffic to the www prefixed site or to a specific domain, e.g. all
traffic to www.example.com
, even if it referenced
example.com
or example.net
in the URL. Such
problems are easy to spot because you have put this code in the
.htaccess
file and you should know about what
it does. Just remove it or comment it out.
Another thing you should look into is the
RewriteBase
line. Normally, you need something
RewriteBase /
if your site is on the root of the
domain, or RewriteBase /mydirectory
if it's inside a
directory named mydirectory
.
You should note that some servers do not accept
.htaccess
files. Putting such a file on your
site's root will make the server throw an HTTP Error 500: Internal
Server Error as soon as you try to access your server. If this
happens, you need to have a little chat with your host.
If you are restoring on a local host, you have to make sure that your server is loading the mod_rewrite module, otherwise you will most assuredly get a blank page or a 500 Internal Server Error.
If you are using WAMPserver on Windows you must note that
mod_rewrite is not loaded by default. In order to enable it, you
have to click on WAMPserver's tray icon, Apache, Modules and make
sure that Rewrite is checked. If not, click on it and wait for the
server to restart. This is required only the first time you restore
to a WAMPserver installation and only if you have SEF URLs turned on
and you are using Joomla!'s .htaccess
file.
Other local servers, like XAMPP, also come with the
mod_rewrite Apache module disabled. These servers require you to
edit the httpd.conf
or run other system
commands. Please consult your server package's documentation for
more information on enabling mod_rewrite.
Some live hosts also do not have Apache's mod_rewrite enabled. If trying to use Joomla!'s stock htaccess.txt renamed to .htaccess causes an immediate blank page or Internal Server Error 500 page on your site, please consult your host.
GoDaddy users will find out that the
.htaccess
changes need 10-30 minutes to take
effect. This is a limitation of your host. Normally, these changes
should take effect immediately, as happens with pretty much every
other host including local installations. Unfortunately this
behavior is specific to GoDaddy and neither you nor us have any way
to change it.
Sometimes you might be getting URL errors. For example, the
first page might display but clicking on any link returns a 404
error, while some other times the first page displays very weird,
like the CSS and images are not loading. Both of those issues have
nothing to do with the restoration itself, but your server setup and
a clash with how Joomla! works. The easiest way to work around it is
using the $live_site
variable in your configuration.php
file, if you haven't already set it up in ANGIE's Site
Setup page. Edit the
configuration.php
file in the root of your site
and modify it so that the line starting with var
$live_site
looks like this:
public $live_site = "http://www.mysite.com";
or (if you have installed in a subdirectory):
public $live_site = "http://www.mysite.com/mypath";
This will let Joomla! figure out the correct URLs to your site's CSS files, images and links and these errors will go away.
If you restored to a server which required the
$live_site
hack, next time do yourself a favour: use
ANGIE's feature for changing the $live_site
variable.
It is available in the second to last step of the restoration
procedure, just under the text boxes where you define your site's
name and email details.
Sometimes restored websites redirect to the original site even when there is no such parameter in .htaccess and $live_site is correcty set in the configuration.php. In this case, please check if you have any SEF or redirection plugins installed, including any plugins which might be redirecting non-SSL to SSL URLs or vice-versa. Many such plugins and components store absolute URLs (URLs which include the domain name) causing wrong redirections. If this is not the case, read further down this page.
If none of this helps, look for a file named
php.ini
inside your site's root. If it exists,
try renaming it to php.ini.bak
and retry
loading your site. Also do the same thing in your site's
administrator directory.
As a side note, we might also add that some third party components, such as DOCman and VirtueMart, store absolute paths in their configuration. If you restored to a different location / server than the one you originally had the site you backed up, trying to access your new web site's public front-end might result in blank pages or HTTP Error 500. You will have to edit the configuration of those components and ensure that you have changed the paths to reflect the correct paths on your new server / location.
Some other software store the database table prefix of your site in their configuration. For instance, SQL2Excel stores the database table prefix of your site inside the SQL queries attached to each worksheet. If you changed the database table prefix when restoring the site you also have to change these SQL queries. If unsure, ask the developer of that specific software. We can't know how all several thousands of Joomla! extensions listed on the Joomla! Extensions Directory work. We can only provide support for our own software.