XAMPP представляет кроссплатформенную сборку готового веб-сервера. Содержит Apache, MySQL, интерпретатор скриптов PHP и Perl, большое количество дополнительных библиотек (phpmyadmin, ftp-сервер FileZilla), позволяющих запустить полноценный веб-сервер.

Данный небольшой мануал позволит вам быстро настроить виртуальные хосты в XAMPP под Ubuntu или любым другим *nix дистрибутивом.

sudo gedit /opt/lampp/etc/httpd.conf

Расскомментируйте строчку нижу (она должна находить в конце файла)

Include etc/extra/httpd-vhosts.conf

Сохраните и закройте файл httpd.conf

sudo gedit /opt/lampp/etc/extra/httpd-vhosts.conf

Проверьте раcкомментированна ли строчка:

NameVirtualHost *:80

Добавьте или отредактируйте наш новый виртуальных хост:

    ServerAdmin admin@localhost
    DocumentRoot /path/to/vhosts/folder/site.local
    ServerName site.local
    ErrorLog /path/to/vhosts/logs/site.local-error_log
    CustomLog /path/to/vhosts/logs/site.local-access_log common

Сохраните и закройте файл httpd-vhosts.conf.

Откройте для редактирования файл содержащий информацию о доменнах и ip адресах.

sudo gedit /etc/hosts

Добавьте следующую строку в файл хостов

127.0.0.1	site.local

Сохраните и закройте файл hosts.

Перезапустите наш веб-сервер.

sudo /opt/lampp/lampp restart

Ничего сложного, все быстро и удобно.

UPDATE:
Скрипт автоматического добавления виртуальных хостов Apache для Ubuntu.
Заполняете необходимые значения ( path_htdocs, wwwuser, wwwgroup).
Делаете скрипт исполняемым

chmod +x /var/www/add.sh

Пример использования – добавление domain.local

sudo sh /var/www/add.sh domain.local

/var/www/add.sh

#!/bin/sh
admin_email="admin@localhost"     
path_htdocs="/var/www"
wwwuser="www"
wwwgroup="www"
 
case "$1" in
    "")
        echo "Please input new domain name (Run is root)."
        ;;
 
    *)
        clear
        echo "###########################################################\n#                 Add new local host                      #\n#                  for apache2                            #\n###########################################################"
 
        echo "Create site derictory"
        mkdir -p $path_htdocs$1/www/
        echo "$path_htdocs$1/www/"
 
        echo "\nCreate index.php file"
        echo "<?php phpinfo(); ?>" > $path_htdocs$1/www/index.php
 
        chown -R $wwwuser:$wwwgroup /$path_htdocs$1
 
        echo "\nAdd: /etc/apache2/sites-available/$1.vhost"
        exec 3>&1 1>/etc/apache2/sites-available/$1.vhost
 
 
        echo "<VirtualHost *:80>"
        echo "        ServerAdmin webmaster@localhost"
        echo "        ServerName $1"
        echo "	"
        echo "        DocumentRoot $path_htdocs$1/www"
        echo "        <Directory />"
        echo "#               Options FollowSymLinks"
        echo "                AllowOverride All"
        echo "        </Directory>"
        echo "        <Directory $path_htdocs$1/www>"
        echo "#               Options Indexes FollowSymLinks MultiViews"
        echo "                AllowOverride All"
        echo "                Order allow,deny"
        echo "                allow from all"
        echo "        </Directory>"
        echo "	"
        echo "        ErrorLog $path_htdocs$1/error.log"
        echo "	"
        echo "        LogLevel debug"
        echo "        CustomLog $path_htdocs$1/access.log combined"
        echo "	"
        echo "</VirtualHost>"
 
        exec 1>&3
 
        echo "Enable domain"
		sudo a2ensite $1.vhost
 
        echo "Added domine name to hosts"
        sudo echo "127.0.0.1	$1" >> /etc/hosts
        echo "Complite"
        sleep 1
        echo "Restarting apache"
        sudo /etc/init.d/apache2 restart
        echo "Domain is added you system ;)"
        echo "Please visit http://$1"
        ;;
esac