Senior Manager, DevEd
Server HTTP Apache adalah server web yang paling banyak digunakan di dunia. Server web ini menyediakan banyak fitur canggih termasuk modul yang dapat dimuat secara dinamis, dukungan media yang kokoh, dan integrasi ekstensif dengan perangkat lunak populer lainnya.
Dalam panduan ini, kami akan menjelaskan cara menginstal server web Apache di server Ubuntu 20.04 Anda.
Sebelum Anda memulai panduan ini, Anda harus memiliki pengguna non-root reguler dengan privilese sudo yang terkonfigurasi di server Anda. Selain itu, Anda akan perlu mengaktifkan firewall dasar untuk memblokir porta non-esensial. Anda dapat mempelajari cara mengonfigurasi akun pengguna reguler dan menyiapkan firewall untuk server Anda dengan mengikuti Panduan penyiapan server awal untuk Ubuntu 20.04 dari kami.
Ketika Anda sudah memiliki akun, log masuk sebagai pengguna non-root untuk memulai.
Apache tersedia di dalam repositori perangkat lunak asali Ubuntu, yang memungkinkan Apache terinstal dengan menggunakan alat manajemen paket konvensional.
Mari kita mulai dengan memperbarui indeks paket lokal untuk mencerminkan perubahan hulu terbaru:
- sudo apt update
Lalu, instal paket apache2
:
- sudo apt install apache2
Setelah mengonfirmasi instalasi, apt
akan menginstal Apache dan semua dependensi yang diperlukan.
Sebelum menguji Apache, Anda perlu memodifikasi pengaturan firewall untuk mengizinkan akses dari luar ke porta web asali. Dengan asumsi bahwa Anda telah mengikuti instruksi di prasyarat, Anda seharusnya memiliki firewall UFW yang terkonfigurasi untuk membatasi akses ke server Anda.
Selama instalasi, Apache mendaftarkan dirinya dengan UFW untuk menyediakan beberapa profil aplikasi yang dapat digunakan untuk mengaktifkan atau menonaktifkan akses ke Apache melalui firewall.
Buat daftar profil aplikasi ufw
dengan mengetik:
- sudo ufw app list
Anda akan menerima daftar profil aplikasi:
OutputAvailable applications:
Apache
Apache Full
Apache Secure
OpenSSH
Seperti yang ditunjukkan oleh keluaran, ada tiga profil yang tersedia untuk Apache:
Anda disarankan untuk mengaktifkan profil yang paling ketat yang masih akan mengizinkan lalu lintas yang telah Anda konfigurasikan. Karena kita belum mengonfigurasi SSL untuk server kita dalam panduan ini, kita hanya perlu mengizinkan lalu lintas pada porta 80:
- sudo ufw allow 'Apache'
Anda dapat memverifikasi perubahan dengan mengetik:
- sudo ufw status
Keluaran akan memberi daftar lalu lintas HTTP yang diizinkan:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Seperti yang ditunjukkan oleh keluaran, profil itu telah diaktifkan untuk mengizinkan akses ke server web Apache.
Pada akhir proses instalasi, Ubuntu 20.04 memulai Apache. Server web seharusnya sudah aktif dan berjalan.
Periksa dengan sistem init systemd
untuk memastikan layanan sedang berjalan dengan mengetik:
- sudo systemctl status apache2
Output● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-04-23 22:36:30 UTC; 20h ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 29435 (apache2)
Tasks: 55 (limit: 1137)
Memory: 8.0M
CGroup: /system.slice/apache2.service
├─29435 /usr/sbin/apache2 -k start
├─29437 /usr/sbin/apache2 -k start
└─29438 /usr/sbin/apache2 -k start
Sebagaimana dikonfirmasi oleh keluaran ini, layanan telah berhasil dimulai. Namun, cara terbaik untuk menguji ini adalah dengan benar-benar meminta satu laman dari Apache.
Anda dapat mengakses laman landas Apache asali untuk mengonfirmasi bahwa perangkat lunak berjalan dengan baik melalui alamat IP Anda. Jika Anda tidak mengetahui alamat IP server Anda, Anda bisa mendapatkannya dengan beberapa cara berbeda dari baris perintah.
Coba ketik ini di prompt perintah server Anda:
- hostname -I
Anda akan mendapat beberapa alamat yang dipisahkan dengan spasi. Anda dapat mencoba masing-masing alamat di peramban web Anda untuk melihat apakah alamat itu berfungsi.
Opsi lain adalah dengan menggunakan alat Icanhazip, yang akan memberi Anda alamat IP publik Anda sebagaimana yang terbaca dari lokasi lain di internet:
- curl -4 icanhazip.com
Saat Anda memiliki alamat IP server Anda, masukkan alamat itu ke dalam bilah alamat peramban Anda:
http://your_server_ip
Anda akan melihat laman web Apache Ubuntu 20.04 asali:
Laman ini mengindikasikan bahwa Apache berfungsi dengan benar. Ini juga mencakup beberapa informasi dasar tentang berkas dan lokasi direktori penting Apache.
Karena sekarang server web Anda telah aktif dan berjalan, mari kita bahas beberapa perintah manajemen dasar dengan menggunakan systemctl
.
Untuk menghentikan server web Anda, ketik:
- sudo systemctl stop apache2
Untuk memulai server web saat berhenti, ketik:
- sudo systemctl start apache2
Untuk menghentikan lalu memulai layanan lagi, ketik:
- sudo systemctl restart apache2
Jika Anda hanya membuat perubahan konfigurasi, Apache seringkali dapat memuat ulang tanpa memutus koneksi. Untuk melakukan ini, gunakan perintah ini:
- sudo systemctl reload apache2
Secara asali, Apache dikonfigurasikan untuk memulai secara otomatis saat server melakukan boot. Jika ini bukan apa yang Anda inginkan, Anda dapat menonaktifkan perilaku ini dengan mengetik:
- sudo systemctl disable apache2
Untuk mengaktifkan kembali layanan agar memulai saat boot, ketik:
- sudo systemctl enable apache2
Apache sekarang akan memulai secara otomatis saat server melakukan boot kembali.
Ketika menggunakan server web Apache, Anda dapat menggunakan hos virtual (mirip seperti blok server di Nginx) untuk mengenkapsulasi detail konfigurasi dan menjadi hos untuk lebih dari satu domain dari server tunggal. Kita akan menyiapkan domain bernama your_domain, tetapi Anda harus menggantinya dengan nama domain Anda sendiri. Jika Anda menyiapkan nama domain dengan DigitalOcean, silakan merujuk ke Dokumentasi Jaringan kami.
Apache pada Ubuntu 20.04 memiliki satu blok server yang aktif secara asali, yang dikonfigurasi untuk menyajikan dokumen-dokumen dari direktori /var/www/html
. Meskipun ini berfungsi baik untuk situs tunggal, ini bisa menjadi sulit dijalankan jika Anda menjadi hos dari beberapa situs. Alih-alih memodifikasi /var/www/html
, mari kita ciptakan struktur direktori di dalam /var/www
untuk situs your_domain, dengan membiarkan /var/www/html
di tempatnya sebagai direktori asali yang akan disajikan jika permintaan klien tidak cocok dengan situs lain apa pun.
Buat direktori untuk your_domain sebagai berikut:
- sudo mkdir /var/www/your_domain
Selanjutnya, tentukan kepemilikan direktori dengan variabel lingkungan $USER
:
- sudo chown -R $USER:$USER /var/www/your_domain
Izin dari root web Anda seharusnya benar jika Anda belum mengubah nilai umask Anda, yang menetapkan izin berkas asali. Untuk memastikan izin Anda benar dan memperbolehkan pemilik untuk membaca, menulis, dan mengeksekusi berkas, sementara memberikan izin hanya untuk membaca dan mengeksekusi kepada grup dan lainnya, Anda dapat memasukkan perintah berikut:
- sudo chmod -R 755 /var/www/your_domain
Selanjutnya, buat laman index.html
dengan menggunakan nano
atau editor favorit Anda:
- sudo nano /var/www/your_domain/index.html
Di dalam, tambahkan HTML sampel berikut ini:
<html>
<head>
<title>Welcome to Your_domain!</title>
</head>
<body>
<h1>Success! The your_domain virtual host is working!</h1>
</body>
</html>
Simpan dan tutup berkas saat Anda sudah selesai.
Agar Apache menyajikan konten ini, kita perlu menciptakan berkas hos virtual dengan arahan yang benar. Alih-alih memodifikasi berkas konfigurasi asali yang terletak di /etc/apache2/sites-available/000-default.conf
secara langsung, mari kita ciptakan yang baru di /etc/apache2/sites-available/your_domain.conf:``
- sudo nano /etc/apache2/sites-available/your_domain.conf
Tempel di blok konfigurasi berikut, yang serupa dengan yang asali, tetapi diperbarui untuk nama domain dan direktori baru kita:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName your_domain
ServerAlias www.your_domain
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Perhatikan bahwa kita telah memperbarui DocumentRoot
ke direktori baru kita dan ServerAdmin
ke suatu surel yang dapat diakses oleh administrator situs your_domain. Kita juga telah menambah dua arahan: ServerName
, yang menjadikan domain dasar yang seharusnya sesuai dengan definisi hos virtual ini, dan ServerAlias
, yang mendefinisikan nama lebih lanjut yang seharusnya sesuai, sebagaimana jika itu adalah nama dasarnya.
Simpan dan tutup berkas saat Anda sudah selesai.
Mari kita aktifkan berkas dengan alat a2ensite
:
- sudo a2ensite your_domain.conf
Nonaktifkan situs asali yang ditetapkan di dalam 000-default.conf
:
- sudo a2dissite 000-default.conf
Selanjutnya, mari kita uji untuk kesalahan konfigurasi:
- sudo apache2ctl configtest
Anda akan menerima keluaran berikut:
OutputSyntax OK
Mulai ulang Apache untuk menerapkan perubahan Anda:
- sudo systemctl restart apache2
Apache sekarang seharusnya menyajikan nama domain Anda. Anda dapat menguji ini dengan bernavigasi ke http://your_domain
, di mana Anda akan melihat sesuatu seperti ini:
Kini setelah Anda mengetahui cara mengelola layanan Apache sendiri, Anda perlu waktu beberapa menit untuk membiasakan diri dengan beberapa direktori dan berkas penting.
/var/www/html
: Konten web aktual, yang secara asali hanya terdiri dari halaman Apache asali yang Anda lihat sebelumnya, yang disajikan dari direktori /var/www/html
. Ini dapat diubah dengan mengubah berkas konfigurasi Apache./etc/apache2
: Direktori konfigurasi Apache. Semua berkas konfigurasi Apache berada di sini./etc/apache2/apache2.conf
: Berkas konfigurasi utama Apache. Ini dapat dimodifikasi untuk membuat perubahan pada konfigurasi global Apache. Berkas ini bertanggung jawab atas pemuatan banyak berkas lainnya di dalam direktori konfigurasi./etc/apache2/port.conf
: Berkas ini menetapkan porta yang akan didengar oleh Apache. Secara asali, Apache mendengarkan porta 80 dan sebagai tambahan juga mendengarkan porta 443 saat modul yang menyediakan kemampuan SSL diaktifkan./etc/apache2/sites-available/
: Direktori di mana hos virtual per situs dapat disimpan. Apache tidak akan menggunakan berkas konfigurasi yang ditemukan dalam direktori ini kecuali jika berkas tersebut terhubung ke direktori sites-enabled
. Biasanya, semua konfigurasi blok server dilakukan di dalam direktori ini, lalu diaktifkan dengan menghubungkannya ke direktori lain dengan perintah a2ensite
./etc/apache2/sites-enabled/
: Direktori tempat menyimpan hos virtual per situs yang diaktifkan. Biasanya, ini diciptakan dengan menghubungkan ke berkas konfigurasi yang ditemukan di dalam direktori sites-available
dengan a2ensite
. Apache membaca berkas konfigurasi dan tautan yang ditemukan di dalam direktori ini saat memulai atau memuat ulang untuk mengompilasi konfigurasi yang lengkap./etc/apache2/conf-available/
, /etc/apache2/conf-enabled
: Direktori ini memiliki hubungan yang sama seperti sites-available
dan direktori sites-enabled
, tetapi digunakan untuk menyimpan fragmen konfigurasi yang tidak seharusnya berada di hos virtual. Berkas dalam direktori conf-available
dapat diaktifkan dengan perintah a2enconf
dan dinonaktifkan dengan perintah a2disconf
./etc/apache2/mods-available/
, /etc/apache2/mods-enabled/
: Direktori-direktori ini berisi modul yang tersedia dan diaktifkan, secara berurutan. Berkas yang berakhiran .load
berisi fragmen untuk memuat modul tertentu, sedangkan berkas yang berakhiran .conf
berisi konfigurasi untuk modul tersebut. Modul dapat diaktifkan dan dinonaktifkan dengan menggunakan perintah a2enmod
dan a2dismod
./var/log/apache2/access.log
: Secara asali, setiap permintaan ke server web Anda direkam di dalam berkas log ini kecuali Apache dikonfigurasikan untuk melakukan sebaliknya./var/log/apache2/error.log
: Secara asali, semua kesalahan direkam di dalam berkas ini. Arahan LogLevel
dalam konfigurasi Apache menetapkan seberapa banyak detail yang akan dicatat dalam log kesalahan.Setelah server web Anda terinstal, Anda memiliki banyak opsi untuk tipe konten yang Anda dapat layani dan teknologi yang Anda dapat gunakan untuk menciptakan pengalaman yang lebih kaya.
Jika Anda ingin membangun tumpukan aplikasi yang lebih lengkap, Anda dapat membaca artikel yang berjudul cara mengonfigurasi tumpukan LAMP pada Ubuntu 20.04
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!