Cara Install Apache HTTPD di CentOS Stream 9

Apache HTTP Server (httpd) adalah salah satu server web paling populer dan tangguh yang tersedia, dikenal karena fleksibilitas, kinerja, dan beragam fiturnya. Ini banyak digunakan untuk hosting situs web dan aplikasi web. Menyiapkan Apache di CentOS Stream 9 memungkinkan Anda memanfaatkan kemampuannya yang kuat untuk kebutuhan hosting web Anda. Selain itu, mengamankan situs web Anda dengan sertifikat SSL gratis dari Let's Encrypt memastikan situs Anda terenkripsi dan dapat dipercaya.

Untuk menginstal Apache HTTP Server di CentOS Stream 9 dan menyiapkan sertifikat SSL Let's Encrypt, ikuti langkah-langkah yang diuraikan dalam panduan ini. Ini akan memberi Anda konfigurasi server web yang aman dan efisien.

Memastikan Sistem Aliran CentOS Sepenuhnya Diperbarui Sebelum Instalasi Apache

Sebelum melanjutkan instalasi Apache pada mesin CentOS Stream Anda, kami harus memverifikasi bahwa sistem kami sudah diperbarui sepenuhnya. Ini lebih dari sekedar tindakan pencegahan. Memperbarui sistem Anda membantu mencegah masalah kompatibilitas dan meningkatkan stabilitas, keamanan, dan kinerjanya secara signifikan.

Untuk mewujudkannya, jalankan perintah berikut di terminal Anda:

sudo dnf upgrade --refresh

Perintah ini mengaktifkan mekanisme pembaruan, pengadaan dan pemasangan pembaruan perangkat lunak dan patch keamanan terbaru pada sistem Anda. Sangat penting untuk membiarkan proses pembaruan selesai sepenuhnya sebelum melanjutkan ke instalasi Apache. Hal ini memastikan bahwa sistem Anda berada dalam kondisi prima, terkonfigurasi secara optimal, dan siap menjalankan Apache tanpa mengalami kendala atau masalah kompatibilitas.

Instal Apache HTTPD melalui Perintah DNF

Langkah kedua adalah menginstal Apache, atau HTTPD, pada sistem CentOS Stream Anda. Ini adalah proses yang mudah, berkat manajer paket DNF yang hebat. DNF, atau Dandified Yum, manajer paket menyederhanakan instalasi, pembaruan, dan pengelolaan paket perangkat lunak.

Mulailah instalasi Apache (HTTPD) dengan menjalankan perintah berikut di terminal Anda:

sudo dnf install httpd

Perintah ini memulai mekanisme instalasi dan mengambil serta menginstal semua komponen yang diperlukan untuk memungkinkan Apache (HTTPD) berjalan di sistem Anda. Prosesnya akan selesai hanya dalam beberapa menit. Setelah itu, Apache (HTTPD) Anda akan terinstal sepenuhnya dan siap digunakan.

Mengaktifkan dan Mengonfigurasi Apache HTTPD agar Berjalan pada Boot Sistem

Setelah instalasi Apache (HTTPD) berhasil pada sistem CentOS Stream Anda, tindakan utama berikut adalah mengaktifkan layanan dan mengonfigurasinya agar diluncurkan secara otomatis saat boot sistem. Apache (HTTPD) selalu aktif dan siap melayani permintaan web saat sistem Anda menyala.

Jika layanan Apache (HTTPD) tidak aktif atau diatur untuk dijalankan secara default, gunakan perintah berikut di terminal Anda untuk memulai layanan dan memastikan layanan berjalan pada boot sistem:

sudo systemctl start httpd
sudo systemctl enable httpd

Perintah pertama, sudo systemctl start httpd, menjalankan layanan Apache (HTTPD), sedangkan perintah kedua, sudo systemctl aktifkan httpd, mengatur layanan agar berjalan secara otomatis saat boot sistem. Dengan menerapkan kedua perintah ini, Anda menjamin bahwa Apache (HTTPD) selalu dapat diakses dan aktif, siap memenuhi permintaan web setiap kali sistem Anda dihidupkan.

Sebagai alternatif, Anda dapat menyingkat dua langkah sebelumnya menjadi satu perintah:

sudo systemctl enable httpd --now

Opsi –now pada perintah sudo systemctl aktifkan httpd –sekarang secara bersamaan memulai layanan Apache (HTTPD) dan mengkonfigurasinya untuk diluncurkan pada boot sistem secara otomatis. Perintah tunggal ini menyatukan dua perintah terpisah dari langkah sebelumnya, menjadikan proses lebih efisien dan efisien.

Periksa Status Layanan HTTPD Apache

Terakhir, kita harus memverifikasi keberhasilan implementasi dan fungsi Apache (HTTPD) dengan menggunakan perintah systemctl berikut:

systemctl status httpd

Perintah ini memberi Anda status layanan Apache (HTTPD) real-time, termasuk kesalahan atau pesan apa pun yang mungkin muncul. Dengan memeriksa status layanan, Anda dapat memastikan bahwa Apache (HTTPD) berjalan dengan lancar.

Konfigurasikan Aturan FirewallD

Setelah menginstal Apache (HTTPD) di CentOS Stream, Anda mungkin memperhatikan bahwa firewall tidak menyertakan aturan yang telah dikonfigurasi sebelumnya untuk port standar 80 dan 443. Anda harus mengonfigurasi aturan firewall ini sebelum melanjutkan untuk meningkatkan keamanan aplikasi web Anda.

Tetapkan aturan firewall menggunakan alat firewall-cmd, utilitas manajemen firewall default CentOS Stream. Aturan yang perlu Anda konfigurasi akan bervariasi tergantung pada port yang ingin Anda gunakan. Namun, kami mencantumkan semua opsi penting dalam langkah-langkah berikut.

Membuka Port 80 dan 443

Kami akan menjalankan dua perintah pertama untuk membuka port 80 dan 443. Port ini masing-masing menangani lalu lintas HTTP dan HTTPS yang masuk.

Untuk membuka port 80 atau HTTP, jalankan perintah berikut:

sudo firewall-cmd --permanent --add-port=80/tcp

Selanjutnya, buka port 443, atau HTTPS, dengan perintah berikut:

sudo firewall-cmd --permanent --add-port=443/tcp

Verifikasi Perubahan Firewall

Setelah menentukan port yang akan dibuka, kita harus menginstruksikan firewall untuk menerapkan perubahan ini. Lakukan ini dengan memuat ulang aturan firewall menggunakan perintah di bawah ini:

sudo firewall-cmd --reload

Memahami Implikasinya

Sangatlah penting untuk memiliki pemahaman yang mendalam tentang implikasi keamanan yang menyertai pembukaan port pada sistem Anda. Dengan hanya membuka port yang diperlukan secara selektif, Anda memperkuat pertahanan aplikasi web Anda terhadap akses tidak sah dan potensi ancaman keamanan. Ini menggarisbawahi mengapa penting untuk mengonfigurasi aturan firewall dengan benar untuk instalasi Apache (HTTPD) Anda di CentOS Stream.

Memverifikasi Akses HTTPD Apache

Setelah mengonfigurasi Firewalld dengan cermat, pastikan Anda dapat mengakses halaman arahan Apache (HTTPD) melalui browser web Anda. Luncurkan browser web favorit Anda dan buka http://localhost atau http://your_server_ip.

Untuk mengakses melalui IP server Anda:

http://your_server_ip

Alternatifnya, untuk mengakses melalui localhost:

http://localhost

Saat Anda mengonfigurasi semuanya dengan tepat, halaman arahan default Apache (HTTPD) akan menyambut Anda. Halaman ini menampilkan pesan yang mengonfirmasi bahwa server beroperasi seperti yang diharapkan. Halamannya akan menyerupai:

Membuat dan Mengonfigurasi Host Virtual

Bagian ini akan mempelajari aspek praktis pembuatan host virtual menggunakan Apache (HTTPD), server web fleksibel yang dikenal karena kemampuannya meng-host beberapa domain di satu server. Utilitas ini analog dengan atribut “blok server” dari Nginx. Dalam tutorial berikutnya, kami akan mengilustrasikan cara memformulasikan host virtual untuk domain tertentu, yang direpresentasikan sebagai “domain-contoh.com.” Tentu saja, Anda akan mengganti domain sampel ini dengan nama domain spesifik Anda.

Membuat host virtual memfasilitasi pengelolaan konfigurasi independen untuk setiap domain. Ini memberikan kontrol atas berbagai aspek lingkungan server web Anda, termasuk keamanan, kinerja, dan pengaturan khusus. Hal ini terbukti sangat menguntungkan jika Anda ingin menghosting beberapa situs web di satu server atau mempertahankan pengaturan terpisah untuk bagian berbeda di situs web Anda. Dengan Apache (HTTPD), Anda dapat dengan mudah merancang host virtual untuk memenuhi persyaratan ini.

Membuat dan Mengonfigurasi Direktori

Memulai pengaturan host virtual Anda melibatkan pembuatan direktori baru yang berfungsi sebagai folder root untuk host virtual Anda. Nama direktori ini biasanya selaras dengan nama domain Anda.

Misalnya, jika nama domain Anda adalah “example.com”, Anda akan membuat direktori baru dengan perintah:

sudo mkdir /var/www/example.com

Perintah ini mengharuskan penggantian “example.com” dengan nama domain Anda. Dengan demikian, Direktori akan menampung file dan aset yang terkait dengan host virtual Anda, termasuk file HTML, gambar, skrip, dan sumber daya lainnya.

Menyiapkan direktori individual untuk setiap host virtual memfasilitasi pemisahan masalah yang berbeda, yang penting dalam konteks keamanan dan pemecahan masalah.

Direktori baru mungkin memerlukan kepemilikan dan izin yang sesuai untuk mengizinkan akses Apache (HTTPD). Perintah selanjutnya mengatur kepemilikan dan izin yang benar:

sudo chown -R apache:apache /var/www/example.com
sudo chmod -R 755 /var/www/example.com

Dengan direktori baru yang sudah disiapkan, kami dapat menyiapkan host virtual Anda.

Membuat File index.html

Editor teks menghasilkan file index.html untuk host virtual Anda. Untuk tutorial kami, kami akan menggunakan editor teks nano, meskipun Anda dapat memilih editor teks apa pun yang Anda sukai.

Jalankan perintah berikut untuk membuat file index.html:

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

Di editor teks, mulailah membuat konten untuk file index.html Anda. File ini biasanya berfungsi sebagai titik kontak pertama bagi pengguna yang mengunjungi situs web Anda.

Berikut ini contoh sederhananya:

<html>
  <head>
    <title>Example Domain</title>
  </head>
  <body>
    <h1>Welcome to Example Domain</h1>
    <p>This is a sample page for the domain example.com.</p>
  </body>
</html>

Setelah menyelesaikan konten file index.html Anda, simpan file dan keluar dari editor teks. Dalam kasus nano, ini dilakukan dengan menekan Ctrl + X, Y, dan Enter.

Mengonfigurasi Direktori Host Virtual

Memastikan pengaturan direktori yang tepat untuk server web Apache menjamin konfigurasi yang lancar dan terorganisir. Secara khusus, direktori “sites-available” dan “sites-enabled” digunakan. Konfigurasi ini mencerminkan konfigurasi yang diadopsi di Nginx dan mendukung konfigurasi yang terorganisir dan dapat diakses.

Untuk membuat direktori ini, gunakan perintah berikut:

sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

Selanjutnya, instruksikan Apache untuk mencari file host virtual di direktori “/etc/httpd/sites-available”:

sudo nano /etc/httpd/conf/httpd.conf

Di file konfigurasi yang terbuka, tambahkan baris “IncludeOptional sites-enabled/*.conf” di akhir. Baris ini menginstruksikan Apache untuk memasukkan semua file konfigurasi host virtual di direktori “sites-enabled”.

IncludeOptional sites-enabled/*.conf

Secara opsional, Anda mungkin ingin memberi komentar “IncludeOptional conf.d/*.conf”, menonaktifkan folder default tempat Apache mencari file host virtual. Hal ini membantu mencegah potensi kebingungan.

Contoh:

#IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf

Untuk menyimpan file dan keluar, gunakan kombinasi keyboard CTRL + O, diikuti dengan CTRL + X.

Buat File Konfigurasi Host Virtual

Selanjutnya, dengan menggunakan editor teks Anda, kami akan membuat file konfigurasi host virtual di /etc/httpd/sites-available/example.com.conf.

sudo nano /etc/httpd/sites-available/example.com.conf

Isi informasi placeholder di blok konfigurasi berikut dengan NamaServer, ServerAlias, dan Root Dokumen Anda sebelum menyalinnya ke file konfigurasi host virtual yang terletak di /etc/httpd/sites-available/example.com.conf.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example_domain
    ServerAlias www.example_domain
    DocumentRoot /var/www/example.com/
</VirtualHost>

Sesuaikan arahan server agar sesuai dengan kebutuhan spesifik Anda.

Langkah 5: Memodifikasi Izin Akses

Untuk memberikan akses publik ke server Anda, ubah izin akses untuk layanan Apache di file konfigurasi /etc/httpd/conf/httpd.conf. Konfigurasi default menolak akses. Jika Anda mengabaikan langkah ini, Anda mungkin mengalami kesalahan HTTP 403 saat orang mencoba mengakses situs web Anda.

sudo nano /etc/httpd/conf/httpd.conf

Tambahkan blok berikut ke file Anda, pastikan Anda menyesuaikan direktori root agar sesuai dengan milik Anda.

<Directory /var/www/example.com/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Untuk menyimpan perubahan ini, gunakan kombinasi keyboard CTRL+O dan keluar dari editor teks menggunakan CTRL+X.

Langkah 6: Aktifkan Virtual Host untuk Apache di CentOS Stream

Untuk menyiapkan virtual host, Anda harus mengaktifkannya sebagai langkah terakhir. Buat tautan simbolik dari direktori situs yang tersedia ke direktori situs yang diaktifkan menggunakan perintah yang disediakan di bawah ini:

sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/

Anda perlu me-restart layanan Apache untuk menyelesaikan proses aktivasi.

sudo systemctl restart httpd

Setelah memulai ulang layanan Apache, buka browser web Anda dan navigasikan ke “HTTP://example_domain.” Jika Anda belum mendaftarkan domain, Anda dapat mengakses website Anda menggunakan alamat IP (lokal atau jarak jauh). Jika Anda mengatur semuanya dengan benar, halaman arahan yang Anda buat di file index.html akan menyambut Anda.

Perintah & Tip Tambahan

Direktori dan File Aman

Menetapkan Izin Aman

Menggunakan izin aman untuk file dan direktori di Apache di CentOS sangatlah penting. Seringkali, izin berlebihan diberikan, seperti akses publik penuh. Untuk mencegah risiko keamanan, disarankan untuk membatasi izin. Untuk direktori, gunakan chmod 755 dan untuk file, chmod 644. Di bawah ini adalah perintah untuk mengatur izin ini. Ingat, beberapa aplikasi mungkin memerlukan izin berbeda, seperti 777 untuk phpBB.

  • Untuk direktori:
sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
  • Untuk file:
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Perintah-perintah ini akan menggantikan /var/www/example.com/ dengan jalur direktori yang sesuai. Langkah ini tidak menjamin keamanan penuh namun secara signifikan mengurangi risiko dengan mencegah akses publik ke file penting.

Amankan Apache dengan Let's Encrypt SSL

Menginstal Mari Enkripsi Sertifikat SSL

Mengamankan server Apache Anda dengan sertifikat SSL diperlukan untuk koneksi server-klien yang aman. Let's Encrypt menyediakan sertifikat SSL otomatis gratis. Pertama, pastikan repositori CRB diaktifkan, dan repositori EPEL diinstal. Proses instalasi sedikit berbeda antara CentOS Stream 9 dan 8.

Untuk Aliran CentOS 9:
  • Aktifkan CRB:
sudo dnf config-manager --set-enabled crb
  • Instal repositori EPEL:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

Selanjutnya, instal mod_ssl dan Jepret:

sudo dnf install mod_ssl

Aktifkan EPEL pada distribusi CentOS Stream Anda, lalu instal Snap.

sudo dnf install snapd -y

Setelah instalasi, pastikan untuk segera mengaktifkan Snap dan memulai sistem.

sudo systemctl enable snapd --now

Langkah selanjutnya adalah menginstal inti snap, yang akan menangani semua dependensi yang diperlukan untuk menjalankan paket snap.

sudo snap install core

Buat tautan simbolik untuk direktori snapd.

sudo ln -s /var/lib/snapd/snap /snap

Gunakan perintah terminal berikut untuk menginstal paket snap Certbot.

sudo snap install --classic certbot

Terakhir, buat tautan simbolik lain untuk paket snap Certbot.

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Jalankan Certbot untuk Apache

Jalankan perintah berikut di terminal Anda untuk menghasilkan sertifikat SSL menggunakan Certbot.

sudo certbot --dry-run --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Bagi mereka yang baru mengenal Let's Encrypt, Anda dapat mencari informasi lebih lanjut tentang singkatan dalam perintahnya.

  • Opsi “–dry-run” memungkinkan Anda menjalankan uji coba proses pembuatan sertifikat tanpa mengubah sistem. Opsi ini berharga untuk pengujian.
  • Opsi “–apache” adalah untuk menghasilkan sertifikat untuk server web Apache.
  • Opsi “–agree-tos” memungkinkan Anda menerima persyaratan layanan dari Let's Encrypt, otoritas sertifikat yang menyediakan sertifikat SSL.
  • Opsi “–redirect” secara otomatis mengalihkan semua lalu lintas HTTP ke HTTPS.
  • Opsi “–hsts” mengaktifkan HTTP Strict Transport Security (HSTS). Fitur keamanan ini membantu melindungi terhadap serangan penurunan versi protokol dan pembajakan cookie dengan memberi tahu browser hanya untuk mengakses situs web Anda melalui koneksi HTTPS yang aman.
  • Opsi “–staple-ocsp” mengaktifkan stapel Online Certificate Status Protocol (OCSP), yang memverifikasi status pencabutan sertifikat SSL tanpa menghubungi otoritas sertifikat.
  • Gunakan opsi “–email” untuk menentukan alamat email yang ingin Anda kaitkan dengan sertifikat.
  • Opsi “-d” menentukan nama domain yang akan Anda buatkan sertifikatnya. Dalam contoh ini, nama domainnya adalah “www.example.com.”

Alternatifnya, Anda dapat menggunakan perintah berikut dan ikuti petunjuk langkah demi langkah untuk pengalaman yang lebih mudah diakses.

sudo certbot certonly --apache

Dengan menjalankan perintah dengan parameter yang disebutkan, Anda mengarahkan certbot untuk membuat sertifikat SSL untuk domain Anda "www.example.com" sambil juga menyertakan fitur keamanan yang diperlukan seperti pengalihan paksa HTTPS 301, header Strict-Transport-Security, dan Stapel OCSP. Penting untuk dicatat bahwa Anda harus mengganti alamat email dalam perintah dengan alamat Anda sendiri, dan juga pastikan untuk mengganti nama domain “www.example.com” dengan nama domain yang Anda inginkan.

Konfigurasi SSL di Apache

Setelah mendapatkan sertifikat SSL, konfigurasikan server Apache Anda untuk menggunakannya. Sunting itu ssl.conf file dan tambahkan baris berikut, ganti “example.com” dengan domain Anda:

sudo nano /etc/httpd/conf.d/ssl.conf

Di file konfigurasi, tambahkan baris berikut: ganti “example.com” dengan nama domain Anda.

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

Simpan perubahan dan mulai ulang Apache agar konfigurasi diterapkan.

sudo systemctl restart httpd 

Pengaturan ini memastikan komunikasi terenkripsi dan aman antara browser dan situs web Anda.

Mengotomatiskan Perpanjangan Sertifikat

Agar sertifikat SSL tetap mutakhir, siapkan tugas cron untuk perpanjangan otomatis. Uji proses pembaruan dengan uji coba:

sudo certbot renew --dry-run

Periksa pengatur waktu menggunakan perintah systemctl list-timers dan konfirmasikan bahwa “snap.certbot.renew.timer” ada.

systemctl list-timers snap.certbot.renew.timer

Gunakan perintah “systemctl list-timers –all” untuk melihat timer aktif dan tidak aktif di sistem Anda. Perintah ini meninjau semua pengatur waktu, termasuk “snap.certbot.renew.timer.” “snap.certbot.renew.timer” memastikan pemeriksaan otomatis dan pembaruan sertifikat Anda sebelum masa berlakunya habis. Dengan demikian, Anda menghilangkan kekhawatiran terkait proses perpanjangan.

systemctl list-timers --all

Manajemen HTTPD Apache

Setelah Apache berhasil dikonfigurasi di server Anda, berikut adalah beberapa poin penting yang perlu diingat untuk pengelolaan yang efektif.

Log Server Apache

Log server Apache disimpan dalam direktori di /var/log/httpd/. Nama file default untuk log akses dan log kesalahan masing-masing adalah access.log dan error.log. Namun, mengubah nama-nama ini di file konfigurasi host virtual dimungkinkan.

Berikut ini contoh mengubah log server Apache di file konfigurasi virtual host.

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/example.com
    
    # Change access log to custom-access.log
    CustomLog /var/log/httpd/custom-access.log combined
    
    # Change error log to custom-error.log
    ErrorLog /var/log/httpd/custom-error.log
</VirtualHost>

Contoh ini mengubah log akses dan kesalahan masing-masing menjadi custom-access.log dan custom-error.log. Anda dapat mengubah nama file log sesuai keinginan Anda dan memperbarui jalur terkait di file konfigurasi host virtual.

Perintah Apache

Berikut beberapa perintah yang sering digunakan saat mengelola Apache:

Hentikan server web Apache:

sudo systemctl stop httpd

Mulai server web Apache:

sudo systemctl start httpd

Mulai ulang server web Apache:

sudo systemctl restart httpd

Muat ulang server web Apache:

sudo systemctl reload httpd

Nonaktifkan Apache saat boot server:

sudo systemctl disable httpd

Aktifkan Apache saat boot server:

sudo systemctl enable httpd

Cara Memperbarui Apache HTTPD

Agar Apache selalu diperbarui, jalankan perintah yang biasa Anda gunakan untuk memeriksa apakah sistem Anda sudah diperbarui.

sudo dnf update --refresh

Penting untuk membuat cadangan atau membuat image sistem Anda sebelum melakukan peningkatan apa pun, karena terkadang bug dapat terjadi. Perintah berikut akan menyegarkan semua paket sistem, termasuk Apache, dan meminta Anda untuk melakukan upgrade.

Cara Menghapus Apache HTTPD

Untuk menghapus instalasi Apache dari sistem Anda, gunakan perintah berikut.

sudo systemctl disable httpd --now

Sekarang, gunakan perintah berikut untuk menghapus Apache sepenuhnya.

sudo dnf remove httpd

File yang tersisa mungkin masih ada di direktori utama /etc/httpd, jadi mari kita hapus folder itu.

sudo rm -R /etc/httpd/

Kesimpulan

Dengan Apache HTTP Server dan Let's Encrypt yang berhasil disiapkan di sistem CentOS Stream Anda, situs web Anda akan menjadi kuat dan aman. Memperbarui Apache secara rutin dan memperbarui sertifikat SSL Let's Encrypt Anda akan membantu menjaga keamanan dan kinerja optimal. Nikmati keandalan dan keamanan yang dihadirkan Apache HTTP Server dan Let's Encrypt ke lingkungan hosting web Anda.

Joshua James
Ikuti aku
Postingan terbaru oleh Joshua James (Lihat semua)

Tinggalkan komentar