Pasang Apache Virtual Hosts di Ubuntu 14.x dan ke Atas

Tahukah anda bahawa kita boleh memasang lebih dari satu laman web dalam satu server dengan menggunakan Apache Virtual Hosts?

Ya boleh.  Mari saya tunjukkan caranya.  Contoh ini menggunakan sistem pengoperasian Linux dengan Ubuntu 14.04 yang biasanya tidak jauh besa dengan versi terkini (contoh: Ubuntu 15.04)

Apa perlu anda ada?

  • Server dengan sistem pengoperasian Linux Ubuntu 14.04 dan ke atas
  • Mempunyai dua (2) DNS yang dihalakan ke IP yang sama.  Contoh kali ini menggunakan web1.com dan web2.com

Mari kita mulakan..

1. Pasang HTTP server

Langkah pertama kita mulakan dengan memasang Apache HTTP server (jika belum dipasang), dengan menggunakan akaun yang mempunyai previlege ‘root’ atau dengan menggunakan ‘sudo’:

sudo apt-get update
sudo apt-get install apache2

2. Bina direktori bagi Apache Virtual Hosts

sudo mkdir -p /var/www/web1.com/html
sudo mkdir -p /var/www/web2.com/html

3. Bina konfigurasi web1.com dan web2.com

Salin fail konfigurasi asal “000-default.conf” sebagai template dan bina konfigurasi bagi web1.com.   Ini adalah bagi membina fail konfigurasi bagi Apache Virtual Hosts.

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/web1.com.conf

Kandungan fail konfigurasi asal adalah seperti berikut:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Edit fail ini dengan menggunakan editor kegemaran anda sama ada dengan “vi” atau “nano”:

sudo vi /etc/apache2/sites-available/web1.com.conf

Tukar kandungan fail asal kepada berikut di mana penambahan adalah diwarnakan dengan warna merah:

<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName web1.com
    ServerAlias www.web1.com
    DocumentRoot /var/www/web1.com/html
    ErrorLog ${APACHE_LOG_DIR}/web1_error.log
    CustomLog ${APACHE_LOG_DIR}/web1_access.log combined
</VirtualHost>

Apa yang perlu adalah kita masukkan nama server, alias, dan fail log yang berkaitan ke dalam konfigurasi.

Salin fail konfigurasi bagi  web1.com dan kita bina fail konfigurasi bagi web2.com:

sudo cp /etc/apache2/sites-available/web1.com.conf /etc/apache2/sites-available/web2.com.conf

Edit fail ini:

sudo vi /etc/apache2/sites-available/web2.com.conf

Tukar kandungan kepada berikut:

<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName web2.com
    ServerAlias www.web2.com
    DocumentRoot /var/www/web2.com/html
    ErrorLog ${APACHE_LOG_DIR}/web2_error.log
    CustomLog ${APACHE_LOG_DIR}/web2_access.log combined
</VirtualHost>

4. Bina fail ujian bagi kedua-dua laman web

Bina fail indeks bagi laman web web1.com:

sudo echo "Test Laman web Web1.com" > /var/www/web1.com/html/index.html

Bina fail indeks bagi laman web web2.com:

sudo echo "Test Laman web Web2.com" > /var/www/web2.com/html/index.html

5. Tukar fail dan direktori permission bagi kedua-dua laman web

sudo chown www-data:www-data /var/www/web1.com -R
sudo chown www-data:www-data /var/www/web2.com -R
sudo chmod 755 /var/www/web1.com -R
sudo chmod 755 /var/www/web2.com -R

6. Aktifkan konfigurasi bagi web1.com dan web2.com:

Aktifkan kedua-dua konfigurasi laman web bagi Apache Virtual Hosts ini.

sudo a2ensite web1.com.conf
sudo a2ensite web2.com.conf

7. Restart HTTP server

Restart HTTP server:

service apache2 restart

8. Jalankan pengujian

Kini anda boleh lakukan pengujian dengan menggunakan apa jua Internet Browser kegemaran anda dengan alamat URL berikut:

http://web1.com
http://web2.com

Beginilah caranya bagi anda menghoskan lebih dari satu laman web dengan Apache HTTP server.

Anda boleh memasukkan apa jua fail-fail yang berkaitan dengan web1.com dan web2.com dalam direktori masing-masing.  Jangan lupa ikut langkah nombor lima (5) untuk memastikan fail permission dan ownership adalah betul.

Selamat mencuba untuk memasang Apache Virtual Hosts!

One Reply to “Pasang Apache Virtual Hosts di Ubuntu 14.x dan ke Atas”

Leave a Reply

Your email address will not be published. Required fields are marked *