XAMPP is an easy to install Apache distribution containing MariaDB, PHP, Perl and ProFTPD. It contains: Apache, MariaDB, PHP & PEAR, Perl, ProFTPD, phpMyAdmin, OpenSSL, GD, Freetype2, libjpeg, libpng, gdbm, zlib, expat, Sablotron, libxml, Ming, Webalizer, pdf class, ncurses, mod_perl, FreeTDS, gettext, mcrypt, mhash, eAccelerator, SQLite and IMAP C-Client.
Using AUR package
Download the installer from the website.
The downloaded file is an installer script. Make it executable and run it by typing:
# chmod +x xampp-linux-version-installer.run # ./xampp-linux-version-installer.run
Be sure to stop all lampp services.
# /opt/lampp/lampp stop
All the files needed by Xampp to be installed are located in the previous
/opt/lampp folder. So, to uninstall Xampp:
# rm -rf /opt/lampp
Setting the individual parts of XAMPP can by made by editing following files:
/opt/lampp/etc/httpd.conf - Apache configuration. For example you can change folder with web page's source files.
/opt/lampp/etc/php.ini - PHP configuration.
/opt/lampp/phpmyadmin/config.inc.php - phpMyAdmin configuration.
/opt/lampp/etc/proftpd.conf - ProFTPD configuration.
/opt/lampp/etc/my.cnf - MySQL configuration.
If you would like to set up security of server, you can do it simply by this command:
# /opt/lampp/lampp security
You will be asked step by step to choose passwords for web page's access, user "pma" for phpMyAdmin, user "root" for MySQL and user "daemon" for ProFTPD.
Autostart on boot
In order to start Xampp at boot, create a systemd service for it (
[Unit] Description=XAMPP [Service] ExecStart=/opt/lampp/lampp start ExecStop=/opt/lampp/lampp stop Type=forking [Install] WantedBy=multi-user.target
Use the following commands to control XAMPP:
# /opt/lampp/lampp start,stop,restart
If you get this error when you start it:
Starting XAMPP for Linux 1.7.7... /opt/lampp/lampp: line 21: netstat: command not found /opt/lampp/lampp: line 21: netstat: command not found XAMPP: Starting Apache with SSL (and PHP5)... /opt/lampp/lampp: line 241: /bin/hostname: No such file or directory /opt/lampp/lampp: line 21: netstat: command not found XAMPP: Starting MySQL... /opt/lampp/bin/mysql.server: line 263: hostname: command not found /opt/lampp/lampp: line 21: netstat: command not found XAMPP: Starting ProFTPD... XAMPP for Linux started.
Install official repositories.and from the
Tips and tricks
Hosting files outside the htdocs directory
The document root (web root) directory is located at
/opt/lampp/htdocs/. All files placed in this directory will be processed by the web server.
To host other files on your system with XAMPP, you can configure an alias with apache.
- Edit apache's
/opt/lampp/etc/httpd.confwith your favorite editor.
DocumentRoot, you will see something like:
DocumentRoot "/opt/lampp/htdocs" <Directory "/opt/lampp/htdocs"> ... ... </Directory>
- In the next line after
<Directory "/yourDirectory/"> Options Indexes FollowSymLinks ExecCGI Includes AllowOverride All Require all granted </Directory>
- Next find the
<IfModule alias_module> # # Redirect: Allows you to tell clients about documents that used to # exist in your server's namespace, but do not anymore. The client # will make a new request for the document at its new location. # Example: # Redirect permanent /foo http://www.example.com/bar ... </IfModule>
- And before the
Alias /yourAlias /yourDirectory/
- Now do not forget to restart Apache:
# /opt/lampp/lampp restart
This will allow you to host files from your home directory (or any other directory) with XAMPP.
In the above example, you can access the files by pointing your web browser to localhost/yourAlias.
Debugging and profiling with Xdebug and Xampp
For detailed instructions go here.
You must first download the Xampp Development Tools from the same download page here.
Extract this into your Xampp directory:
# tar xvfz xampp-linux-devel-x.x.x.tar.gz -C /opt
You should be able to successfully run
in your xdebug folder.
Local test server security
Apache, MySQL and ProFTPD can be configured so that they only listen to requests from your own computer. For most test systems this is fine and it greatly reduces the risk because the services are not reachable from the Internet.
Before you start XAMPP for the first time find and edit these files:
For Apache edit the files
/opt/lampp/etc/extra/httpd-ssl.conf. Look for lines starting with "Listen" such as
and replace them with
For MySQL open the file
/opt/lampp/etc/my.cnf find the section "[mysqld]" and add this line
For ProFTPD, add the following lines to
/opt/lampp/etc/proftpd.conf under the "DefaultServer" section
DefaultAddress 127.0.0.1 SocketBindTight on
After starting the services, verify the result by going to a command window and start and execute:
netstat -a -n
For the entries marked as LISTEN in the last column, look at the Listen column. It should always start with 127.0.0.1 or ::1 but not with 0.0.0.0.
PhpMyAdmin 403 Access Forbidden
If your http://localhost/phpmyadmin returns "403 Access Forbidden", you need to edit the following settings in
<Directory "/opt/lampp/phpmyadmin"> AllowOverride AuthConfig Limit #Order allow,deny #Allow from all Require all granted </Directory>