Membuat Virtual Host di Apache
Virtual host memungkinkan lebih dari satu situs Web pada satu sistem atau server Web. Server dibedakan berdasarkan nama hostnya. Pengunjung ke situs Web diarahkan dengan nama host atau alamat IP ke host virtual yang benar. Virtual hosting memungkinkan perusahaan berbagi satu server untuk masing-masing memiliki nama domain sendiri. Apache memungkinkan kita untuk menjalankan beberapa situs dalam sebuah server apache.
Ubuntu menggunakan dua (2) directory untuk virtual host, yaitu:
/etc/apache2/sites-available /etc/apache2/sites-enabled
Folder site-enabled berisi symlink ke site-available, dengan cara ini kita dapat mengkonfigurasi dengan aman di site-available jika di disable dengan cara menghilangkan symlink.
Cara mengkonfigurasi virtual host yang paling mudah adalah dengan mengcopy / mencontek ara yang paling mudah, copy / contek default.conf
sudo cp /etc/apache2/sites-available/000-default.conf \
/etc/apache2/sites-available/itts.ac.id.conf
Isinya kira-kira
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com
ServerAdmin webmaster@localhost DocumentRoot /var/www
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf
</VirtualHost>
Ubah disesuaikan dengan virtual host kita. Dalam contoh di bawah ini, nama situs adalah www.itts.ac.id yang merupakan web mirror (atau webcopy) di server Internet OFFLINE. Copy tersebut berada di folder /usr/local/src/webmirror/www.itts.ac.id/
<VirtualHost *:80>
ServerName www.itts.ac.id ServerAlias itts.ac.id DocumentRoot /usr/local/src/webmirror/www.itts.ac.id/ <Directory /usr/local/src/webmirror/www.itts.ac.id> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory>
ErrorLog ${APACHE_LOG_DIR}/www.itts.ac.id-error.log
# Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn
CustomLog ${APACHE_LOG_DIR}/www.itts.ac.id-access.log combined </VirtualHost>
Arti masing-masing parameter
ServerName dan ServerAlias: Memberitahukan Apache akan virtual host yang akan di akses DocumentRoot: Ubah sesuai dengan folder tempat meletakan file untuk host tersebut Options -Indexes:: -Indexes menghentikan orang untuk bisa masuk ke directory dan melihat file yang ada di situ. AllowOverride: Set ke "all" untuk allow .htaccess files di virtual host (dan sub-directory) ErrorLog, CustomLog: Buat log file untuk domain virtual tersebut.
Cara Mengaktifkan Konfigurasi virtual host relatif sederhana. Misalnya kita mempunyai konfigurasi virtual host (itts.ac.id.conf) di /etc/apache2/sites-available/itts.ac.id.conf yang belum di enable. Untuk mengaktifkannya cukup menggunakan,
sudo a2ensite itts.ac.id.conf # membuat symlink site-enabled ke site-available sudo service apache2 reload # reload Apache config agar host virtual aktif sudo systemctl reload apache2
Untuk mendisable sebuah virtual host dapat menggunakan perintah,
sudo a2dissite itts.ac.id.conf #Remove symlink sudo service apache2 reload sudo systemctl reload apache2