Kickstart 9 and later versions is a PHAR archive. PHAR (short for PHP Archive) is a file format natively supported by PHP which allows packaging an entire PHP application in a single file. If you have ever used WordPress' WP-CLI, Drupal's Drush, or Composer then you have already used a PHAR archive. PHAR archives have been around for decades. PHAR format support was introduced as an official PHP extension in PHP version 5.3.0 released back in June 2009. That is to say, using a PHAR archive to deliver a single-file PHP application is not new; it's almost as old as Kickstart itself – Kickstart was first released a few months before the PHAR format was adopted by PHP.
The PHAR archive we ship consist of a small amount of PHP code at the start of the file (called a "stub"), followed by binary data. The binary data contains compressed versions of Kickstart's PHP, CSS, Javascript, and media files. It's an archive file very much like a backup archive file, or a ZIP archive file. The "stub" is there to tell PHP to either use the PHP PHAR extension to directly run the file, or try to extract the files and then run Kickstart as a regular PHP application.
We use a custom stub which takes care of the following use cases that PHP's default stub does not:
It checks if you are using a supported PHP version. If not, it will stop with an error, reminding you to update your PHP version. Please do note that as per our standard policy we do support PHP versions which have become End-of-Life years ago to allow you to restore older backups on fairly old servers.
On servers which have the PHP Phar extension installed and enabled it uses a mini-router to allow direct access to the Kickstart application's front controller without a redirection to a gnarly URL similar to kickstart.php/src/kickstart_web.php. This allows Kickstart to run even when your site uses Admin Tools' Frontend Protection feature which blocks this kind of URL. The same applies if you are using an OWASP Core Rules based protection on your server (e.g. mod_security2 on your web server, CloudFlare's WAF, …).
On servers which do not have the PHP Phar extension installed or enabled it extracts the Kickstart web application in a temporary folder and allows it to run just fine.
That said, you should be aware of a few problems you may have in substandard hosting environments after we moved to the PHAR format in Kickstart 9.0 released in November 2025.
Some servers may have a misbehaving file scanner which erroneously detects PHP files with binary data as "malicious". This is a false positive, i.e. the file scanner made a mistake. There is nothing malicious in Kickstart. You can extract the PHAR archive yourself using PHP's official Phar extension and inspect the files to understand what exactly they are doing. The actual problem is that most naive file scanners do not understand the concept of PHAR files, or have a hardcoded erroneous assumption that all PHP files with binary data appended to them are malicious. If you cannot get Kickstart to work on your host you can try one of the following:
Use an older version of Kickstart, assuming that the PHP version you are using is compatible with it. Kickstart is just an archive restoration script. It does NOT restore your site; the restoration script is included inside the backup archive itself. This is what allows Kickstart to extract backup archive files which were created with Akeeba Backup and Akeeba Solo versions which were released before or after Kickstart's release date.
Use Kickstart to extract the backup archive locally. Upload the extracted files. Visit the /installation URL on your site. As we said, the restoration script is included in the backup archive. It gets extracted into the /installation directory. You don't need Kickstart to restore your site. Kickstart is just a convenience tool.
When you access Kickstart through the web server or CLI, the following takes place.
If your server has the PHP PHAR extension installed and enabled (default on most servers) Kickstart's stub file will use it to efficiently run without having to extract the contents of the file first. This is the recommended configuration. If your server has the PHP PHAR extension enabled, you can stop reading here.
If your server does not have the PHP PHAR extension installed or enabled, or if it has explicitly disabled the Phar class provided by this extension, the stub file will extract Kickstart's files into a temporary directory before executing Kickstart. This is slower, and comes with a few caveats.
If there is a directory named kicktemp next to Kickstart's PHP file, Kickstart will use it for extracting its files. This directory must be created before running Kickstart, and must be writeable by Kickstart. Note that this is the same directory you need to create if you are using Kickstart's FTP, SFTP, or Hybrid file extraction mode. If you have trouble running Kickstart, you should try creating this directory and give it 0777 permissions before doing anything other kind of troubleshooting.
If the kicktemp directory does not exist, Kickstart will try to extract itself in your the temporary directory provided by your Operating System. If it runs out of space, or if its files get removed before Kickstart gets the chance to execute, you will get strange errors which make no sense. If the directory is not writeable, Kickstart will fail with an error. If any of these issues occurs please create the kicktemp directory as noted above.