Apache HTTP Server (Apache), adalah salah satu perangkat lunak server web lintas platform gratis dan open-source yang paling populer, dirilis di bawah persyaratan Lisensi Apache 2.0.
Apache populer sebagai bagian dari pengaturan LAMP, menjadi A dalam Akronim. Fungsionalitas server apache dapat diperluas dengan banyak modul yang tersedia.
Prasyarat:
- Server Centos 8 terbaru
- Akses root ke server (Atau pengguna dengan akses sudo)
- Firewall disiapkan untuk mengizinkan lalu lintas ke port 80 dan 443
Menginstal Apache
Pastikan paket terbaru:
sudo dnf -y update
Apache tersedia di repositori perangkat lunak CentOS 8 default sebagai httpd
. Anda dapat memeriksa info tentangnya menggunakan perintah ini:
sudo dnf info httpd
Anda akan melihat sesuatu yang mirip dengan ini:
$ sudo dnf info httpd
CentOS Linux 8 - AppStream 20 MB/s | 8.8 MB 00:00
CentOS Linux 8 - BaseOS 24 MB/s | 5.6 MB 00:00
Last metadata expiration check: 0:00:01 ago on Sat 28 Aug 2021 01:06:59 PM UTC.
Available Packages
Name : httpd
Version : 2.4.37
Release : 39.module_el8.4.0+778+c970deab
Architecture : x86_64
Size : 1.4 M
Source : httpd-2.4.37-39.module_el8.4.0+778+c970deab.src.rpm
Repository : appstream
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
Instal dengan perintah ini:
sudo dnf install -y httpd
Mengaktifkan http dan https di firewalld
Jika Anda telah mengaktifkan dan menjalankan firewall, Anda harus mengaktifkan port http dan https menggunakan perintah berikut:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
Sekarang muat ulang firewall untuk menerapkan aturan baru ini:
sudo firewall-cmd --reload
Memulai dan mengaktifkan layanan httpd
Secara default, layanan tidak dimulai. Konfirmasikan dengan perintah berikut:
sudo systemctl status httpd
Keluaran:
$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:httpd.service(8)
Mulai layanan dengan perintah ini:
sudo systemctl start httpd
Anda akan menerima status aktif saat layanan berjalan
Konfirmasi bahwa sekarang berfungsi dengan baik:
$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2021-08-28 13:32:17 UTC; 17s ago
Docs: man:httpd.service(8)
Main PID: 65827 (httpd)
Status: "Running, listening on: port 80"
Tasks: 213 (limit: 23800)
Memory: 28.9M
CGroup: /system.slice/httpd.service
├─65827 /usr/sbin/httpd -DFOREGROUND
├─65828 /usr/sbin/httpd -DFOREGROUND
├─65829 /usr/sbin/httpd -DFOREGROUND
├─65830 /usr/sbin/httpd -DFOREGROUND
└─65831 /usr/sbin/httpd -DFOREGROUND
Aug 28 13:32:17 test-app-server systemd[1]: Starting The Apache HTTP Server...
Aug 28 13:32:17 test-app-server httpd[65827]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::8fc:23ff:fe51:cc>
Aug 28 13:32:17 test-app-server systemd[1]: Started The Apache HTTP Server.
Aug 28 13:32:17 test-app-server httpd[65827]: Server configured, listening on: port 80
Di atas menegaskan bahwa Apache berfungsi dengan baik sekarang.
Untuk mengonfirmasi bahwa layanan dapat diakses, silakan menuju ke url berikut untuk melihat apakah Anda bisa mendapatkan halaman httpd:
http://server_ip
Jika Anda tidak mengetahui servernya, gunakan perintah berikut di terminal Anda:
curl -4 icanhazip.com
Setelah Anda mengunjungi halaman itu, jika semuanya berfungsi dengan baik, Anda akan melihat halaman default Apache seperti pada tangkapan layar di bawah ini:
Untuk memastikan bahwa layanan selalu dimulai saat boot, gunakan perintah systemctl ini:
sudo systemctl enable httpd
Menyiapkan Host Virtual
Dengan Apache, dimungkinkan untuk meng-host beberapa situs di server yang sama tempat Apache dijalankan. Ini selalu dapat dicapai dengan menggunakan beberapa domain yang masing-masing mewakili situs yang dihosting oleh server.
Host virtual Apache mirip dengan blok server Nginx. Setiap virtual host akan memiliki detail konfigurasi untuk satu host. Anda dapat memiliki host virtual sebanyak yang Anda inginkan.
Dalam contoh ini, kita akan menggunakan domain site1.citizix.com
untuk virtual host tetapi bebas menggunakan domain pilihan Anda. Harap dicatat bahwa DNS untuk domain yang akan digunakan harus sudah dikonfigurasi untuk menunjuk ke alamat IP server.
Konfirmasi dengan:
dig -t A site1.citizix.com
Membuat direktori dan konten sampel
Halaman default Apache dikonfigurasi sebagai host virtual default yang menyajikan konten dari /var/www/html
. Ini adalah praktik terbaik untuk membuat direktori situs Anda di /var/www
direktori karena ini adalah praktik terbaik untuk melayani dari sana.
Mari buat direktori untuk situs kita dengan perintah berikut:
sudo mkdir /var/www/site1.citizix.com
Mari kita buat index.html
sederhana halaman untuk melayani dari situs kami. Anda perlu menginstal vim agar ini berfungsi, jika tidak gunakan perintah ini:
sudo dnf install -y vim
Edit filenya:
sudo vim /var/www/site1.citizix.com/index.html
Tambahkan konten ke file:
<html>
<head>
<title>Hello from Citizix Site1!</title>
</head>
<body>
<h1>Hey!</h1>
<p>This is citizix site1. Welcome here.</p>
</body>
</html>
Terakhir, pastikan pengguna saat ini memiliki direktori situs:
sudo chown -R $USER:$USER /var/www/site1.citizix.com
Membuat host virtual
File Apache Virtual host menentukan konfigurasi setiap situs dan memberi tahu server web Apache cara merespons berbagai permintaan domain.
Konfigurasi Apache akan disimpan di direktori /etc/httpd/conf.d/
. Mari buat konfigurasi untuk situs kita:
sudo vim /etc/httpd/conf.d/site1.citizix.com.conf
Tambahkan konten berikut:
<VirtualHost *:80>
ServerName site1.citizix.com
ServerAlias site1.citizix.com
DocumentRoot /var/www/site1.citizix.com
ErrorLog /var/log/httpd/site1.citizix.com.error.log
CustomLog /var/log/httpd/site1.citizix.com.requests.log combined
</VirtualHost>
Ini akan memberi tahu Apache hal berikut:
ServerName
dan ServerAlias – nama host yang akan dilayaniDocumentRoot
– di mana menemukan root secara langsung yang menyimpan dokumen web yang dapat diakses publikErrorLog
– tempat menyimpan log kesalahan untuk situs iniCustomLog
– tempat menyimpan log permintaan untuk situs tertentu ini
Simpan dan tutup file setelah Anda selesai
Menguji Host Virtual
Sekarang konfigurasi sudah siap, kita perlu menguji apakah semuanya berfungsi seperti yang diharapkan.
Pertama restart Apache untuk memuat ulang konfigurasi:
sudo systemctl restart httpd
Buat daftar isi /var/log/httpd/
direktori untuk melihat apakah Apache membuat file log:
Jika semuanya baik-baik saja, Anda akan melihat output yang mirip dengan ini:
# ls /var/log/httpd/
access_log error_log site1.citizix.com.error.log site1.citizix.com.requests.log
Jika semuanya baik-baik saja, Apache sekarang akan melayani nama domain Anda. Anda dapat menguji ini dengan menavigasi ke http://site1.citizix.com
, di mana Anda akan melihat sesuatu seperti ini:
Tangkapan layar di atas mengonfirmasi bahwa virtual host berhasil dikonfigurasi dan menyajikan konten.
Jika Anda perlu menghosting beberapa situs lain, ulangi langkah-langkah di atas untuk situs yang Anda inginkan.
Kesimpulan
Kami berhasil menginstal dan menyiapkan server web Apache dalam instruksi di atas di Centos 8 Server.