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
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 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
a2ensite
dari file konfigurasi yang ditemukan di direktorisites-available
ke direktorisites-enabled
. Untuk menonaktifkan virtual host gunakan perintaha2dissite
. - 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-available
menggunakan perintaha2enconf
dan dinonaktifkan dengan perintaha2disconf
. - File yang mengandung fragmen konfigurasi global disimpan di direktori
/etc/apache2/conf-available
. File dalam direktoriconf-available
dapat diaktifkan dengan membuat symlink ke/etc/apache2/conf-enabled
menggunakan perintaha2enconf
dan dinonaktifkan dengan perintaha2disconf
. - File log Apache (
access.log
danerror.log
) terletak di direktori/var/log/apache
. Disarankan untuk menggunakan fileaccess
danerror
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.