Apache HTTP server adalah server web yang paling banyak digunakan di dunia. Apache menyediakan banyak fitur canggih termasuk modul yang dapat dimuat secara dinamis, dukungan media yang kuat, dan integrasi luas dengan perangkat lunak populer lainnya.

Dalam panduan ini, kami akan menjelaskan cara memasang server web Apache di server Ubuntu 18.04 Anda.

Prasyarat

Sebelum Anda memulai panduan ini, Anda harus memiliki pengguna biasa, non-root dengan wewenang sudo yang dikonfigurasi di server Anda.

Selain itu, Anda harus mengaktifkan firewall dasar untuk memblokir port yang tidak penting. Anda dapat mempelajari cara mengkonfigurasi akun pengguna biasa dan mengatur firewall untuk server Anda dengan mengikuti panduan pengaturan server awal kami untuk Ubuntu 18.04.

Saat Anda memiliki akun, masuk sebagai pengguna non-root dengan hak akses sudo untuk memulai.

Langkah 1 — Instal Apache

Apache tersedia dalam repositori default perangkat lunak Ubuntu, memungkinkan untuk menginstalnya menggunakan alat manajemen paket konvensional.

Mari kita mulai dengan memperbarui indeks paket lokal dengan menggunakan perintah :

sudo apt update

Kemudian Install paket apache2 menggunakan perintah:

sudo apt install apache2

Perintah di atas akan akan menginstal Apache dan semua dependensi yang diperlukan.

Langkah 2 — Mengatur Firewall

Sebelum menguji Apache, perlu untuk memodifikasi pengaturan firewall untuk memungkinkan akses luar ke port default web. Dengan asumsi bahwa Anda mengikuti instruksi di prasyarat, Anda seharusnya memiliki UFW firewall yang dikonfigurasi untuk membatasi akses ke server Anda.

Selama instalasi, Apache mendaftarkan diri secara otomatis dengan UFW untuk menyediakan beberapa profil aplikasi yang dapat digunakan untuk mengaktifkan atau menonaktifkan akses ke Apache melalui firewall.

Gunakan perintah berikut untuk melihat list aplikasi di ufw:

sudo ufw app list

Anda akan melihat daftar profil aplikasi:

Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Seperti yang Anda lihat, ada tiga profil yang tersedia untuk Apache:

  • Apache: Profil ini hanya membuka port 80 (lalu lintas web normal, tidak terenkripsi)
  • Apache Full: Profil ini membuka port 80 (lalu lintas web normal tidak terenkripsi) dan port 443 (TLS/SSL lalu lintas terenkripsi)
  • Apache Secure: Profil ini hanya membuka port 443 (TLS/SSL lalu lintas terenkripsi)

Disarankan agar Anda mengaktifkan profil paling ketat yang masih memungkinkan lalu lintas yang telah Anda konfigurasi. Karena kami belum mengonfigurasi SSL untuk server kami dalam panduan ini, kami hanya perlu mengizinkan lalu lintas di port 80:

sudo ufw allow 'Apache'

Anda dapat memverifikasi pengaturan Anda dengan menggunakan perintah :

sudo ufw status

Anda akan melihat lalu lintas HTTP diizinkan di output yang ditampilkan:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Apache                     ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Apache (v6)                ALLOW       Anywhere (v6)

Seperti yang Anda lihat, profil telah diaktifkan untuk memungkinkan akses ke server web.

Langkah 3 — Periksa Pengaturan Web Server

Di akhir proses instalasi, Ubuntu 18.04 memulai Apache secara otomatis. Server web seharusnya sudah aktif dan berjalan.

Periksa dengan systemd init system untuk memastikan layanan berjalan dengan mengetik:

sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Tue 2018-04-24 20:14:39 UTC; 9min ago
 Main PID: 2583 (apache2)
    Tasks: 55 (limit: 1153)
   CGroup: /system.slice/apache2.service
           ├─2583 /usr/sbin/apache2 -k start
           ├─2585 /usr/sbin/apache2 -k start
           └─2586 /usr/sbin/apache2 -k start

Anda dapat mengakses halaman landing page default Apache untuk mengonfirmasi bahwa perangkat lunak berjalan dengan baik melalui alamat IP Anda. Jika tidak tahu alamat IP server, Anda bisa mendapatkannya dengan beberapa cara dengan baris perintah.

Coba ketikkan ini di command prompt server Anda:

hostname -I

atau dengan menggunakan perintah berikut

curl -4 icanhazip.com

Ketika Anda mengetahui alamat IP server Anda, masukkan ke address bar browser Anda:

http://ip_server_anda

Jika Anda melihat tampilan berikut, Instalasi Apache Anda telah berhasil

Apache default page

Langkah 4 — Manajemen Proses Apache

Sekarang setelah web server Anda telah aktif dan berjalan, mari membahas beberapa perintah manajemen dasar.

Untuk menghentikan server web, ketik

sudo systemctl stop apache2

Untuk memulai server web saat berhenti, ketik:

sudo systemctl start apache2

Untuk menghentikan dan kemudian memulai lagi layanan, ketik:

sudo systemctl restart apache2

Jika Anda hanya membuat perubahan konfigurasi, Apache dapat memuat ulang aplikasi tanpa menjatuhkan koneksi. Untuk melakukan ini, gunakan perintah :

sudo systemctl reload apache2

Secara default, Apache dikonfigurasi untuk memulai secara otomatis ketika server melakukan booting. Jika ini bukan yang Anda inginkan, nonaktifkan perilaku ini dengan mengetik:

sudo systemctl disable apache2

Untuk mengaktifkan kembali layanan untuk memulai saat boot, ketik:

sudo systemctl enable apache2

Apache sekarang akan mulai secara otomatis ketika server melakukan booting kembali.

Langkah 5 — Setup Virtual Hosts (Recommended)

Saat menggunakan web server Apache, Anda dapat menggunakan virtual host (mirip dengan server blocks di Nginx) untuk merangkum detail konfigurasi dan menghosting lebih dari satu domain dari satu server. Kami akan menyiapkan domain bernama example.com, namun Anda harus menggantinya dengan nama domain Anda sendiri.

Apache pada Ubuntu 18.04 memiliki satu server block diaktifkan secara default yang dikonfigurasi untuk melayani dokumen dari direktori /var/www/html. Meskipun server block ini bekerja dengan baik jika ingin meng-host satu situs saja. Namun bisa menjadi bencana jika Anda ingin meng-hosting beberapa situs. Semisal ingin meng-hosting domain dengan situs1.com, situs2.com dan seterusnya. Alih-alih memodifikasi /var/www/html, mari kita membuat struktur direktori di dalam /var/www/ untuk situs example.com.

Buat direktori untuk example.com sebagai berikut, menggunakan flag -p untuk membuat direktori induk yang diperlukan:

sudo mkdir -p /var/www/example.com/html

Selanjutnya, tetapkan kepemilikan direktori dengan environmental variable $USER:

sudo chown -R $USER:$USER /var/www/example.com/html

Izin root web Anda harus benar jika Anda belum mengubah nilai unmask Anda, tetapi Anda dapat memastikan dengan mengetik:

sudo chmod -R 755 /var/www/example.com

Selanjutnya, buat halaman contoh index.html menggunakan nano atau editor favorit Anda:

nano /var/www/example.com/html/index.html

Di dalam, tambahkan contoh HTML berikut:

<html>
    <head>
        <title>Selamat Datang di situs 2!</title>
    </head>
    <body>
        <h1>Pengaturan Server Block di Situs 2 telah berhasil!!!</h1>
    </body>
</html>

Simpan dan tutup file ketika Anda selesai.

Agar Apache dapat menyajikan konten ini, perlu membuat file virtual host dengan arahan yang benar. Alih-alih memodifikasi file konfigurasi default yang terletak di /etc/apache2/sites-available/000-default.conf secara langsung, mari kita buat yang baru di /etc/apache2/sites-available/example.com.conf:

Copy dan Paste di blok konfigurasi berikut, yang mirip dengan default, tetapi diperbarui untuk direktori dan nama domain baru kami:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/html
   ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Perhatikan bahwa kami telah memperbarui DocumentRoot ke direktori baru dan ServerAdmin ke email yang dapat diakses oleh administrator situs example.com. Kami juga telah menambahkan dua arahan: ServerName, yang menetapkan domain basis yang harus cocok dengan definisi virtual host, dan ServerAlias, yang mendefinisikan nama lebih lanjut yang harus cocok dengan seolah-olah mereka adalah nama dasar.

Simpan dan tutup file ketika Anda selesai.

Mari kita aktifkan file dengan perintah a2ensite :

sudo a2ensite example.com.conf

Nonaktifkan situs default yang didefinisikan dalam 000-default.conf:

sudo a2dissite 000-default.conf

Selanjutnya, mari kita uji kesalahan konfigurasi:

sudo apache2ctl configtest

Anda akan melihat output berikut:

Syntax OK

Mulai ulang Apache untuk menerapkan perubahan Anda:

sudo systemctl restart apache2

Apache sekarang seharusnya sudah dapat melayani nama domain yang telah Anda tentukan. Anda dapat menguji ini dengan menavigasi ke alamat situs Anda, Jika pengaturan benar maka Anda akan melihat sesuatu seperti ini:

Pengaturan Server Block Apache

Pengaturan Dasar Apache di Ubuntu

Ubuntu merupakan turunan dari distro debian, jadi konfigurasi dasar Apache di Ubuntu, mirip dengan konfigurasi Apache di sistem Debian

  • File konfigurasi Apache berada di direktori /etc/apache2.
  • File konfigurasi utama Apache adalah /etc/apache2/apache2.conf.
  • Port yang akan didengarkan Apache ditentukan dalam file /etc/apache2/ports.conf.
  • File-file Apache Virtual Hosts berada di direktori /etc/apache2/sites-available. File-file konfigurasi yang ditemukan dalam direktori ini tidak digunakan oleh Apache kecuali mereka ditautkan ke direktori /etc/apache2/sites-enabled.
  • Anda dapat mengaktifkan direktif virtual host dengan membuat symlink menggunakan perintah a2ensitedari file konfigurasi yang ditemukan di direktori sites-available ke direktori sites-enabled. Untuk menonaktifkan virtual host gunakan perintah a2dissite.
  • Sangat disarankan untuk mengikuti konvensi penamaan standar, misalnya jika nama domain situs ini adalah linuxid.net, maka file konfigurasi domain dinamai /etc/apache2/sites-available/linuxid.net.conf untuk memudahkan manajemen situs.
  • File konfigurasi yang digunakan untuk memuat berbagai modul Apache terdapat di direktori /etc/apache2/mods-available. Konfigurasi dalam direktori mod-available dapat diaktifkan dengan membuat symlink ke direktori /etc/apache2/mods-availablemenggunakan perintah a2enconf dan dinonaktifkan dengan perintah a2disconf.
  • File yang mengandung fragmen konfigurasi global disimpan di direktori /etc/apache2/conf-available. File dalam direktori conf-available dapat diaktifkan dengan membuat symlink ke/etc/apache2/conf-enabled menggunakan perintah a2enconf dan dinonaktifkan dengan perintah a2disconf.
  • File log Apache (access.log dan error.log) terletak di direktori /var/log/apache. Disarankan untuk menggunakan file access dan error log yang berbeda untuk setiap virtual host .
  • Anda dapat mengatur direktori root dokumen domain Anda ke lokasi yang Anda inginkan. Lokasi yang paling umum untuk webroot meliputi:
    • /home/<user_name>/<site_name>
    • /var/www/<site_name>
    • /var/www/html/<site_name>
    • /opt/<site_name>

Kesimpulan

Sekarang setelah web server Anda terinstal, maka lebih banyak opsi yang akan Anda sajikan dan teknologi yang semakin kaya fitur.

Jika Anda ingin membangun Aplikasi yang lebih lengkap, Silahkan melihat panduan kami tentang konfigurasi LAMP stack di Ubuntu 18.04 yang merupakan perpaduan antara Linux Apache MySQL dan PHP. Anda juga dapat melihat panduan kami tentang Amankan Apache dengan Let’s Encrypt untuk mengamankan lalu lintas di situs dan web server Anda.