Akeeba Kickstart 5.x User's Guide

Nicholas K. Dionysopoulos

Akeeba Ltd

Copyright © 2008-2023 Akeeba Ltd

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the appendix entitled "The GNU Free Documentation License".

January 2023

Abstract

This book covers the use of the Akeeba Kickstart web-based archive extraction software. It includes reference for its interface, as well as instructions for automating its operation.

Chapter 1. Introduction

1. Overview

Kickstart is a PHP executable file ( script ) which extracts JPA, JPS and ZIP archives. It can be used over the web (from a web browser) or directly from the CLI.

Typically, it's used to extract the backup archives created with Akeeba Backup and Akeeba Solo on a new server or when the administrative interface of your site is no longer accessible. The actual restoration does not take place through Kickstart, though. The restoration script is included in the backup archive itself. Kickstart merely extracts the archive and lets you run that restoration script. At the end of the process Kickstart lets you clean up with one click which removes itself, the backup archive and the restoration script.

Additionally, Kickstart can be used to install various PHP CMS and popular scripts such as Joomla!, WordPress, Drupal etc. It can also be used to extract ZIP archives with numerous or big files that cannot be extracted otherwise. Just make sure your ZIP files are using the Deflate compression method.

Kickstart is also localisable, meaning that it can display itself in your own language. All you have to do is to upload your language's translation INI file in the same directory as Kickstart.

2. Why do we need Kickstart, anyway?

Even though Akeeba Backup is designed as an effortless way of backing up your site, it is only good up to the point of having a backup archive. Restoring it is a pretty much different story.

Without Kickstart you would have to download the file to your PC; extract it; upload all the files to your site via FTP or SFTP (with 5000+ files per site this is slow); go through the restoration process; remove the installation directory.

Most of this process is the same for every backup restoration. The only place where human intervention is truly required is the restoration process part. Moreover, transferring thousands of files over SFTP or, worse, FTP is orders of magnitude slower than transferring big archive files. These are the problems Kickstart is designed to solve.

Kickstart extracts the backup JPS, JPS and ZIP archives directly on the target server. The only thing you need to perform a restoration is Kickstart and the archive file(s). You just need to upload kickstart.php and your archive to the server, visit http://www.yourdomain.com/kickstart.php, select the archive, wait, go through the restoration process, click the cleanup button and your site is up and running. All unnecessary files –Kickstart itself, the backup archive and the restoration script– are removed.

In case your files and directories ownership and permissions are mixed up Kickstart can write files using FTP, SFTP or our Hybrid mode. The Hybrid mode solves a problem known as "permissions hell" where different files and folders are owned by different users, making it impossible to write to all of them either directly or through FTP. In this case Kickstart intelligently decides which method to use (direct write or FTP) on a file-to-file basis.

3. What Kickstart is and what it's not

Important

Kickstart IS NOT the restoration script. You DO NOT need it to restore backups.

Kickstart is an interactive archive extraction script and a clean-up tool. It is not a site restoration utility in itself. Kickstart performs the steps required before and after site restoration, whereas the site restoration procedure itself is carried out by the restoration script which was put inside your backup archive at backup time. To make it crystal clear, here is the flow of a Kickstart-powered site restoration procedure:

Uploading files. This is done manually. You upload Kickstart and the backup archive (ZIP or JPA format) to the target site's root.

Archive extraction . This is done by Kickstart. The backup archive is extracted. At this point your site is not yet ready to work.

Restoration process. This is done by the restoration script which was put in the archive at backup time and is now extracted on your server. You are asked some questions, the database data is restored and the new site configuration file is written on the disk. At this point, your site is pretty much ready to workin most cases. The exception is in case you need to manually reconfigure your .htaccess file and/or any software installed on your site (e.g. Joomla! components, WordPress plugins, Drupal modules and so on) which stores absolute paths or URLs in their own configuration.

Cleanup of unnecessary files. This is done by Kickstart. The backup archive, the installation directory and Kickstart itself are no longer needed and therefore deleted.

As you can see, Kickstart is a very generic tool, not strictly limited to restoring Akeeba Backup / Akeeba Solo backup archives. In fact it can be used to install popular CMS such as Joomla! and WordPress. It even lets you download their installation ZIP archives directly from Kickstart itself!

Tip

The correct way to see Kickstart is as a generic, interactive, web-based archive extraction script which can also clean up after itself.

Chapter 2. Before using Kickstart

1. Getting Kickstart

Kickstart can be downloaded from our site, https://www.akeeba.com/download. The ZIP package you download is named kickstart-VERSION-core.zip or kickstart-VERSION-pro.zip, where VERSION is the version number and core/pro define the kind of package (Core or Professional) you have downloaded. Each package contains kickstart.php itself, as well as all the available translation files. You have to extract this archive and upload kickstart.php and any translation INI files you may need to your site.

Warning

Kickstart IS NOT a Joomla! extension, WordPress plugin or Drupal module. You cannot "install" it on any of these CMS through their software installation tools. The entire point of Kickstart is being able to restore your site without having to install or access a full CMS installation.

2. Requirements

The server configuration requirements are:

PHP 5.6.0 or later. We recommend using PHP 7.4.

PHP zlib module installed and enabled. This should be enabled by default.

Correct directory and file ownerships and permissions, or FTP connection parameters must be entered.

The last requirement must be further explained. PHP with Safe Mode enabled will refuse to create folders inside another folder which is not owned by the same user as the one the web server (Apache) runs under, even if the folder is otherwise writable. Kickstart will fail in this case. Alternatively, if you supply the FTP connection information, Kickstart will try to use FTP to connect to your site and write the extracted files.

Important

If you use the FTP mode, Kickstart will require the specified temporary directory to be directly writable by PHP (usually, 0777 permissions help) or it will attempt to create a temporary directory of its own. If this procedure fails, Kickstart will notify you that the temporary directory is not writable.

Moreover, if you already have a site installed on the target server you have to ensure that all folders and files are writable. If not, Kickstart will fail and leave your site in a possibly broken state.

Chapter 3. Using Kickstart

1. Preparing for the extraction

The first step is to download the latest release of Kickstart. It can be always retrieved by visiting https://www.akeeba.com/download.html. It comes as a ZIP package. Do not try to install it in Joomla!, WordPress, Drupal etc. Instead you'll have to unzip it first. The extracted files are kickstart.php and a lot of .ini, .js and .pem files.

The kickstart.php file is required for Kickstart's operation and is self-contained, i.e. it doesn't need any other files (or Joomla!, or WordPress, or anything else) to be installed on your server.

The INI files are translation files. You only need them if you want Kickstart's interface to be translated in your language. You can safely delete any INI files which represent languages you do not speak.

Tip

Kickstart chooses the language to display based on your browser's language settings, based on the ordering you've set up in your browser, choosing the first language on that list that is available as a translation INI file. Please consult your browser's documentation for information on how to change the language list and preferred language order.

The JS files are not required, unless you don't have an Internet connection (e.g. restoring to a local server without an Internet connection) or have trouble accessing the sites where copies of these files are stored in (e.g. behind a corporate or state firewall).

The cacert.pem file is required on some servers if importing from an HTTPS URL or connecting to Amazon S3. If unsure, upload all files (see below).

The second step is uploading those files to your server. Upload kickstart.php and any files you may need to the server path you want the restored site to be installed. If you want the site to be extracted to your domain's root (something like http://www.example.com) you'll have to locate your web root. On most servers it appears as a directory named public_html, httpdocs, htdocs, www or something similar when you connect to your account by FTP. If unsure, ask your host. They know which directory it is without having to guess.

Important

If you are using Kickstart Professional you MUST rename kickstart.php to something that does not include the word "kickstart", e.g. wfklgjhwelkurgh.php. Kickstart will refuse to operate otherwise. This is a security precaution which cannot be circumvented.

The third step is getting your archive file to the server. This can be currently performed only by having you manually upload the archive by FTP to the same directory as the one kickstart.php is in.

Two words of caution:

Always, no matter what, use the Binary transfer mode to upload your backup archives by FTP. If you are using FileZilla you can do so by clicking on the Transfer menu, then the Transfer Type submenu and making sure that Binary is selected. If you do not do that, most FTP software will fall back to ASCII file transfers which will corrupt the backup archive and cause extraction issues.

If you had created a multi-part archive you have to transfer all files. In the case of a JPA file they have the same name and extensions of .jpa, .j01, .j02 etc. In the case of a ZIP file they have the same name and extensions of .zip, .z01, .z02 etc. If any of the parts is missing, an extraction error will occur.

Do note that the installer is included in the beginning of the archive. Even in the event of a partial restoration you will most likely be able to start the restoration procedure but your site will not work properly as many crucial files will be missing!

When you are done, you can launch Kickstart by visiting its URL. It usually has the form of http://www.example.com/kickstart.php.

2. Kickstart's interface

2.1. Initial dialogue

The initial dialogue

Once you launch Kickstart, you'll first get a standard notice regarding the top things that you should be aware about:

Kickstart is not an installer. It is an archive extraction tool. The actual installer was put inside the archive file at backup time.

Kickstart is bound by your server's configuration. As such, it may not work at all.

You should download and upload your archive files using FTP in Binary transfer mode. Any other method could lead to a corrupt backup archive and restoration failure.

Post-restoration site load errors are usually caused by .htaccess or php.ini directives. You should understand that blank pages, 404 and 500 errors can usually be worked around by editing the aforementioned files. It is not our job to mess with your configuration files, because this could be dangerous for your site.

Kickstart overwrites files without a warning. If you are not sure that you are OK with that do not continue.

Trying to restore to the temporary URL of a cPanel host (e.g. http://1.2.3.4/~username) will lead to restoration failure and your site will appear to be not working. This is normal and it's just how your server and CMS software work.

You are supposed to read the documentation before using this software. Most issues can be avoided, or easily worked around, by understanding how this software works.

This text does not imply that there is a problem detected. It is standard text displayed every time you launch Kickstart.

Once you have read all of the above and you feel comfortable with this information, please press the ESC key to close this dialog box.

2.2. The setup page

The setup page

The setup page contains of four steps.

The first step is selecting a backup archive. Kickstart automatically scans the directory it's in for JPA and ZIP archives, populating the drop-down list with these results. If there are multiple archives present, please click on the drop down list and select the one you would like to use. Extracting JPS (encrypted) backup archives requires either the mcrypt or OpenSSL PHP extension to be installed and activated on your server. Please keep in mind that even if your site is using HTTPS this doesn't mean that you have the OpenSSL PHP extension installed. You usually have to ask your host to enable it for you.

If you want to import a backup archive stored in external storage such as Amazon S3, Dropbox etc please consult Importing archives from Amazon S3, Dropbox etc.

The second step is the selection of the extraction method. There are two supported methods:

Directly

With this method, Kickstart will try to write directly to files. This is the ideal method if your server is using suPHP or if you have no Joomla! site installed yet. Since Kickstart runs in PHP, which in turn might run with your web server's privileges, you have to ensure that there are adequate permissions to write to the directory Kickstart is in and any existing files and directories with the same name as files and directories in the archive. If you are not sure, first try to remove everything except kickstart.php and the backup archive from your server. If you still get errors regarding the inability to write to files, you'll have to use the FTP mode.

Use FTP

In this mode, Kickstart tries to extract the files in a temporary directory, then use FTP to "upload" them to their final location. The ability to run Kickstart in this mode depends on your server setup. For example, some servers have a very strange firewall setup which doesn't allow Kickstart to connect to your site's FTP. Also note that Kickstart support FTP and FTPS (FTP over implicit SSL). It does not support the SFTP protocol, widely known as Secure FTP or FTP over SSH, as it is an entirely different protocol with very poor PHP support on commercial hosts.

The only implication in using the FTP mode is that you need a writable temporary directory. More on that later.

When you choose this option, a list of several options will expand underneath it. You have to fill them in for Kickstart to be able to work.

Important

Kickstart 3.1 or later, when extracting any ZIP archive or JPA archives created by Akeeba Backup 3.1 (or later), will also try to restore the last file modification time to match that of the source server. If you activate the FTP mode this will not be possible, as FTP does not support "touching" (changing the modification date and time) of files.

Hybrid

This mode combines the previous two in an intelligent manner. When selected, Kickstart will first attempt to write to the files directly. If this is not possible, i.e. due to permissions or ownership of the file or folder being extracted, it will automatically make use of the FTP mode to overcome the permissions / ownership problem. It effectively works around a situation commonly called "permissions hell", where different files and folders are owned by different users, making it extremely difficult to overwrite them. This is a situation which happens very commonly on shared hosting. Therefore we strongly advise clients on shared hosting environments to use the Hybrid option.

The same notes regarding a temporary directory etc as the "Use FTP" mode apply for the Hybrid mode as well.

Moreover, there is also the Ignore most errors checkbox. When it's checked, Kickstart will not throw an error when a file is not writable. This is useful when you are restoring a backup taken on a Linux server to a Windows server. In that case, some filenames may contain characters which are valid in Linux (e.g. colons) but not on Windows. Checking that option will tell Kickstart to ignore file creation errors.

Warning

When that option is enabled, Kickstart will not warn you even if a file could not be overwritten because, for example, its permissions made it unwritable. Use with extreme caution and always check that all of your files have been extracted properly.

The FTP Options

The FTP options which get to be displayed, should you choose the FTP mode, are:

FTP Host Name

If you are using the FTP mode, this defines the address of the FTP server used for uploading the files. Do note that you must enter only the domain or IP address, without the protocol. This means that ftp.example.com is correct usage, while ftp://ftp.example.com is incorrect.

FTP Port

The TCP/IP port of the FTP server to use. Normally you want to use port 21 (default plain FTP port). Only use something different if your host tells you so, or if you are using FTPS (FTP over SSL).

Warning

If your host tells you to use port 22, their connection mode is not compatible with Kickstart. Port 22 is used by the SFTP protocol, which is entirely different that the supported FTP and FTPS protocols. In this case you have to ask your host for plain FTP access to your site.

Use FTP over SSL (FTPS)

Check the box if you want to use the FTPS (FTP over SSL) protocol. The default is unchecked which means that Kickstart will use an unencrypted connection. Do note that Kickstart does not support SFTP, as it is an entirely different protocol than FTPS. The names look alike, but the protocols have nothing to do with each other.

Use FTP Passive Mode

Check the box to use the FTP Passive mode (default), or uncheck it to use the FTP Active mode. Most probably you want to use the default value (checked), as it is the only way to work around the firewall of your host. A very small minority of hosts require the Active mode, but they will tell you so in their FTP connection instructions.

FTP User Name

The FTP username.

FTP Password

The FTP password.

FTP Directory

The absolute FTP path to your restored site's root. THIS IS NOT THE SAME AS THE FILE SYSTEM PATH TO YOUR SITE'S ROOT!!! The easiest way to figure this out is to use FileZilla. Connect to your target FTP server with FileZilla. Navigate to the web server's root (usually it's a subdirectory named httpdocs, htdocs, public_html, http_docs or www). Above the right-hand folder pane you will see a text box with a path. Copy this path and paste it to this setting.

Temporary Directory

As PHP can't directly upload files while they are being extracted, Kickstart is extracting them to a temporary directory using direct file writes first, then uploads them to their final destination using FTP. Normally, Kickstart will try using the directory it's stored in to extract the temporary files. Many web hosts configure their servers in such a way that this is not possible. Using this option you can customise the location of the temporary directory to somewhere with adequate permissions. You can use either an absolute or a relative (to Kickstart's directory) path for this setting.

If unsure, you can follow an easy workaround. Create a directory named kicktemp in your site's root using FTP and give it 0777 permissions (or world-write privileges, e.g. full control to the Everybody pseudo-user, if you are using a Windows server). Then type in kicktemp as this option.

Tip

If you leave this field empty Kickstart will try creating the kicktemp directory automatically. On most servers this works just fine.

The third step is the Fine-Tuning of the extraction engine. In older versions these advanced options were hidden. Please click the Show advanced options (for experts) button to display the options. In newer versions (after 5.5.0) these options are displayed by default.

The first two options require you to understand how Kickstart works. Kickstart will start extracting files until the Maximum execution time threshold is reached. In fact, Kickstart allows for a 20% uncertainty of the accuracy of the elapsed time measurements, so the real duration may be somewhat less than that. If there are more files to extract, it will continue extraction in the next step. This approach allows it to work around the PHP time limit imposed by all hosts. However, if a step takes too little time, it is possible that your host mistakenly identifies this behaviour as a Denial of Service attack. As a result, Kickstart will force each step to last at least as much as the Minimum execution time value is. These two settings are expressed in seconds and can be perceived as a combined "from-to" step duration setting.

Next, you will find the options for the Stealth Mode in the Fine Tuning pane. The Stealth Mode allows you to display a static HTML page (optionally with images and SWF animation) to all visitors to the web site except yourself while you perform the restoration and only works with Apache or any other server supports mod_redirect functionality using .htaccess files (even some versions of IIS with third party add-ons do). This will prevent accidental disclosure of sensitive information while the restoration is in progress. This is performed by directing all traffic not coming from your IP address to the page you define in here. The first, obvious, setting is the Stealth mode check box. When you tick it, the stealth mode will be activated. The HTML file to show to web visitors option allows you to define the name of the static HTML page to show to your visitors. The file and its resources (images, CSS, Javascript files) must reside inside your to-be-restored site's root. You must only define the name of the file to use, not its URL. This means that offline.html is a valid setting, whereas http://www.example.com/offline.html is INVALID and will result in a 404 error thrown to your visitors.

Tip

If you are worried about SEO, fear not. The redirection happens with a "temporary redirection" HTTP status code, which will instruct search engines to revisit your site in a later time. As a result, you are not penalized for duplicate content or otherwise negatively affect your SEO while restoring your site.

The next option, Delete everything before extraction is dangerous, meant for expert users and only available in the Professional version of Kickstart. When you select this option all files and folders under the directory where you are extracting your backup archive (i.e. the directory where Kickstart lives) will be deleted. This may include files and directories which are not present in your backup archive and which may NOT belong to your site. For example, if you have the web root folder of a different domain or subdomain, or a third party script, it would be deleted all the same. This is what makes this feature dangerous. If you don't think everything through you might inadvertently and irreversibly delete something you shouldn't. As such YOU ASSUME ALL RESPONSIBILITY AND LIABILITY if you enable this feature. For security reasons (preventing someone from visiting a leftover kickstart.php file on your site and deleting everything before you knew it) this feature is only available in the Professional version of Kickstart which only works if its file is renamed to something which does not contain the word "kickstart" in it, making it unlikely that it will be abused.

Then, we have the Rename server configuration files checkbox. By default, Kickstart will rename .htaccess to htaccess.bak, web.config to web.config.bak, php.ini to php.ini.bak and .user.ini to user.ini.bak before extracting the archive. Moreover, any files by that name in the archive will be renamed. When you click on the Clean Up button the files are renamed back to their original names. These are all files that take an immediate effect on the server and can possibly cause the restoration to fail. For example, a .htaccess file which prohibits execution of kickstart.php would cause the extraction to fail immediately. Unchecking this box will NOT rename these files back after extraction. To make it clear, let's take the .htaccess file as an example:

If this box is checked (default) the .htaccess file which was contained in the archive IS renamed to htaccess.bak as soon as it's extracted. After the restoration is complete, the htaccess.bak files IS renamed back to .htaccess

If this box is NOT checked the .htaccess file which was contained in the archive IS renamed to htaccess.bak as soon as it's extracted. After the restoration is complete, the htaccess.bak files IS NOT renamed back to .htaccess. Its name remains htaccess.bak and you have to manually rename the file, e.g. through FTP or your hosting control panel's file manager.

Warning

Unchecking Rename server configuration files will most likely result in the restored site NOT working properly, or at all, until you manually rename and possibly edit the htaccess.bak, web.config.bak, php.ini.bak and user.ini.bak files.

Then you will find the Restore file permissions checkbox. When this is checked Kickstart will restore the permissions of the files (not folders!) to the ones they were at backup time. Please note that there are a few caveats:

This option only makes sense for backup archives taken on a Linux or macOS server and being restored to a Linux or macOS server. Windows servers do NOT have the concept of file permissions. Trying to use this option when restoring an archive on Windows OR with an archive that belongs to a backup taken on Windows this will have unpredictable effects. Just don't do it.

This option only works with JPA and JPS archives. ZIP archives do NOT store file permissions. Using this option with ZIP files has no effect.

Please remember that only permissions are restored, not the file ownership. The ownership of the files depends on your server setup and the file writing method you have used. Generally, it's a REALLY BAD IDEA to restore permissions if your original site had mixed ownership of its files.

This option does not restore folder permissions. Folders are listed before files in the archive and there's no guarantee that you're "done" extracting files to a folder. Therefore changing the folder permissions could easily make the folder unwritable before we are done writing files to it, therefore causing the extraction to fail. As a result the folders always get 0755 permissions.

It is a generally BAD IDEA using this option. Restoring a backup archive will result, in most cases, in all files and folders having the same ownership and the same, safe permissions (0644 for files and 0755 for folders). Unless you truly understand what you are doing and have a very specific use case you are recommended to not use this option. If you are not positively sure about what you are doing you may end up breaking your restored site and we won't be able to help you.

Finally we have the Files to extract area. If you leave it empty (default) all of the contents of the backup archive will be extracted. Sometimes you only want to extract specific files which were unfortunately deleted or overwritten. In the olden days you'd have to extract the entire backup archive, find the files you need and upload them to your site. This option eliminates this need. Just enter one or more file paths or shell patterns, one on each line, and Kickstart will only extract these files. A few things you should know:

All files and folders are expressed relative to the archive. For example, if you are extracting an archive to /home/myaccount/public_html/site and the file inside the archive is images/cat.png then you must use images/cat.png in Files to Extract, NOT /home/myaccount/public_html/site/images/cat.png.

Always use forward slashes to separate folder names and file names, even on Windows. For example, images/cat.png is valid whereas images\cat.png is INVALID.

You can use wildcards in the names. * matches any number of characters, ? matches exactly zero or one characters.

For example images/cat.jp? matches images/cat.jpg and images/cat.jpe but NOT images/cat.jpeg. On the other hand, images/cat.jp* matches all three files.

Wildcards apply to folder names as well. For example, images/*/cat.png matches both images/foo/cat.png and images/bar/cat.png. It does not, however, match images/cat.png since it's missing a second forward slash.

If you want to extract all files and folders under a directory suffix it with /*. For example images/* will match all contents of the images folder. Be careful! Do not use *.* as it will only match folder and file names with a dot in their name!

For geeks and power users only: this field is parsed by PHP's fnmatch() function. This means that you can use any shell pattern for more complex filename pattern matching. Using shell patterns is the only way, for example, to extract the files under a directory but not its subdirectories.

The extraction page

For the fourth step just click on the big, green Start button and wait while Kickstart extracts your archive.

The restoration and clean up page, right after the extraction

When the extraction is complete, you will be presented with an option to launch the installer. Clicking on the large green button will launch the installation/index.php relative URL to a new window. If you were extracting a backup archive taken with Akeeba Backup, this will execute the restoration script which was included in your backup archive and just got extracted. You will not be running Kickstart at that point, so you have to refer to the Akeeba Backup documentation for more information on how the restoration script works. Please do not close Kickstart's window. You will need it later.

After you have completed your site's restoration and you close the installation script's window, you will get back to Kickstart. The interface has changed slightly in the meantime:

The restoration and clean up page, right after the restoration

Just click on the Clean Up button. The following actions will be performed:

The installation directory is removed as it is no longer required.

Renamed files are renamed back. See Rename server configuration files in the configuration documentation above.

The backup archive (and all its parts, if it is a multi-part archive) is removed.

Kickstart itself and all of its translation INI files, if present, are removed.

The final page

At this point you can simply close Kickstart's window. Alternatively, you click on either button (or both!) to open the respective area of your site to a new browser window/tab.

Chapter 4. Advanced features

1. Import from a URL

Warning

This feature is restricted to Akeeba Kickstart Professional for security reasons. Please read the information on securing Akeeba Kickstart Professional. We would like to kindly remind you that Akeeba Kickstart Professional is only available to paying subscribers.

This feature allows you to import archives stored in any other web-accessible server. Please note that the file must be downloadable through the web without authentication, i.e. without needing to log in or provide a username, password or other means of authentication. Backup archives in the default backup directory of Akeeba Backup are, by default, NOT web accessible for security reasons.

This way you don't have to go through the extremely time-consuming steps of downloading files to your local PC and uploading them back to your new site, allowing for much faster site transfers between servers and/or site cloning. All you have to do is to use Akeeba Backup (Core or Professional) to backup your site, move the backup archive to a web-accessible location (e.g. your site's root), then use Akeeba Kickstart to restore the backup into any server, very easily.

Moreover, this feature can be used to quickly install the latest version of Joomla! or WordPress. Thanks to a special button (more below) it can automatically connect to the Joomla!/WordPress official site, find out what is the latest version is and put its URL in the download URL box. Since Joomla! and WordPress installation packages use the same format and directory structure as Akeeba Backup ZIP archives Kickstart can "restore" them, allowing you to quickly install a fresh Joomla! site on any server, without time consuming downloads and uploads.

Important

You ABSOLUTELY DO NOT need to install Joomla!, WordPress etc before restoring a backup archive generated by Akeeba Backup. In fact, you are strongly advised to NOT install your script/CMS AT ALL before restoring a backup archive generated by Akeeba Backup. Full site backups are restored best on an EMPTY hosting account.

In order to use this feature, upload Akeeba Kickstart into the root of the site where you want to restore your backup / install Joomla! / install WordPress and run it. Right under Step 1 you will see a small blue button reading Import from URL. Click on it. The following page appears:

Import from URL

If you are importing a backup archive from a web server enter its URL in the URL to Import field, then click on the Import from URL button.

Important

If it is a multipart backup archive, i.e. a backup which consists of several files, you will need to repeat this for every archive part file.

If you want to install a brand new copy of Joomla!™ on your site first click on the Latest Joomla! Release button. Kickstart will connect to joomla.org, find the download URL of the latest version of Joomla! and fill in the URL to Import field automatically. This will take somewhere between 3 and 10 seconds. Once the URL to Import field is filled in just click on the Import from URL button. Likewise you can use the Latest WordPress Release to have Akeeba Kickstart put the URL of the latest WordPress release's ZIP file in the field. Please note that the URL of the English version of the WordPress ZIP package will be put in the field. If you want a different language you need to go to WordPress.org and copy the URL to the localised WordPress package yourself.

Importing from URL

The download of the file begins. Depending on the capabilities of the server hosting your backup archive you will see a progress bar. If the remote server doesn't report the size of the backup archive, you will simply see the text below the empty bar indicating how much of the backup archive has already been imported.

Once the import is complete you'll be presented with the final page of the importer:

Finished importing from URL

Click on the Reload Kickstart button to reload Kickstart and have it list your newly imported file. Congratulations! You are now ready to restore the backup archive you just imported / install Joomla!.

2. Import from Amazon S3

Warning

This feature is restricted to Akeeba Kickstart Professional for security reasons. Please read the information on securing Akeeba Kickstart Professional. We would like to kindly remind you that Akeeba Kickstart Professional is only available to paying subscribers.

In order to use this feature, upload Akeeba Kickstart into the root of the site where you want to restore your backup / install Joomla! / install WordPress and run it. Right under Step 1 you will see a small blue button reading Import from Aamzon S3. Click on it. A new page appears.

Enter your Amazon S3 credentials (Access Key and Secret Key) in the provided text boxes. Please remember that the credentials you provide must have adequate privileges to list all buckets and list the contents and get objects from the bucket you want to import from. Then click on the Connect to Amazon S3 button to test the credentials.

Tip

If you get the error "AKS3Connector::listBuckets(): [60] SSL certificate problem: unable to get local issuer certificate" it means that your server does not have an up to date list of SSL Certificate Authorities. Please download the file cacert.pem and save it in the same directory as Kickstart. Then retry clicking the Connect to Amazon S3 button.

The Bucket dropdown should now have a list of your Amazon S3 buckets. Select the bucket you want to import from and click on List Contents.

In the panels below you will see a directory browser on the left hand side and a list of JPA, JPS and ZIP files on the right hand side. Navigate to the folder where your backup files are stored and click on the file to import.

Note

Kickstart Professional is smart. It will figure out if your backup archive consists of multiple parts (e.g. .jpa, .j01, .j02, ...) and download all of them automatically, without asking you, since they are all required to extract the backup.

You will see the Importing progress. Sit back and make sure your computer doesn't go to sleep or disconnects from the network while this is running.

In the end of the process you'll be told that the Import is complete. Click on Reload Kickstart to reload Kickstart and extract the newly downloaded backup archive.

3. Importing archives from third party storage services (Dropbox, OneDrive, ...)

The Import from URL feature can be used to import backup archives from external storage such as Dropbox, OneDrive and so on. The generic steps required are very simple:

Get a public URL to your backup archive

Use the Import from URL feature to import the backup archive

Below we'll see how to use this feature with Dropbox.

Importing from Dropbox

You don't need any third party software to import from Dropbox.

Log in to Dropbox' web site.

Navigate to the location of the backup archive.

Right click on the backup archive and select Share. Copy the URL shown in the pop-up dialog. IMPORTANT! The URL ends in ?dl=0. Change that to ?dl=1 before pasting it to Kickstart in the next step.

Run Kickstart and click on Import from URL.

Paste the URL you copied in the URL to Import field and click on the Import from URL button.

If you have a multipart backup archive repeat the steps 3, 4 and 5 for all parts (.jpa/.jps, .j01, .j02, ... or .zip, .z01, .z02, ...). This is important: if you're missing backup archive parts the restoration will not complete.

Go back to Kickstart's main page and begin the restoration of the backup archive.

Tip

It's much easier importing single part backup archives or backup archives with few parts. Since Akeeba Backup for Joomla! 4.0.0, Akeeba Solo 1.1.0 and Akeeba Backup for WordPress 1.1.0 you can use the Upload to Dropbox integration to upload up to 2Gb backup parts to Dropbox. Just make sure that the Enable chunk upload option is enabled in Akeeba Backup / Akeeba Solo.

Other storage providers

You will have to follow a similar procedure. As long as you can get a publicly accessible HTTP/HTTPS URL for your files you can import them using Akeeba Kickstart's Import from URL feature. Make sure the URL you get results in the file being immediately downloaded, without showing you a web page that lets you download it. In the latter case Kickstart would download the web page, not the actual file. If unsure consult the documentation of the storage service you are using.

4. Using from the CLI

Note

This is an advanced feature for power users. Most regular users should only use Kickstart as a web application.

Akeeba Kickstart 5.0 and later includes a CLI mode. It lets you run Kickstart as a command line application which can extract a backup archive taken with Akeeba Backup or Akeeba Solo.

In its simplest form you can use it as:

php kickstart.php archive.jpa

where

php is the path to the PHP CLI executable. You need PHP 5.3.03 or later to run Kickstart.

kickstart.php is the path to Kickstart itself.

archive.jpa is the path to the JPA, JPS or ZIP archive you want to extract.

Kickstart will extract the backup archive to the current directory. If you want to extract the backup archive to a different directory you should instead use it as

php kickstart.php archive.jpa /extract/to

where

/extract/to is the path where extracted files will be placed.

Please note that the directory where files are being extracted must be writable by the user under which the PHP process will be executing. This is typically the same user you are logged in with. Furthermore, unlike the web interface, Kickstart CLI does NOT support the FTP or Hybrid write mode.

The following options can be added at the the end of the command line, separated from the rest of the command line and each other with a space:

--password=yourPassword Informs Kickstart about the JPS encryption password. Required when extracting JPS files, ignored otherwise. yourPassword is the JPS encryption password. Remember that it's case-sensitive. Extracting JPS backup archives requires either the mcrypt or OpenSSL PHP extension to be installed and activated on your server. Please keep in mind that even if your site is using HTTPS this doesn't mean that you have the OpenSSL PHP extension installed. You usually have to ask your host to enable it for you.

--silent Do not print out any messages. If an error occurs you'll get exit code 255. If the extraction succeeds you'll get exit code 0.

--permissions Restore the permissions stored in the backup archive. Otherwise folders get 0755 permissions and files get 0644 permissions (recommended for most sites).

--dry-run Do not write anything to disk. Useful to test the integrity of a backup archive or list its contents. The latter, combined with the --extract flag, can be useful when you want to only extract a few files from the backup. We all had that client (or were that person) who deleted the wrong image on a live server, right?

--ignore-errors Ignore most file write and archive errors. Useful to extract semi-corrupt archives which otherwise fail.

--delete-before Delete all files and folders already present in the path where extracted files will be placed before extracting the archive. THIS MAY INCLUDE FILES AND FOLDERS WHICH DO NOT BELONG TO YOUR SITE AND WHICH DO NOT EXIST INSIDE YOUR BACKUP ARCHIVE. This is a DANGEROUS option and by enabling it you assume all responsibility and liability.

--extract=patterns Only extract files matching these patterns. Equivalent to the "Files to Extract" feature of the web version of Kickstart. Enter the file paths or shell patterns separated by commas.

Watch out! You may need to enclose the argument to the right hand of the equals sign in single quotes to prevent the shell from expanding the shell patterns before running Kickstart! For example, passing --extract=images/*.png may fail because the shell is trying to expand images/*.png before running Kickstart. Passing --extract='images/*.png' on the other hand will work since you are telling the shell "do not expand shell patterns inside the single quotes". Kindly note that this is dependent on the behavior of your shell (bash, csh, cmd.exe, Powershell, ...) and has NOTHING to do with our software - therefore we can't really help you with that, sorry.

Differences from the Kickstart web interface

Unlike Kickstart's web interface, the CLI mode does NOT rename the .htaccess, php.ini and .user.ini files. If you are extracting on a different server or location (file system directory, web subdirectory, domain or sub-domain) than the one you backed up from it MAY be impossible to access the restoration script (visit the installation directory from the web).

Kickstart CLI merely extracts the backup archive, it does NOT restore the site. This isn't different from Kickstart's web interface (the site restoration is done by the restoration script which is included in the backup archive, not Kickstart) but we feel we have to stress it out. After extraction you still need to access the installation directory to complete the site restoration. Alternatively, if you are a subscriber to any subscription which includes Akeeba Backup or Akeeba Solo, you may use Akeeba UNiTE to automatically extract and restore backup archives.

Kickstart CLI does not support writing to files over FTP or the Hybrid file write mode. This is deliberate and won't change. Both FTP and Hybrid file write modes were created as an attempt to overcome limitations in the way web servers handle PHP scripts. Kickstart CLI running from the command line it has the same privileges as the user you are logged in with, therefore doesn't need to go through the inefficient FTP upload workaround.

Kickstart CLI does not support the Stealth Mode. That requires replacing the extracted .htaccess file and switch it back after the site's restoration. While that makes sense in a web interface, it doesn't make sense in a CLI environment. You can always create your own stealth .htaccess file after extracting the backup archive.

Kickstart CLI does not support the additional Kickstart features like importing from a URL, importing from S3 or downloading Joomla! or WordPress for you. These are all features which only make sense in the web. In a command line environment you can always use wget or curl to import files from a URL (including downloading the latest CMS versions!) and s3cmd to download from Amazon S3. Therefore Kickstart CLI won't try to reinvent the wheel by reproducing partial functionality of well-tested solutions.

All in all, Kickstart CLI is meant to be a part of your command line toolchain which will help you manage your site backups most efficiently.

5. Securing the Professional version

Akeeba Kickstart is, by necessity, a script that can overwrite your site with the contents of an arbitrary compressed archive. This is not a bug, it's the very definition of what a backup archive extraction tool is meant to do.

On top of that, Kickstart has to receive commands through the web interface without having to authenticate the user, i.e. it has to do whatever you tell it to do without asking for a username or password. This is a feature by necessity: it's mass distributed software which is meant to be used by users with little to no experience in managing sites. If we were to ask users to edit the file and enter a username / password of their choice we know for a fact that they wouldn't, using the default username and password shipped with the software. Therefore, to save mutual frustration, we decided not to implement authentication for the Kickstart user interface.

Things get a bit hairy when you throw in features like Import from URL and Import from S3 into the mix. Anyone who knows the URL to Kickstart can tell it to download an arbitrary ZIP, JPA or JPS archive from a location under their control, save it to your site and extract it. An enterprising hacker could abuse that to install a hacking script, backdoor or other malware on your site. However, as we said, doing that requires knowing the URL to Kickstart.

Kickstart is a widely used script and has a known name: kickstart.php. Also, because of what it's typically used for (restore a full-site backup) it tends to be on the site's root. So if your site's URL is http://www.example.com you can reasonably expect Kickstart to be placed in http://www.example.com/kickstart.php. Hackers are aware of this, as well as the fact that many people forget to delete Kickstart after they're done restoring their backup (they never click on Clean Up), thus leaving behind a backdoor to their site.

Your security is our top priority, therefore we have decided to address this potentially dangerous situation. For starters, we are offering two separate editions of Kickstart: Core and Professional. The Core version only allows you to extract the backup archives which are already present on your server. This means that an attacker could not abuse it to import an arbitrary archive into your site.

The Professional edition does have the features which can import an archive from an arbitrary location but it will not run unless you rename its file from kickstart.php to something which does not contain the word "kickstart" in it. We recommend using a name that's a random collection of letters and numbers, e.g. afdJuoH7lo2.php. Then just access this file through your browser, e.g. http://www.example.com/afdJuoH7lo2.php to run Kickstart Professional. This makes it unlikely that a hacker would correctly guess the name you used, therefore mitigating the issue.

A few words of warning are still in order, though.

Remember to always delete Kickstart Professional's PHP file when you're done. Leaving it behind increases your risk without a good reason.

Remember that most servers will gladly provide a directory listing to anyone asking unless there is an index.html file. This means that the server will "leak" the random name you chose, putting your site at risk. Always upload a blank index.html file BEFORE uploading the (renamed) kickstart.php file to your site to prevent that issue.

Don't use the Kickstart Professional edition unless you absolutely have to. In other words, if your backup archive is already on the server just use the Kickstart Core edition. It's safer and less complicated.

Do NOT use plain HTTP with Kickstart Professional (or with anything else, really). Requests sent with plain HTTP are as secure as text written on the back of a postcard: everyone who can get it on their hands can read it. If you are using a public network infrastructure (co-working space, coffee shop, library, airport or even your company's network) there's a very good chance that someone can intercept the request and find out not only that you're using Kickstart Professional but also how you've named the file. Always use HTTPS. Since 2015 using HTTPS is incredibly easy and cheap thanks to the free SSL certificate authority Let's Encrypt and the automated tools surrounding it which have been integrated with all major hosting companies and operating systems. Coupled with SNI, the technology which allows shared hosts to have a different SSL certificate for each site they serve, there's absolutely no excuse whatsoever to use plain old HTTP. Upgrade to HTTPS today and mitigate half of the most common security pitfalls!

Chapter 5. Troubleshooting

Please refer to this chapter if you have trouble using Akeeba Kickstart. If you are requesting support please indicate whether you have read and followed these instructions.

1. Akeeba Kickstart won't run at all or throws a Parse Error

First make sure that your hosting environment complies with the minimum requirements for Kickstart. If your host is using an older version of PHP as the default (which might be different than the one reported in your hosting control panel) you need to contact your host to find out how to upgrade PHP on your server.

If the extraction process does not start, i.e. you click on the button and nothing happens, please go through the client-side troubleshooting steps before doing anything else. Most likely it's an issue with your PC configuration or ISP. We won't be able to help you if you don't go through these steps.

If nothing of the above works, you may want to try downloading the latest version of Kickstart, extract the ZIP file locally and re-upload kickstart.php to your site.

2. I get PHP Warning, Norice or Deprecated errors when trying to run Akeeba Kickstart

If you get any other kind of Notice, Warning, Strict Standards, or Deprecated message please be advised that it is not a grave error and the extraction should be able to continue normally. If it doesn't, first ask your host how you can disable PHP error output to the browser or how you can set PHP's error reporting level to E_ERROR. We can't help you with that, as the process may be completely different on each host.

3. Akeeba Kickstart starts but it does not list my archive files

This usually means that the permissions of your site's root do not allow file listings. Please change the permissions of your site's root to 0755 or higher. If unsure how to do that, please ask your host; we don't know how each and every host works. You may also ask your host to give read and file listing permissions to your web root. They will either do that for you or tell you exactly how to do that.

On some hosts, we saw that it was necessary (on top of the above) to give 0755 permissions to the backup archive and all of its parts if any exist, e.g. file.jpa, file.j01, file.j02 etc. I know, this doesn't make any sense (0644 permissions on the file should work!) but it looks as if some hosts are grossly misconfigured. So, try setting your site's root directory permissions to 0755 and the permissions of your backup archive to 0755 as well. Kickstart should be left with 0644 permissions or you risk getting a 500 Internal Server Error.

4. Akeeba Kickstart starts, but can't extract the archive, throws an AJAX Error, Invalid Archive Header or other error

Server protection

If you get a 502 Bad Gateway error or the extraction halts mysteriously after a very short while (about 10 seconds or less) you may be hitting a server limitation. Hosts using the Apache web server usually have installed and configured mod_evasive, a tool which blocks similar requests coming too fast from the same remote client. While this is a good protection against Denial of Service attacks it can get in the way of extracting a backup archive: Kickstart is hitting a similar URL for each of its extractions steps. Moreover, some hosts may go a step further and apply CPU usage limits. If a script, like Kickstart, uses too much CPU they will block your requests and / or your IP address for a while. Again that's very good for preventing Denial of Service attacks but not very good for extracting backup archives, something which is by its nature a CPU-intensive process.

There is a workaround for that but the exact values depend on your server. On Kickstart's main page, under advanced settings, set the minimum execution time to 7 seconds and the maximum to 10. If that still fails, try setting the minimum time to 7 seconds and the maximum to 3 (yes, the maximum is less than the minimum, that's on purpose). These settings modify the amount of time Kickstart will be spending on each request and its duty cycle (how much work it will do and how much time it will sit around doing nothing). These tricks work around the protections of your server. If all else fails you can always extract the backup archive manually on your computer, using either Kickstart or Akeeba eXtract Wizard, and upload everything to your server. This is much slower but it always works.

Free space

The most common issue of all is, surprisingly, not having enough disk space. In order to restore a backup archive you need to have at least as much space as kickstart.php, your backup archive and all of the extracted files occupy. As a rule of thumb, you need about 2.5 times as much disk space as your backup archive. In other words, if you have a 100Mb archive file, make sure your site has at least 250Mb of free space before uploading Kickstart and the backup archive to it.

Important

Some hosts claim "unlimited" disk space. Sadly, this is never the case. Most hosts have "hidden" limits, such as the amount of files you can host under one account. If you go over that limit, you'll get extraction errors. Another thing is that you "unlimited" host is physically bound to the size of their hard drives. If their hard drive was close to completely filling up, trying to extract your site will also lead to a restoration failure. Moreover, we have seen hosts with "unlimited" space which actually give you a finite and small amount of space (e.g. 1GB) and you have to explain why you need more to get another chunk of free space (if you successfully convince them). If nothing else helps with this kind of errors, do contact your host and ask them if you are hitting a file count limitation or their hard drive is full.

Moreover, some hosts have a limitation on the maximum file size PHP can create. For example, Strato allows PHP to create files of only up to 10MB. Trying to extract bigger files from the archive will lead to such an error. Do note that you might be able to upload large files, such as your site's backup archive, through FTP. However, if you try to extract a large file from the archive (e.g. a large non-split database dump, a large video or music file, etc) it will fail. Your ONLY way to perform the restoration is to extract the archive on your local computer and upload all the extracted files by SFTP / FTP. All you'll have to do next is visiting the restoration URL which is in the form of http://www.example.com/installation/index.php. Please refer to Akeeba Backup's documentation (the chapter on restoring your site) for more information.

Missing or corrupt backup archive parts

If you have a multi-part archive (files named .jpa, .j01, .j02, etc or .zip, .z01, .z02 etc) remember to upload all of the archive parts, otherwise the extraction will, of course, fail. More specifically, the extraction might continue up to the point where Kickstart determines that a part file is missing. Then, it will tell you that the archive is invalid, corrupt or archive parts are missing (older versions will just show INVALID_HEADER without further information). Moreover, make sure that all backup archives have been downloaded from a live server and/or uploaded to a live server using FTP in Binary transfer mode. Any other way to transfer them will most likely corrupt them, making restoration impossible. We suggest using FileZilla to do that. As soon as you connect to your site and right before downloading/uploading any files click on the Transfer, Transfer Type, Binary menu item.

Mixed ownership

You may end up with wrong or mixed file and directory permissions (this situation is also known as "mixed onwership" or "permissions hell"). This is very easy to happen if you are restoring to a host with an existing installation of Joomla! which doesn't use per-account web server process ownership through FastCGI or suPHP, i.e. the majority of cheap shared hosting. You might want to try using the FTP or Hybrid file writing mode.

If this still doesn't work for you, try removing all existing files and directories from your server before restoring the backup archive. It's very easy to mix up ownerships and permissions on a shared host, effectively entering into a mixed ownership situation which is virtually impossible to work around unless you have root privileges on an SSH console or, more easily, removing all files from the account. Do note that removing files might require using both an FTP program and your host's control panel, or raising a ticket with your host.

File and folder permissions

If you are restoring on a Windows server or local WAMP/XAMPP/other local server solution and you receive an error message like "Could not create test/info/N:/ folder", take a good look at the error message. If the file name contains a colon (:), slash (/), question mark (?), asterisk (*), vertical bar (|), quotation mark ("), less than (<) or greater than (>) then you can not use Kickstart to extract the archive. The reason is that these characters are valid for files stored on a Linux, Mac OS X, *BSD, Solaris or other UNIX-based operating system, but not on Windows. The only workaround is to use our free Akeeba eXtract Wizard desktop application to extract the archive, as it knows about this problem and will skip extracting those files. Then, move your file's to the new site's root and access the restoration script as, say, http://localhost/mysite/installation/index.php in order to continue the restoration.

If that doesn't work, please indicate the type of server you are restoring to

A local server, for example XAMPP, MAMP, WAMPServer, Zend Server CE, Uniform Server, etc.

A live server, e.g. a shared host, dedicated box, cloud host, VPS or any other server directly accessible from the Internet

4.1. Troubleshooting on a local server

If you are on a local host, be advised that permissions or Windows ACL may be interfering with Kickstart's operation.

If you are on a Linux machine, change the permissions of the root of your to-be-restored website to 0777. For example, if you're trying to restore to /var/www/mysite you have to issue a command like chmod -Rf 0777 /var/www/mysite after you have put Kickstart and the archive in there, but before launching Kickstart

If you are on a Mac OS X machine, use the Finder to find your site's root. Right-click or Control-click on it and select Get Info. Scroll down to the Sharing & Permissions slider and expand it if it's not already expanded. Find the row where the Name column reads everyone and set the Privilege to Read & Write.

If you are on a Windows XP Home machine, use Windows explorer to find your site's root. Right click on it, select Properties and clear (unselect - it must be blank, not gray!) the Read Only checkbox. Click OK and, if prompted, tell Windows to apply this to all files and subdirectories.

If you are on a Windows XP Professional, Vista (all versions) or 7 (all versions) machine, use Windows explorer to find your site's root. Right click on it, select Properties and click on the Security tab. Click on the Edit... button. If you can't see a user named Everyone, you will have to click on the Add... button, type Everyone in the big text box and click OK. Now click on the Everyone user and then take a look at the list of checkboxes below. Click the Accept checkbox on the Full Control row (the topmost one). Click on OK, then again on OK.

Important

If you are restoring a backup taken on Linux / Mac OS X on a Windows machnie there is another possibility. You may have a filename which is valid under Linux / Mac OS X but not on Windows such as "index.php?something". In this example the question mark is an allowed filename character on Linux but not on Windows. In such cases you can extract the backup archive using Akeeba eXtract Wizard or Akeeba Kickstart as long as you check the Ignore most errors checkbox. This will tell eXtract or Kickstart to ignore files which cannot be opened for writing. But beware! This will also skip files with legitimate filenames which are attempted to be extracted on unwritable directories. So, our suggestion is to first try adjusting the Security privileges and only if all else fails should you resort to using the Ignore most errors checkbox.

4.2. Troubleshooting on a live server

If you are on a live server which doesn't use suPHP (most hosts; if in doubt, your host is most likely one of them) you will have to use Kickstart's FTP mode.

Important

DO NOT SET YOUR SITE ROOT'S PERMISSIONS TO 0777. This will most likely work, but it is a terribly unsafe setting. Use Kickstart's FTP mode as outlined below instead.

First, upload kickstart.php and the archive file(s) to your server. Before starting Kickstart, you will have to do some preparatory work. Using your FTP client application, create a directory named kicktemp inside the same directory kickstart.php is in. For example, if kickstart.php is in public_html directory you have to create the kicktemp directory inside the public_html directory. Using your FTP client application give that directory 0777 permissions (read, write and browse/execute to owner, group and others). Don't worry, we will get rid of that directory later.

When Kickstart starts, set the Write to files option to Use FTP. In the fields which appear below you have to supply your FTP host name (usually it's localhost, 127.0.0.1 or the FTP hostname provided to you by your host), the FTP username and password provided by your host and the FTP directory.

In order to determine the proper FTP directory, do this. Connect to your site using FileZilla. Navigate inside the folder Joomla! is installed in. Usually it's a directory named public_html, htdocs, www or something similar. If unsure don't ask us, ask your host. Now, on the right-hand pane you will find the FTP path. Most likely it will look something like /public_html. Copy this and paste it into the FTP Directory text box in Kickstart.

In the Temporary Directory box you see that there is already something written in it. Append (do not replace!) /kicktemp to it. For example, if it was reading /home/users/myuser/public_html it should now read /home/users/myuser/public_html/kicktemp. Click on the Check button next to it. It should tell you that the directory is readable. If not, retry the above procedure and don't skip any steps. Then click on the Test FTP Connection button. It should tell you that the FTP connection was established. If not, ask your host if they do support sites writing to themselves using FTP. If they don't you'll have to manually extract the archive locally (e.g. using Akeeba eXtract Wizard) and upload the files manually. In this case, please consult the Quick Start Guide for further instructions.

Warning

Some hosts do not allow you to upload files named .htaccess or php.ini. This can cause an extraction issue despite following the advice above. To test that, try uploading a file named .htaccess from your PC to your server. Alternatively, upload a plain text file (create one in Notepad, gEdit, TextEdit, etc) and try renaming it to .htaccess through your favourite FTP program. Try the same thing with a file named php.ini for good measure. If that fails, you can't use Kickstart on that server. Moreover, restoring a site on that server would be insecure. In this case, we strongly advise you to switch to a decent host. We regret to inform you that we can not provide support on this kind of broken, restrictive hosts.

5. I am getting AJAX errors with some weird 403, 500, 502 or 503 code

This is actually a server issue. Kickstart works by having your browser visit the same URL repeatedly through AJAX to perform each extraction step. This is necessary since the extraction would otherwise take too long to complete which would cause your server to abort it, or simply run out of memory, reporting an error. By separating the work in smaller chunks we can perform the time, disk and memory intensive process of extracting a backup archive over a web interface. However, this may cause different issues on some servers.

First of all, some servers impose limits on the amount of resources (CPU, disk, memory) your hosting account can use in a specific period of time. These limits are there to protect the server against abuse by malicious tenants or scripts with coding mistakes which result in very high resource usage. By its very nature, Kickstart needs to do “heavy work”. It has to read a rather big backup archive, decompress the data in memory and write it into the thousands of files which make up your site. This requires a lot of disk and CPU activity to take place and do take up a substantial amount of memory. This may indeed trip the server protection. Tech talk (for IT pros): this is usually implemented either with Linux ulimit settings or through configuration of the virtualization environment (e.g. CloudLinux) under which your hosting account runs.

Second, some servers may have a built in Denial of Service protection. They keep track of which IP address is visiting which URL. If the same IP address tries to repeatedly access the same URL they treat is as a potential Denial of Service and may either simply reject the request or ban the IP address for a while. If this happens you will probably be unable to connect to your site for anywhere between a few seconds to a few hours. Unfortunately there is no way to know that in advance because, for security reasons, do not publicize this information. Tech talk (for IT pros): this is usually implemented on Apache using mod_evasive.

Finally, some servers may be filtering requests based on what kind of information is being sent. If they think that the data being sent to the server looks dissimilar to typical web traffic they might either just reject the request or ban the IP address for a while. PHP, the language Kickstart and your site's software is written in, is stateless. This means that it doesn't remember what happened between two successive requests. Extracting a backup archive requires a way to remember state, for example to track of how much of the archive we have already extracted, where to extract it and other options you made in Kickstart. To this end, Kickstart sends its state in an encoded form to your browser after an extraction step is complete. Your browser will then send it back to Kickstart when it asks it to run the next extraction step. The state is a rather long bit of encoded data which does indeed look dissimilar to regular web traffic. This may trip up the server protection discussed above. Tech talk (for IT pros): this is usually implemented on Apache using mod_security2.

The first two issues can be worked around using the first two options (time settings) in the Fine Tuning section of Kickstart's interface. You can set the minimum execution time to 5 and the maximum to 1. This is not a typo! It creates a 20% duty cycle: Kickstart extracts files for 1 second and then waits, doing nothing, for another 4 seconds so that the time between requests is the configured maximum, 5 seconds. Some servers might not like the predictability of the requests' timing. If this is the case try setting a minimum of 5 and a maximum of 10. This means that Kickstart will work for 5 to 10 seconds before telling your browser to run the next extraction step. This uses more resources, makes the extraction faster and introduces some variance in the time it takes each extraction step to run. If none of these settings work for you the server may be configured with very tight settings. In this case you can extract the backup archive on your computer, using Akeeba Kickstart, and upload all extracted files to your site. Then you can complete the restoration by visiting the /installation/index.php on your site.

The last issue cannot be worked around by you. You can try asking your host for a temporary way to disable that server protection. It's possible that your host may be unable to help you if you are not on a VPS or dedicated server. In this case you can extract the backup archive on your computer, exactly as described in the previous paragraph.

6. Extraction stuck on Windows

If you are using XAMPP or WAMPserver on Windows you might find that your archive extraction suddenly stops. Unfortunately, this is a bug in how XAMPP and WAMPserver are set up. Their developers are using the non-thread-safe version of PHP as an Apache module. Unfortunately, Apache requires thread safe (ZTS) builds of PHP or it will corrupt its memory, killing the PHP process. This happens when there are numerous requests in quick succession such as when building a complex site, taking a backup or restoring a backup archive. The same thing happens when you try to restore a large database (SQL) file with phpMyAdmin using the automatic continue method.

Please note that we DO NOT have any control over this. If anything, these people should know better than to ship XAMPP and WAMPserver broken like that on account of this information being printed on the PHP download page for Windows on the official PHP site.

There are two things you can possibly do.

The best solution is to use a different local server. You can use MAMP Pro or build your own server using Windows 10's IIS, MySQL and PHP. Understandably this is not the easiest solution.

As a compromise, you can try to change the time settings of Akeeba Kickstart at the bottom of its first page and before clicking on the Start button. Recommended values are a Maximum execution time of 10 seconds and a Minimum Execution Time of 20 seconds. Yes, the minimum is higher than the maximum to allow for a "dead time" which allows Apache to spin down previous PHP processes, avoiding the pitfalls of using the non-threaded version of PHP as a module.

Again, this situation is beyond our control and there's not much else we can do about it. Please ask the developers of XAMPP and WAMPserver to fix their software.

Appendix A. GNU Free Documentation License

Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 51 Franklin St , Fifth Floor, Boston, MA 02110-1301 USA . Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

0. PREAMBLE

The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.

This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.

We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

1. APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.

A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.

A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.

The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.

The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.

A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque".

Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.

The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.

A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition.

The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

2. VERBATIM COPYING

You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.

You may also lend copies, under the same conditions stated above, and you may publicly display copies.

3. COPYING IN QUANTITY

If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

4. MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.

List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.

State on the Title page the name of the publisher of the Modified Version, as the publisher.

Preserve all the copyright notices of the Document.

Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.

Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.

Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.

Include an unaltered copy of this License.

Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.

Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.

For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.

Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.

Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version.

Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section.

Preserve any Warranty Disclaimers.

If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.

You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

5. COMBINING DOCUMENTS

You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.

The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.

In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements".

6. COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.

You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

7. AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.

If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

8. TRANSLATION

Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.

If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.

9. TERMINATION

You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

10. FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/ .

Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.

ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

Copyright (C) YEAR YOUR NAME.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this:

with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.

If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.