XAMPP is a collection of packages includes Apache web server, MySQL databse server, PEAR, SQLite, ProFTPD, phpMyAdmin, OpenSSL, GD, Freetype, openLDAP and nessary libraries. If you are not comfortable to install/configure each package separately, XAMPP is a good choice for you since everything is configured with XAMPP. XAMPP isn’t only run on Linux, XAMPP is an open source cross-platform means you can also run XAMPP on Windows, and MAC OS X Apple. I’m going to show you how to install XAMPP 1.8.3 with PHP 5.5.11 on Centos Sever.
Before you install XAMPP, make sure your Centos Linux system is up to date
# yum update
I’m installing XAMPP on a fresh Centos system, if you are installing to a VPS template, your VPS template may come with apache web server already. You need to remove Apache from VPS template before install XAMPP
# yum remove httpd*
Download XAMPP
Currently there are XAMPP 1.8.2 comes with PHP 5.4 and XAMPP 1.8.3 comes with PHP 5.5. I’m going to use XAMPP 1.8.3 in this article for PHP 5.5.
For Centos x32
# cd /tmp # wget http://downloads.sourceforge.net/project/xampp/XAMPP%20Linux/1.8.3/xampp-linux-1.8.3-4-installer.run
For Centos x64
# cd /tmp # wget http://downloads.sourceforge.net/project/xampp/XAMPP%20Linux/1.8.3/xampp-linux-x64-1.8.3-4-installer.run
Install XAMPP
It’s pretty simple to install XAMPP, all you have to do is to run the script and answer some questions.
# chmod 755 xampp-linux* # ./xampp-linux*
You will be ask several questions, just say y for yes for all of them. The installation process may take sometimes depends on how fast your system is.
[root@namhuy tmp]# ./xampp-linux* ---------------------------------------------------------------------------- Welcome to the XAMPP Setup Wizard. ---------------------------------------------------------------------------- Select the components you want to install; clear the components you do not want to install. Click Next when you are ready to continue. XAMPP Core Files : Y (Cannot be edited) XAMPP Developer Files [Y/n] :y Is the selection above correct? [Y/n]: y ---------------------------------------------------------------------------- Installation Directory XAMPP will be installed to /opt/lampp Press [Enter] to continue : ---------------------------------------------------------------------------- Setup is now ready to begin installing XAMPP on your computer. Do you want to continue? [Y/n]: y ---------------------------------------------------------------------------- Please wait while Setup installs XAMPP on your computer. Installing 0% ______________ 50% ______________ 100% ######################################### ---------------------------------------------------------------------------- Setup has finished installing XAMPP on your computer.
To start XAMPP
# /opt/lampp/lampp start
You should see
Starting XAMPP for Linux 1.8.3-4... XAMPP: Starting Apache...ok. XAMPP: Starting MySQL...already running. XAMPP: Starting ProFTPD...already running.
Your XAMPP server should be up and running by now. The first time you browse your domain you may see “Access forbidden!” error. To fix that problem, you need to turn off some of XAMPP security features.
# nano /opt/lampp/etc/extra/httpd-xampp.conf
Scroll down to the end of the file, you will see
<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))"> Require local ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
You will need to Comment them out to
# <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))"> # Require local # ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var #
Now restart XAMPP server
# /opt/lampp/lampp restart
The first time you run XAMPP from your web browser to http://domain.com you will be asked to choose language.
Configure LAMPP
We are now going to create virtual host
# nano /opt/lampp/etc/httpd.conf
Search for
# Include etc/extra/httpd-vhosts.conf
Remove the hash sign # in front of Include etc/extra/httpd-vhosts.conf to become this
Include etc/extra/httpd-vhosts.conf
Restart XAMPP again
# /opt/lampp/lampp restart
Next step is to configure httpd-vhosts.conf
# nano /opt/lampp/etc/extra/httpd-vhosts.conf
Default httpd-vhosts.conf file
ServerAdmin [email protected] DocumentRoot "/opt/lampp/docs/dummy-host.example.com" ServerName dummy-host.example.com ServerAlias www.dummy-host.example.com ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" common ServerAdmin [email protected] DocumentRoot "/opt/lampp/docs/dummy-host2.example.com" ServerName dummy-host2.example.com ErrorLog "logs/dummy-host2.example.com-error_log" CustomLog "logs/dummy-host2.example.com-access_log" common
Depends on where you want to store you website html/php files, adjust DocumentRoot accordingly. For this tutorial, I’m going to use /var/www/html. First I’m going to create /var/log/www/html directory on my Centos system to store website’s files
# mkdir -p /var/www/html
This is sample httpd-vhosts.conf which I set
ServerAdmin [email protected] DocumentRoot "/var/www/html" ServerName namhuy.net ServerAlias www.namhuy.net ErrorLog "logs/namhuy.net-error_log" CustomLog "logs/namhuy.net-access_log" common
Save httpd-vhosts.conf file and restart xampp again
# /opt/lampp/lampp restart
Secure XAMPP
By default XAMPP does not have any password which isn’t secure at all. You can make XAMPP more secure by running this command
# /opt/lampp/lampp security
You will be able to set xampp’s password, remove remote access to MySQL, set MySQL/phpMyAdmin user pma password, set MySQL root’s password, set FTP password
XAMPP: Quick security check... XAMPP: Your XAMPP pages are NOT secured by a password. XAMPP: Do you want to set a password? [yes] yes XAMPP: Password: XAMPP: Password (again): XAMPP: Password protection active. Please use 'xampp' as user name! XAMPP: MySQL is accessable via network. XAMPP: Normaly that's not recommended. Do you want me to turn it off? [yes] yes XAMPP: Turned off. XAMPP: Stopping MySQL...ok. XAMPP: Starting MySQL...ok. XAMPP: The MySQL/phpMyAdmin user pma has no password set!!! XAMPP: Do you want to set a password? [yes] yes XAMPP: Password: XAMPP: Password (again): XAMPP: Setting new MySQL pma password. XAMPP: Setting phpMyAdmin's pma password to the new one. XAMPP: MySQL has no root passwort set!!! XAMPP: Do you want to set a password? [yes] yes XAMPP: Write the password somewhere down to make sure you won't forget it!!! XAMPP: Password: XAMPP: Password (again): XAMPP: Setting new MySQL root password. XAMPP: Change phpMyAdmin's authentication method. XAMPP: The FTP password for user 'daemon' is still set to 'xampp'. XAMPP: Do you want to change the password? [yes] yes XAMPP: Password: XAMPP: Password (again): XAMPP: Reload ProFTPD...ok. XAMPP: Done.
Note after you set xampp’s password, the next you go to http://domain.com/xampp you will be asked for username and password. The username is xampp and the password is the one you set.
Activate eAccelerator
eAccelerator is a free open-source PHP accelerator & optimizer. xampp includes eAccelerator but does not enable it by default. To activate eAccelerator, you need to make some change in /opt/lampp/etc/php.ini file
# nano /opt/lampp/etc/php.ini
Search for eaccelerator part in xampp’s php.ini file, you should see
;extension="eaccelerator.so" ;eaccelerator.shm_size="16" ;eaccelerator.cache_dir="/opt/lampp/temp/eaccelerator" ;eaccelerator.enable="1" ;eaccelerator.optimizer="1" ;eaccelerator.check_mtime="1" ;eaccelerator.debug="0" ;eaccelerator.filter="" ;eaccelerator.shm_max="0" ;eaccelerator.shm_ttl="0" ;eaccelerator.shm_prune_period="0" ;eaccelerator.shm_only="0" ;eaccelerator.compress="1" ;eaccelerator.compress_level="9"
To enable/activate eAccelerator, remove all of the the semicolons at the beginning of each line. Save php.ini file and restart xampp.
# /opt/lampp/lampp restart