Creating a Joomla! test site on XAMPP
Introduction
XAMPP running on a Windows 10 PC provides an excellent and safe development environment. There are several stages involved. During the process it is obviously necessary to download the appropriate version of XAMPP and the latest version of Joomla!
Often one wishes to test an existing site, perhaps to test an upgrade before committing on the 'live' web site. So in Appendix 3 there are notes on using an Akeeba backup This assumes you have set up and configured XAMPP as noted in the main part of this article.
As at November 2023 the recommend version of PHP is PHP 8.2 or higher for both Joomla! 4.4 and Joomla! 5. For Joomla 4.4 the minimum is PHP 7.2.5. Note for Joomla 3.10 it is PHP 5.3.10.
For the database Joomla recomends:MySQL and Progress. Note however that many come with MariaDB which is a fork of MySQL by the original 'open source' developers.
Often one wishes to test an existing site, perhaps to test an upgrade before committing on the 'live' web site. So in Appendix 3 there are notes on using an Akeeba backup This assumes you have set up and configured XAMPP as noted in the main part of this article.
As at November 2023 the recommend version of PHP is PHP 8.2 or higher for both Joomla! 4.4 and Joomla! 5. For Joomla 4.4 the minimum is PHP 7.2.5. Note for Joomla 3.10 it is PHP 5.3.10.
For the database Joomla recomends:MySQL and Progress. Note however that many come with MariaDB which is a fork of MySQL by the original 'open source' developers.
- MySQL 5.5.3+(J3) and 5.6+ (J4) [or MariaDB-10.2]
- PostgreSQL (J3 9.1+) (J4 11.0+)
For the Web Server the recommended levels are:
- Apache 2.4.56+ (J4 and J5)
- Nginx 1.18+(J3) 1.8(J4)
- Microsoft IIS 7 (J3 and J4))
Always check the Joomla! minimum requirements (opens in a new window/tab) particularly for Joomla! 4 and 5 compatibility.
In my experience it is also necessary to download and use the free Notepad++ text editor rather than attempt to struggle with the default Win10 Notepad which is, in a practical sense, useless for editing php and similar files. You can get Notepad++ from https://notepad-plus-plus.org/ (opens in a new window/tab)
It would probably repay the effort if you practice a little to become familiar with Notepad++
Another useful free utility program is 7zip to unpack zip files, not essential but I would highly recommend it. This is available at https://www.7-zip.org/ (opens in a new window/tab)
Also with XAMPP on a local PC then the Joomla! features 'Install from the Web' and 'Auto updating of Joomula!' work OK but personally I tend to download the actual 'update', probably because I have several sites to update!!
In this article XAMPP is installed on drive C. If you have another disk drive, say D, then it may be set up on that drive instead.
Most of the effort is in configuring of XAMPP for Joomla!. Once that is setup it is then simple to create multiple test sites.
In my experience it is also necessary to download and use the free Notepad++ text editor rather than attempt to struggle with the default Win10 Notepad which is, in a practical sense, useless for editing php and similar files. You can get Notepad++ from https://notepad-plus-plus.org/ (opens in a new window/tab)
It would probably repay the effort if you practice a little to become familiar with Notepad++
Another useful free utility program is 7zip to unpack zip files, not essential but I would highly recommend it. This is available at https://www.7-zip.org/ (opens in a new window/tab)
Also with XAMPP on a local PC then the Joomla! features 'Install from the Web' and 'Auto updating of Joomula!' work OK but personally I tend to download the actual 'update', probably because I have several sites to update!!
In this article XAMPP is installed on drive C. If you have another disk drive, say D, then it may be set up on that drive instead.
Most of the effort is in configuring of XAMPP for Joomla!. Once that is setup it is then simple to create multiple test sites.
Install XAMPP for Windows
XAMPP is available at https://www.apachefriends.org/download.html (opens in a new window/tab). There are various versions available. As at April 2023 the versions for Windows 10 (64-bit) are 8.0.28, 8.1.17 and 8.2.4. Each comes with the same PHP as the Xampp version. For example XAMPP 8.0.28 has PHP 8.0.28. For Joomla 4.4 and 5 use version 8.2.4.
Usually one would select the latest version but before doing check with the Joomla requirements for the version of PHP that is supported. For example Joomla 3 does not support PHP 8.
So download your chosen XAMMP to a suitable location, typically your regular Download location, and open the file.
Then go to that location and right click on the downloaded file. You may be asked if you want to run this file and then be asked if you wish to allow changes to be made.
Select Yes in both cases.
XAMPP will let you know when it is ready to install, so click on Next as indicated.
A view of the instalatlion progress is usually shown.
A view of the instalatlion progress is usually shown.
A warning might come up about having Anti-Virus software running.
If you do decide to turn off your anti virus it might also be useful to temporarily disconnect from the web. Actually I always leave the anti virus running and have not had a problem.
Yet another warning that may occur is about User Account Control. As we are not installing in C:\Program Files (x86) but in directory C:\xampp there is no conflict.
The actual install now begins!
So click on the Next > button.
The first stage is the overall configuration of XAMPP.
It is advisable to select all of the options, which is the default, as they may be required at a later stage.
So again click on the Next button
Agree to the selected folder as shown, namely
C:\xampp
and click on Next .
Note if installing on a different drive then use the relevant drive letter.
Select the Language and again click on Next
C:\xampp
and click on Next .
Note if installing on a different drive then use the relevant drive letter.
Select the Language and again click on Next
An ‘advert’ for Bitnami will appear. This is sometimes useful to aid with the Joomla! Installation. Personally I prefer to do the installation directly.
So I would untick the ‘Learn more about ...’ and click Next >
If you do leave it ticked it takes you to your browser but does not interfere with the installation.
So I would untick the ‘Learn more about ...’ and click Next >
If you do leave it ticked it takes you to your browser but does not interfere with the installation.
The next page is basically just the progress window whilst XAMPP in being installed.
As this takes a few minutes it might be a good idea to take some refreshment!
Finally we get to completion.
Leave the "Do you want to start the Control Panel now?" ticked so that it will start the Control Panel initially.
Because it is a new installation you will be asked about a language choice.
As indicated it is neccessary to click on the Apache and the Mysql Start buttons so that they both have a green background indicating they are active as shown in the second image opposite.
Access XAMPP Control Panel
Whilst the Control Panel is active then the XAMMP icon, , will appear in your task bar. It is convenient at this point to Right Click on it and select Pin to Task Bar.
Actually at this stage I close the XAMPP Control Panel and go to the Windows ‘panel’ which lists all the Apps and scroll down to the XAMMP entry. Click on XAMMP to show the sub menu.
Then Right Click on 'XAMMP Control Panel' which then shows another menu as illustrated on the far right. This will add a regular Win10 sub pane so you can get to the XAMPP control panel easily on future occasions. It will also allow you to run the control panel as an Administrator which more recent versions of XAMPP indicate as being beneficial.
Then Right Click on 'XAMMP Control Panel' which then shows another menu as illustrated on the far right. This will add a regular Win10 sub pane so you can get to the XAMPP control panel easily on future occasions. It will also allow you to run the control panel as an Administrator which more recent versions of XAMPP indicate as being beneficial.
See also the section later about creating a short cut on your desktop.
Configure for Joomla!
After Clicking on the Config button at top right, , it is suggested that you select Autostart of the Apache and and MySql modules.
Experience shows that you will need a better editor than the default Microsoft Notepad text editor. A suitable editor is Notepad++ available from Download Notepad++ (opens in a new window/tab).
Details on installing Notepad++ are given in an Appendix.
Finally click on the button.
Experience shows that you will need a better editor than the default Microsoft Notepad text editor. A suitable editor is Notepad++ available from Download Notepad++ (opens in a new window/tab).
Details on installing Notepad++ are given in an Appendix.
Finally click on the button.
At this point you may get an error message saying 'Access Denied'. If that happens see the next section below.
Access Denied
If an Access Denied message, such as shown opposite, then there is a Windows Security issue which is readily resolved.
With File Explorer search directory C/xampp for xampp-control.ini. Then Right Click and select Properties.
When the Properties appear select the Security tab.
In this example 'Everyone' is selected but it could be restricted to Admin users.
The Permissions show that at present the file only has Read access. So click on the Button.
Next Click on Full Control, which will set all the permissions as shown.
Finally click OK.
In this example 'Everyone' is selected but it could be restricted to Admin users.
The Permissions show that at present the file only has Read access. So click on the Button.
Next Click on Full Control, which will set all the permissions as shown.
Finally click OK.
For more information on Windows security there are many articles on the web such as
Acces is Denied in Win10 (opens in a new window/tab)
Acces is Denied in Win10 (opens in a new window/tab)
Create Shortcut
It simplifies future use if you create a desktop icon to get to the XAMPP Control Panel.
Use file Explorer to navigate to C:/Windows/xampp and find program xampp-control.exe. Right click on the name and select 'Send To', then choose 'Desktop (create shortcut)' as illustrated opposite.
This creates a button like that shown opposite which we can use to start XAMPP and the relevant applications.
It is also useful to right click on the desktop icon and use the 'Pin to Taskbar' facility.
When you click on the icon then the XAMPP Control Panel will appear.
The two essential applications are Apache and MySQL.
Notice that under the Actions column the words Start or Stop appear in the buttons.
If it shows Stop then that application is running, if it shows Start it is stopped. To activate the relevant applications then click on the appropriate Start button. After a short delay the Button text will change to Stop and a green background will appear in the Module column showing that the module is running as in the second picture opposite picture.
Setting php.ini
Main Settings
Often the existing php.ini file defaults need changing to suit Joomla! and to allow for say larger file size uploads. To do this is quite simple as we just edit the php.ini configuration file which is usually at C:\xampp\php\php.ini.
To edit open php.ini in Notepad++. With a fresh XAMPP install the settings output_buffering and display_errors need changing to meet Joomla! Recommendations. As you are running on your own PC then there are other settings that are useful to change, specifically max_execution_time and max_input_time. For jDownloads then I would recommend changing both post_max_size and upload_max_filesize to allow for larger file uploads.
To edit open php.ini in Notepad++. With a fresh XAMPP install the settings output_buffering and display_errors need changing to meet Joomla! Recommendations. As you are running on your own PC then there are other settings that are useful to change, specifically max_execution_time and max_input_time. For jDownloads then I would recommend changing both post_max_size and upload_max_filesize to allow for larger file uploads.
The php.ini file is quite large with lots of comments so use the Search facility in Notepad++ to find them one at a time. You need the line that is not a comment as illustrated opposite for output_buffering.
The suggested values are:
1. post_max_size = 120M
2. upload_max_filesize =100M
3. max_execution_time=200 (this parameter is not usually available to users on regular web servers)
4. max_input_time=200 (this parameter is not usually available to users on regular web servers)
5. output_buffering=Off (xammp default is usually output_buffering=4096)
6. display_errors=Off (xammp default is usually On)
The suggested values are:
1. post_max_size = 120M
2. upload_max_filesize =100M
3. max_execution_time=200 (this parameter is not usually available to users on regular web servers)
4. max_input_time=200 (this parameter is not usually available to users on regular web servers)
5. output_buffering=Off (xammp default is usually output_buffering=4096)
6. display_errors=Off (xammp default is usually On)
Note The upload_max_size is the maximum size for uploading a single file whilst post_max_size is maximum of a set of files uploaded together.
GD Library
GD is an open source code library for the dynamic creation of PNG, JPEG and GIF images for thumbnils and similar. It is included in XAMPP but need to ensure it is activated.
The actual GD library is normally located in C:/xamp/php/ext
For PHP8 the file is called php_gd.dll but for PHP7 and earlier it is php_gd2.dll.To activate the library find in C:/xampp/php.ini the so called 'extensions section'. This section contain lines such as extension=bz2 extension=mbstring and so on.
Again using Notepad++ or similar edit php.ini
For PHP8 add the line extension=gd
For PHP 7 and earlier add the line extension=gd2
Save php.ini
The actual GD library is normally located in C:/xamp/php/ext
For PHP8 the file is called php_gd.dll but for PHP7 and earlier it is php_gd2.dll.To activate the library find in C:/xampp/php.ini the so called 'extensions section'. This section contain lines such as extension=bz2 extension=mbstring and so on.
Again using Notepad++ or similar edit php.ini
For PHP8 add the line extension=gd
For PHP 7 and earlier add the line extension=gd2
Save php.ini
Joomla! 4 & 5
Joomla! 4 and 5 also require that the extensions 'intl' and native 'zip' are available.
So in C:/xampp/php/php.ini search for extension=intl and remove the semi-colon ; at the start of the line (NB it may already been uncommented).
Repeat for extension=zip and similarly remove the the semi-colon if it is there.
Also check that extension php_intl.dll is located in directory xampp/php/ext as this is the location from which the dll is loaded.
Simarly check that php_zip.dll is in xampp/php/ext .
This Internationalisation extension (Intl) is a wrapper for the ICU library, a set of C/C++ and Java libraries that provide Unicode and Globalisation support for software applications. It enables PHP scripts to perform UCA-conformant collation and date/time/number/currency formatting.
So in C:/xampp/php/php.ini search for extension=intl and remove the semi-colon ; at the start of the line (NB it may already been uncommented).
Repeat for extension=zip and similarly remove the the semi-colon if it is there.
Also check that extension php_intl.dll is located in directory xampp/php/ext as this is the location from which the dll is loaded.
Simarly check that php_zip.dll is in xampp/php/ext .
This Internationalisation extension (Intl) is a wrapper for the ICU library, a set of C/C++ and Java libraries that provide Unicode and Globalisation support for software applications. It enables PHP scripts to perform UCA-conformant collation and date/time/number/currency formatting.
Restart Apache
After changing the values of the above parameters save php.ini, then restart Apache from the XAMPP control panel by clicking on the stop/start button on the Apache line to stop and then restart.
If the button shows Stop then it is running.
When running Apache has a green background .
If it shows Start it is inactive.
.
When running Apache has a green background .
If it shows Start it is inactive.
.
Accessing phpMyAdmin
Access will be needed to the phpMyAdmin utilty to create the database and create a user with a password.
There are several ways of doing this but perhaps the most convenient is to Click on the Admin button in the MySQL line on the XAMPP Control Panel.
Another simple way is to use a new tab in your Browser and execute localhost/phpmyadmin/
First we will check that we have direct access to phpMyAdmin so click on the Admin button on the MySQL line.
This will take you directly to the base page so then Click on User Accounts. This will open a new tab, or window, in your browser.
At this stage we are just checking!! So do NOT do anything like clicking on priveleges!!
You can see that none of the accounts have a password set.
The next steps below will modify the root localhost to have a password.
You can see that none of the accounts have a password set.
The next steps below will modify the root localhost to have a password.
Now exit by closing the browser tab (or window).
Set root password
By default the root user on localhost has no password. But Joomla! Sites require one!That is we need to set a password for the User root on the localhost.
The steps required to achieve this are given below.
Halt MySQL
We need to edit one of the XAMPP files (config.inc.php) so it is essential to ensure that MySQL is not running.
Do this by accessing the XAMPP Control Panel and ensuring that the state of MySQL is showing Start as illustrated opposite. If it is showing Stop then click on the button and after a short time it should change to Start. Edit config.inc.php
The second step is to edit the file C:/xampp/phpmyadmin/config.inc.php using Notepad++
(Notepad does not support the 'newline' characters so it looks like one huge long string).
/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';
ONLY change the line $cfg['Servers'][$i]['auth_type'] = 'config'; to read $cfg['Servers'][$i]['auth_type'] = 'cookie';
Do not be tempted to change the other lines!! Save and exit Notepad++.
Next on the XAMPP Control Panel click on the button opposite MySQL so after a few moments it shows Stop
(Notepad does not support the 'newline' characters so it looks like one huge long string).
/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';
ONLY change the line $cfg['Servers'][$i]['auth_type'] = 'config'; to read $cfg['Servers'][$i]['auth_type'] = 'cookie';
Do not be tempted to change the other lines!! Save and exit Notepad++.
Next on the XAMPP Control Panel click on the button opposite MySQL so after a few moments it shows Stop
Change Password
Use localhost/phpmyadmin/ in your browser which will take us directly to the phpMyAdmin utility where you should see a log in screen such as shown opposite.
Presently the log in name is root and there is no password so leave that field blank.
Presently the log in name is root and there is no password so leave that field blank.
This will give the General Settings screen as shown opposite but note it now has a link to a Change password command.
This was not available previously.
Clicking on the Change Password option brings up the form shown opposite where the new password may be entered.
The change of password will be acknowledged with a message such as shown opposite.
Logout
The purpose here is to prove we can re-login.
On the left hand side of the screen there are various 'control' icons.
One of these is the Log out button as shown opposite.
So Log Out and then a log in screen will appear.
Check login
You can either use the login screen or delete that browser window and yet once more in your browser go to localhost/phpmyadmin/ and this will again bring up the log in screen.
Now you will need to give the new password in order to log in.
Now you will need to give the new password in order to log in.
After logging in if you now select User Accounts on the menu bar you should see that user root on localhost now has a Yes in the Password Column.
Log out of phpMyAdmin by clicking on the logout button as shown in stage 5, close the browser window and we are finished.
But make sure you keep a copy of the password in a safe place.
NB When using jDownloads then remember to change the upload directory path in jDownloads to say C:/xampp/htdocs/jdx41/jdownloads where jdx41 is the directory in htdocs.
XAMPP Notes
The Installation of XAMPP is now complete. So now we can concentrate on making Joomla! or other websites for local use, especially for testing purposes.
In XAMPP if we wish to have a web site called say 'test', then the web site root is in directory C:/xampp/htdocs/test . Another website, called say 'beta-test', would have a root at C:/xampp/htdocs/beta-test .
To access these from the browser the link would be http://localhost/test/ or http://localhost/beta-test as appropriate. Usually with a modern browser the http:// part may be omitted.
If you have re-booted your computer and then try to access your XAMPP test site then you may get a message like "Unable to connect" or "Could not find site" or similar. Just go to the XAMPP control panel and you should see Apache and MySQL starting up.
In XAMPP if we wish to have a web site called say 'test', then the web site root is in directory C:/xampp/htdocs/test . Another website, called say 'beta-test', would have a root at C:/xampp/htdocs/beta-test .
To access these from the browser the link would be http://localhost/test/ or http://localhost/beta-test as appropriate. Usually with a modern browser the http:// part may be omitted.
If you have re-booted your computer and then try to access your XAMPP test site then you may get a message like "Unable to connect" or "Could not find site" or similar. Just go to the XAMPP control panel and you should see Apache and MySQL starting up.
Updating XAMMP
From time to time it may be helpful to update XAMPP to say use a more recent version of PHP.
An article which gives a comprehensive view of the way to do this is
How to Upgrade XAMPP in Windows (opens in a new window/tab)
As well as a procedure for updating PHP, a method of installing a new version of XAMPP and then transferring your existing test site or sites to the new version is shown near the end of the article. If you do choose the 'transfer' scheme then you will need to 'configure' the new XAMPP as noted for a first time installation above. This is much less work and in my view a lot less 'risky'. The following steps have been taken from the article.
An article which gives a comprehensive view of the way to do this is
How to Upgrade XAMPP in Windows (opens in a new window/tab)
As well as a procedure for updating PHP, a method of installing a new version of XAMPP and then transferring your existing test site or sites to the new version is shown near the end of the article. If you do choose the 'transfer' scheme then you will need to 'configure' the new XAMPP as noted for a first time installation above. This is much less work and in my view a lot less 'risky'. The following steps have been taken from the article.
- Run the installation and choose a different destination folder for it – if your old XAMPP version is installed to C:/xampp/ folder, install the new version to C:/newxampp/
- After successful installation transfer the C:/xampp/htdocs/ folder to C:/newxampp/htdocs/ – this will transfer all of your project files to the new installation.
- Also transfer the C:/xampp/mysql/data/ to C:/newxampp/mysql/data/ – this will transfer all database information to the new installation.
- Open the new XAMPP Control Panel v3.xx – and start Apache and MySQL.
- Now check the php version find php version (opens in a new window/tab) This opens the entire php info file, the PHP version is on the first line.
Creating the Database
Creating a database for a Joomla! site is straight forward.
In this Example we will create a database called ‘jdx39’ and set a collation of utf8mb4_unicode_ci as that will support all characters in all languages.
We have already created a user ‘root’ on local host with a password so we will use that when installing Joomla! We can use this database user for any site so there is no need to create multiple database users.
In this Example we will create a database called ‘jdx39’ and set a collation of utf8mb4_unicode_ci as that will support all characters in all languages.
We have already created a user ‘root’ on local host with a password so we will use that when installing Joomla! We can use this database user for any site so there is no need to create multiple database users.
To create the database itself login again to PhpMyAdmin with user ‘root’ and the associated password.
Recall that in your browser use localhost/phpmyadmin to get the login page. After logging in you will see the main page. Then on the left hand side of the screen click on New.
Recall that in your browser use localhost/phpmyadmin to get the login page. After logging in you will see the main page. Then on the left hand side of the screen click on New.
This will bring up a screen such as that shown opposite, where the required name jdx41 has been entered and the collation has been selected from the pulldown as utf8mb4_unicode_ci which is a long, long way down the list – usually about third from the bottom.
Actually in the image a previous database, jdx46, has already been created. This illustrates that you may have several sites active
After clicking on Create then the new database jdx41 will appear in the lefthand panel, so to access the database later you just need to click on its name in the lefthand panel. As noted earlier using the collation utf8mb4_unicode_ci allows any language and is also efficient in space as it will only use one, two, three or four bytes as required. That is you now have a database that will support all languages, special characters and so on, basically it is ‘future proof’.
As a check select the new database by clicking on its name, jdx41 in this example, in the left hand panel and then on Privileges on the main panel.
As shown opposite user ‘root’ on host ‘localhost’ has all privileges for database ‘jdx41’.
As shown opposite user ‘root’ on host ‘localhost’ has all privileges for database ‘jdx41’.
Install Joomla!
The first step is to create the relevant directory, which in this example will be jdx41. Note that using the same name for the site name and for the database name is very convenient when dealing with multiple sites on XAMPP. But never do that on public sites.
Create a new directory called jdx41 in C:/xampp/htdocs with Windows Explorer. Joomla! Is available at https://downloads.joomla.org/cms.(opens in a new window/tab) It is packed in three type of compression. As at August 2023 both Joomla! 3 and Joomla! 4 are available.
UPDATE Joomla 5 became available on 17th of October 2023. The setup for Joomla 5 is the same as for Joomla 4.
In this example we will use the latest Joomla! 4. Joomla! is available in 3 packing types :
Create a new directory called jdx41 in C:/xampp/htdocs with Windows Explorer. Joomla! Is available at https://downloads.joomla.org/cms.(opens in a new window/tab) It is packed in three type of compression. As at August 2023 both Joomla! 3 and Joomla! 4 are available.
UPDATE Joomla 5 became available on 17th of October 2023. The setup for Joomla 5 is the same as for Joomla 4.
In this example we will use the latest Joomla! 4. Joomla! is available in 3 packing types :
- Joomla! 4.3.4 Full Package (.tar.bz2)
- Joomla! 4.3.4 Full Package (.tar.gz)
- Joomla! 4.3.4 Full Package (.zip)
With XAMMP I tend to physically download any package, including Joomla! itself, into a convenient directory such as Joomla-downloads/joomla/ . Subsequently if adding an extension to Joomla! such as jDownloads for example then it would be stored in Joomla-downloads/jDownloads/ . Usually the "Install from Web" option will also work.
For Windows 10 the best one to download is the zip version, personally I always use the zip version whenever downloading.The next step is to unpack the download into the target directory xampp/htdocs/jdx39. Windows 10 has an inbuilt unpacking tool or you can use something like the free 7-Zip utility available from https://www.7-zip.org/ (opens in a new window/tab) which is much quicker and more flexible!
For Windows 10 the best one to download is the zip version, personally I always use the zip version whenever downloading.The next step is to unpack the download into the target directory xampp/htdocs/jdx39. Windows 10 has an inbuilt unpacking tool or you can use something like the free 7-Zip utility available from https://www.7-zip.org/ (opens in a new window/tab) which is much quicker and more flexible!
Right clicking on the downloaded zip file will show the options including Extract All and, if installed, 7-Zip.
If you click on Extract All then, by using the browse button,you will be able to specify where the extracted files are to be placed,
in this example C:\xampp\htdocs\jdx41.
Click on the Extract button to initiate extracting.
When the extraction is completed then we will be able to start the installation proper.
Initial Configuration
Start Joomla Installation
To start the installation process go to your browser and enter localhost/jdx39/index.php.
This will then show the first configuration page as illustrated opposite.
Fill in the details as indicated and click on the button.
Login Details
Here we setup the login details
Database Info
We now have to let Joomla! know the details of which database and which database user are to be used.
Note that the database user is NOT the same as the Joomla Super User.
One may however choose to use names that happen to be identical but it is preferable, and more secure, if different names are used.
Next click on button.
Final Stage
This stage, as shown opposite, allows installing additional languages.
You can choose to go to the front end by clicking on the button or to the backend by clicking on the button.
Personally I always choose to open the backend (admin)
You can choose to go to the front end by clicking on the button or to the backend by clicking on the button.
Personally I always choose to open the backend (admin)
As part of the installation process Joomla tries to delete the Installation file but with XAMPP sites it often fails so you will get a message such as that shown opposite
So use File Explorer to open C:\xampp\htdocs\<site-name> and delete the installation folder.
Post Installation
To start administration subsequently enter into your browser localhost/<site-name>/administrator
and for the front end enter localhost/<site-name>
and for the front end enter localhost/<site-name>
Appendix 1 Installing Notepad++
By default XAMPP uses the Microsoft Notepad as its editor, this is not really suitable! Notepad has numerous limitations. It is srongly suggested that an editor such as Notepad++ is used, which is downloadable from https://notepad-plus-plus.org/download (opens in a new window/tab) . It is installed as normal on Win10/Win11 just like any other application. If you are new to NotePad++ I suggest you experiment on some trial text as it is much more powerful than Notepad. One of the many very nice features is if you edit a file with say a php, css or html extension it recognises the key words and colours them approprately.
It is available in 32bit and 64bit versions.
In this example we will configure XAMPP to use the 64 bit Notepad++ as the default editor.After installation Notepad++ will be in location C:/Program Files. The 32 bit version would be in C:/Program Files(x86).
Get the XAMPP Control Panel on screen, by using your short cut or otherwise, and then click on the Config button at top right.
It is available in 32bit and 64bit versions.
In this example we will configure XAMPP to use the 64 bit Notepad++ as the default editor.After installation Notepad++ will be in location C:/Program Files. The 32 bit version would be in C:/Program Files(x86).
Get the XAMPP Control Panel on screen, by using your short cut or otherwise, and then click on the Config button at top right.
Change the Editor to Notepad++ by using the 'folders' button to select Notepad++.
The full reference for the 64 bit version is typically C:\Program Files\Notepad++\notepad++.exe
On the same screen, tick Autostart for Apache, MySQL and if required FileZilla and the other applications you may need.
This means when you click on the XAMPP Control shortcut the applications will start up automatically.
Generally not a good idea to 'tick' the Start Control Panel Minimised option.
You must of course Save.
The full reference for the 64 bit version is typically C:\Program Files\Notepad++\notepad++.exe
On the same screen, tick Autostart for Apache, MySQL and if required FileZilla and the other applications you may need.
This means when you click on the XAMPP Control shortcut the applications will start up automatically.
Generally not a good idea to 'tick' the Start Control Panel Minimised option.
You must of course Save.
At this juncture you may get a message such as shown opposite.
This is actually a Windows 10/Win 11 file access 'challenge'.
Using Explorer access file
C:\xampp\xampp-control.ini and right click on it and select 'Properties'. Then select the Security tab as shown opposite.
This will show that the file only has Read access as seen in the first image opposite.
Click on the edit button and give the file write access.
Appendix 2 - Adding email support
To implement email from XAMPP it is necessary to make additional changes to C:\xampp\php\php.ini and also to configure c:\xampp\sendmail\sendmail.ini .
Further it is assumed here that you wish to have a secure transmission so it is neccessary to invoke SSL (secure sockets layer)
These notes are based the answer given by Vikas Dwivedi in https://stackoverflow.com/questions/15965376/how-to-configure-xampp-to-send-mail-from-localhost (opens in a new window/tab
You will of course need the settings from your mailserver, including the password, the SMTP port number and the equivalent SMTP= value which is typically 587 or 465.
In this example the fictious email address 'somewhere.com' is used which you need to replace with your target email location.
For additional clarity the items you need to 'personalise' are shown in bold in this appendix.
So in C:\xampp\php\php.ini first find 'extension=php_openssl.dll' and remove the semicolon from the beginning of that line to make SSL work for localhost.
Then again in php.ini file find [mail function] and change so that you have as below. Note you might find that there are comments such as 'For Win32 only' and 'For Unix only'. These are historic so do not be put off!
[mail function]
SMTP=mail.somewhere.com
smtp_port=465
sendmail_from = testmail@somewhere.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
Next in xampp /sendmail/sendmail.ini make the settings as below, again using the appropriate email address, SMTP port and password.
smtp_server=mail.somewhere.com
smtp_port=465
smtp_ssl=auto
error_logfile=error.log
debug_logfile=debug.log
auth_username=testmail@somewhere.com
auth_password=abracadabra
force_sender=testmail@somewhere.com
The final stage is to test using the Jooma! Test Mail button in System -Global Configuration - Server tab - Mail Settings.
After setting Send Mail to Yes, do not forget to set the 'From Email' and the 'From Name' fields to the proper values.
Finally click on the Send Test Mail button. You should see a confirmation message such as shown on the far right.
If you do not receive the email it maybe because you have not configured the email set up on your device!
Further it is assumed here that you wish to have a secure transmission so it is neccessary to invoke SSL (secure sockets layer)
These notes are based the answer given by Vikas Dwivedi in https://stackoverflow.com/questions/15965376/how-to-configure-xampp-to-send-mail-from-localhost (opens in a new window/tab
You will of course need the settings from your mailserver, including the password, the SMTP port number and the equivalent SMTP= value which is typically 587 or 465.
In this example the fictious email address 'somewhere.com' is used which you need to replace with your target email location.
For additional clarity the items you need to 'personalise' are shown in bold in this appendix.
So in C:\xampp\php\php.ini first find 'extension=php_openssl.dll' and remove the semicolon from the beginning of that line to make SSL work for localhost.
Then again in php.ini file find [mail function] and change so that you have as below. Note you might find that there are comments such as 'For Win32 only' and 'For Unix only'. These are historic so do not be put off!
[mail function]
SMTP=mail.somewhere.com
smtp_port=465
sendmail_from = testmail@somewhere.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
Next in xampp /sendmail/sendmail.ini make the settings as below, again using the appropriate email address, SMTP port and password.
smtp_server=mail.somewhere.com
smtp_port=465
smtp_ssl=auto
error_logfile=error.log
debug_logfile=debug.log
auth_username=testmail@somewhere.com
auth_password=abracadabra
force_sender=testmail@somewhere.com
The final stage is to test using the Jooma! Test Mail button in System -Global Configuration - Server tab - Mail Settings.
After setting Send Mail to Yes, do not forget to set the 'From Email' and the 'From Name' fields to the proper values.
Finally click on the Send Test Mail button. You should see a confirmation message such as shown on the far right.
If you do not receive the email it maybe because you have not configured the email set up on your device!
Appendix3 - Using an Akeeba Backup
Restoring an site onto XAMPP from an Akeeba backup is straight forward but there are a couple of aspects to check. It is assumed that you have already installed Akeeba.
There are some preliminary steps:
There are some preliminary steps:
- Create a new database eg jdtestdb - see Creating a Database above for details, noting we can use the same User and Password.
- Create a new directory with the required name for the test site in xampp/htdocs/ eg jd-test
- Download the kickstart utility from https://www.akeebabackup.com/download.html (opens in a new window/tab) and extract kickstart.php from the zip file.
- Rename kickstart.php to say jdtest-restore.php (kickstart checks its name is not kickstart when you run it!!)
- copy renamed kickstart into the new directory eg copy jdtest-restore.php to xampp/htdocs/ jd-test
- Copy the Akeeba backup itself, which is usually a jpa file, to the new directory. Also if it is a large backup the there might also be files with extensions .j01, j02 and so on which should also be copied to the new dircectory.
- Open your Browser and go to localhost/<new dir>/jdtest-restore.php assuming you renamed kickstart.php as jdtest-restore.php.
Restoration
The Backup now starts, initially with a welcome page and information on where to get help.
The first two steps are illustrated below. As there is only one backup it it automatically selected. Similarly the extraction method is the regular method.
The first two steps are illustrated below. As there is only one backup it it automatically selected. Similarly the extraction method is the regular method.
Section 3, which is the Fine Tune section, is normally left alone except for the 'Rename Server configuration files' which is ticked to hide some key files during the restoration.
The next step starts the file extraction process and a progress bar is shown after starting the extraction.
The time taken for the extraction obviously depends on the siz of the website being restored.
If an error occurs then consult the Akeeba Kickstart Documentation (opens in a new window/tab) for the cause and solution.
In due course the next stage of running the installer is reached.
Installer
After starting the Installer, which runs in a new tab or window, it checks that the php settings are ok.
As these were set up when doing the initial XAMPP installation no incompatibility is expected.
There will also be other 'panels' showing information from the backup and from the site. These need to be looked at to ensure the information is consistent with what is expected.
Database
The next stage is the Database Restoration. Again there are several panels that need checking.
The first step here is to fill in the details of the new database created in XAMPP.
Setting the Database Type as MYSQLi and the Host Name as localhost are the usual settings.
The User Name, the Password and the Database Name need to be filled in as appropriate.
The required prefix is usually already entered and is probably best left.
If you are unsure there is a very useful button that shows additional help.
After initiating the restoration then a bar shows the installation progress. Finally, if all is well, there will be a completion message with a button to take the next step.
If there is a problem then consult the Akeeba Kickstart documentation. (opens in a new window/tab)
If there is a problem then consult the Akeeba Kickstart documentation. (opens in a new window/tab)
Site Parameters
The next stage is to fill in site parameters specific to the new XAMPP based website.
The site parameters for the new site will differ in some aspects from the original site.
For example XAMPP detects the new site is running in a Windows environment and advises appropriately.
The site name probably need changing to minimise confusion, and similarly the email items may well be better changed so as to identify which site, the original or the test site, sent an email.
A very important setup item is to leave both the Cookie Path and the Cookie Doman blank. If you leave or set the original contents you will not be able to login!
If the log and tmp paths are not the normal Joomla! settings such as
/home/<site-specific>/public_html/logs or tmp respectively, then it would be best to tick the override box.
The site parameters for the new site will differ in some aspects from the original site.
For example XAMPP detects the new site is running in a Windows environment and advises appropriately.
The site name probably need changing to minimise confusion, and similarly the email items may well be better changed so as to identify which site, the original or the test site, sent an email.
A very important setup item is to leave both the Cookie Path and the Cookie Doman blank. If you leave or set the original contents you will not be able to login!
If the log and tmp paths are not the normal Joomla! settings such as
/home/<site-specific>/public_html/logs or tmp respectively, then it would be best to tick the override box.
Another significant area that needs attention are the special files such as php.ini, user.ini and the .htaccess files. It is most likely that the setup of those files are very specifice to the original site and most likely inappropriate for the new test site.
So it is advisable to remove the user.ini and php.ini files as they are used to customise the PHP setup which has been dealt with earlier for XAMPP.
Similarly it is recommended use the default Joomla .htaccess file, so tick the relevant box as indicated opposite. You could also choose to delete the .htaccess and .htpasswd files.
There is a directories fine tuning panel that allows specifying the Site root and the log and temporary directory locations as illustrated opposite.
Obviously use your directory in place of jd-test.
Another Panel allows setting the super user details, as illustrated on the far right. Selecting one of the existing super users then allows changing the email and password, again to minimise confusion between the two sites.
Obviously use your directory in place of jd-test.
Another Panel allows setting the super user details, as illustrated on the far right. Selecting one of the existing super users then allows changing the email and password, again to minimise confusion between the two sites.
Clicking on the Continue button brings up the instruction to close the window as shown opposite.
After closing the window/tab then the Clean Up Button is shown as illustrated on the far right.
After closing the window/tab then the Clean Up Button is shown as illustrated on the far right.
So after the Cleanup, all is nearly done and one can check both the front end and backend are accessible.
But there is one more item related to jDownloads.
If you go to the jDownloads Control Panel you may see a notice like the one opposite.
This is because the path will refer to the original location.
So go to Options - Path Settings - "upload directory path" - and change the existing contents to
C://xampp//htdocs//jd-test//jdownloads
where jd-test is replaced by your directory, and Save. Note the use of double //
We are done!
ColinM Dec 2018, revised October 2021, August 2023, November 2023, June 2024, August 2024