NS Apache webserver adalah opensource dan server web HTTP populer yang terus menikmati pangsa pasar besar-besaran di industri hosting. Ini dikirimkan dengan banyak fitur termasuk peningkatan modul, dukungan multi-protokol, konfigurasi yang disederhanakan, dan dukungan multi-bahasa untuk menyebutkan beberapa saja.
Baca Juga: Cara Menginstal Nginx di CentOS 8
Dalam panduan ini, kami akan memandu Anda melalui pemasangan Apache server web aktif CentOS 8 dan RHEL 8 dengan lingkungan Virtual Host. Pada saat menulis tutorial ini, versi terbaru Apache adalah Apache 2.2.43.
Untuk memulai, perbarui terlebih dahulu CentOS 8 atau RHEL 8 daftar paket sistem menggunakan yang berikut ini: perintah dnf.
$ sudo dnf pembaruan.
Setelah pembaruan selesai, instal Apache server web dengan menjalankan perintah berikut.
$ sudo dnf instal httpd.
Setelah terinstal, Anda dapat memverifikasi versi Apache dengan menjalankan perintah rpm.
$rpm -qi httpd.
Perintah mencetak berbagai informasi seperti versi, tanggal rilis, build, dan arsitektur paket.
Untuk memulai layanan web Apache HTTP, jalankan: perintah systemctl.
$ sudo systemctl mulai httpd.
Untuk mengonfirmasi apakah layanan berjalan, jalankan.
$ sudo systemctl status httpd.
Dari output, 'aktif' status berwarna hijau menunjukkan bahwa server web Apache aktif dan berjalan.
Untuk menghilangkan keraguan bahwa server web sedang berjalan, minta halaman pengujian dari Apache dengan menelusuri alamat IP atau nama domain server Anda seperti yang ditunjukkan.
http://server-ip
Anda dapat memperoleh IP server Anda dengan menjalankan perintah ifconfig. Jika server Anda dihosting di cloud, Anda dapat memperoleh IP publik dengan menjalankan perintah ikal.
$ curl ifconfig.me ATAU. $ curl -4 icanhazip.com.
Saat Anda menelusuri alamat IP server, Anda akan mendapatkan halaman web berikut ditampilkan.
Ini adalah konfirmasi pasti bahwa server web sedang berjalan.
Dengan Apache diinstal dan dijalankan, Anda dapat menggunakan sistemctl alat inspeksi untuk mengelola Apache.
Misalnya, untuk menghentikan Apache, jalankan perintah:
$ sudo systemctl stop httpd.
Untuk memulai layanan sekali lagi, jalankan:
$ sudo systemctl mulai httpd.
Jika Anda telah membuat perubahan pada salah satu file konfigurasinya dan Anda perlu memulai ulang untuk menerapkan perubahan, jalankan perintah:
$ sudo systemctl restart httpd.
Memulai ulang layanan biasanya menyebabkan gangguan layanan. Alternatif yang lebih baik adalah dengan memuat ulang tanpa gangguan koneksi.
$ sudo systemctl memuat ulang httpd.
Untuk memulai server web Apache secara otomatis saat boot atau reboot jalankan perintah di bawah ini. Ini akan memastikan Apache dimulai secara otomatis tanpa campur tangan Anda.
$ sudo systemctl aktifkan httpd.
Jika Anda memilih untuk tidak memulai layanan secara otomatis saat boot, jalankan:
$ sudo systemctl menonaktifkan httpd.
Secara default, server web Apache dikonfigurasi untuk melayani atau menghosting hanya satu situs web. Jika Anda ingin meng-host hanya satu situs web, maka langkah ini tidak diperlukan. Tetapi jika Anda berencana untuk meng-host beberapa domain di server Anda, maka Anda perlu mengonfigurasi host virtual Apache.
Host virtual adalah file terpisah yang berisi konfigurasi yang memungkinkan Anda menyiapkan domain terpisah dari domain default. Untuk panduan ini, kami akan menyiapkan host virtual untuk domain crazytechgeek.info.
Host virtual default terletak di /var/www/html
direktori. Ini hanya berfungsi untuk satu situs. Untuk membuat host virtual terpisah untuk domain kami, kami akan membuat struktur direktori lain di dalam /var/www
direktori seperti yang ditunjukkan.
$ sudo mkdir -p /var/www/crazytechgeek.info/html.
Selain itu, Anda juga dapat membuat direktori untuk menyimpan file log.
$ sudo mkdir -p /var/www/crazytechgeek.info/log.
Selanjutnya, edit izin file menggunakan $USER
variabel lingkungan seperti yang ditunjukkan.
$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html.
Juga, sesuaikan izin direktori webroot seperti yang ditunjukkan.
$ sudo chmod -R 755 /var/www.
Selanjutnya, buat sampel index.html
berkas seperti yang ditunjukkan.
$ sudo vim /var/www/crazytechgeek.info/html/index.html.
Tekan suratnya 'Saya'
pada keyboard dan tempel beberapa contoh konten seperti yang ditunjukkan yang akan ditampilkan di browser web saat menguji host virtual.
Selamat datang di crazytechgeek.info! Kesuksesan! Host virtual crazytechgeek.info aktif dan berfungsi dengan baik!
Simpan dan keluar dari file konfigurasi.
Dengan file indeks sampel dan direktori situs yang dibuat, Anda sekarang dapat melanjutkan dan membuat file host virtual. File host virtual akan berisi konfigurasi situs domain Anda dan menginstruksikan Apache bagaimana ia akan menanggapi permintaan klien.
File host virtual akan berisi konfigurasi situs domain Anda dan menginstruksikan Apache bagaimana ia akan menanggapi permintaan klien. Tetapi melanjutkan, Anda perlu membuat 2 direktori: the situs-tersedia
dan situs-diaktifkan
direktori.
File host virtual akan disimpan di situs-tersedia
direktori sementara situs-diaktifkan
direktori akan berisi tautan simbolis ke host virtual.
Buat kedua direktori seperti yang ditunjukkan.
$ sudo mkdir /etc/httpd/sites-available. $ sudo mkdir /etc/httpd/sites-enabled.
Selanjutnya, ubah file konfigurasi utama server web Apache dan instruksikan Apache di mana menemukan host virtual di dalam direktori yang diaktifkan situs.
$ sudo vim /etc/httpd/conf/httpd.conf.
Tambahkan baris seperti yang ditunjukkan di bagian paling akhir dari file konfigurasi.
SertakanOpsional situs-enabled/*.conf.
Simpan dan keluar.
Sekarang buat file host virtual seperti yang ditunjukkan:
$ sudo vim /etc/httpd/sites-available/crazytechgeek.info.
Tempel konten di bawah ini dan ganti crazytechgeek.info
dengan nama domain Anda sendiri.
Nama server www.crazytechgeek.info ServerAlias crazytechgeek.info DocumentRoot /var/www/crazytechgeek.info/html ErrorLog /var/www/crazytechgeek.info/log/error.log CustomLog /var/www/crazytechgeek.info/log/requests.log digabungkan.
Simpan dan keluar dari file.
Sekarang aktifkan file host virtual dengan membuat tautan simbolis di situs-diaktifkan
direktori.
$ sudo ln -s /etc/httpd/sites-available/crazytechgeek.info.conf /etc/httpd/sites-enabled/crazytechgeek.info.conf.
CentOS 8 dan RHEL 8 kapal dengan SELinux yang merupakan modul keamanan untuk memperkuat keamanan sistem Linux. Karena Anda mengonfigurasi kustom catatan direktori pada langkah sebelumnya, Anda perlu memperbarui beberapa kebijakan SELinux untuk menginstruksikan server web Apache untuk menulis ke direktori.
Ada 2 pendekatan dalam menyesuaikan kebijakan Apache SELinux: Menyesuaikan menyesuaikan kebijakan secara universal & kebijakan pada direktori. Yang terakhir lebih disukai karena lebih disukai.
Mengedit SELinux izin untuk direktori log memberi Anda kendali mutlak atas kebijakan server web Apache. Metode ini cukup panjang dan mengharuskan Anda untuk mengonfigurasi tipe konteks secara manual untuk direktori tambahan yang ditentukan dalam file konfigurasi host virtual.
Sebelum memulai, konfirmasikan terlebih dahulu jenis konteks yang ditetapkan ke direktori log oleh SELinux:
$ sudo ls -dlZ /var/www/crazytechgeek.info/log/
Outputnya harus mirip dengan apa yang kita miliki di bawah ini.
Dari output, konteks yang ditetapkan adalah httpd_sys_content_t. Ini menunjukkan bahwa server web hanya dapat membaca file di direktori log. Anda perlu mengubah konteks ini menjadi httpd_log_t untuk mengaktifkan Apache untuk menghasilkan dan menambahkan entri log ke direktori.
Oleh karena itu, jalankan perintah:
$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"
Jika Anda mendapatkan kesalahan di bawah ini “semanage: perintah tidak ditemukan”.
Ini menyiratkan bahwa paket-paket yang menyediakan manajemen perintah tidak diinstal. Untuk memperbaiki kesalahan ini, Anda perlu menginstal paket-paket itu. Tapi pertama-tama, periksa paket mana yang menyediakan perintah semanage dengan menjalankan:
$ sudo dnf whatprovides /usr/sbin/semanage.
Outputnya memberi kita paket yang menyediakan semanage, yaitu policycoreutils-python-utils.
Sekarang instal paket seperti yang ditunjukkan menggunakan manajer paket DNF.
$ sudo dnf install policycoreutils-python-utils.
Perintah untuk mengubah konteks sekarang harus berfungsi.
$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"
Untuk menyimpan perubahan dan membuatnya tetap ada, keluarkan pemulihan perintah seperti yang ditunjukkan:
$ sudo restorecon -R -v /var/www/crazytechgeek.info/log.
Anda dapat mengonfirmasi perubahan dengan sekali lagi menjalankan perintah:
$ sudo ls -dlZ /var/www/crazytechgeek.info/log/
Pastikan untuk mencatat bahwa jenis konteks telah berubah menjadi httpd_log_t
seperti yang terlihat pada keluaran.
Mulai ulang Apache agar perubahan diterapkan.
$ sudo systemctl restart httpd.
Anda sekarang dapat mengonfirmasi apakah Apache menyimpan file log di direktori log dengan mencantumkan isinya seperti yang ditunjukkan:
$ls -l /var/www/crazytechgeek.info/log/
Anda seharusnya dapat melihat dua file log seperti yang ditunjukkan: log kesalahan dan file log permintaan.
Terakhir, Anda perlu memastikan bahwa server web Apache melayani file host virtual Anda. Untuk melakukan ini, buka browser Anda dan buka alamat IP atau nama domain server Anda:
http://domain-name.
Sempurna! Ini menunjukkan bahwa semuanya berjalan dengan baik dan host virtual kami dilayani seperti yang diharapkan.
Dalam panduan ini, kami telah belajar cara menginstal Apache server web aktif CentOS 8 dan RHEL 8 dan juga cara mengkonfigurasi file host virtual untuk menyajikan konten untuk domain tambahan. Jangan ragu untuk mengonfigurasi beberapa file host virtual yang Anda anggap cocok untuk mengakomodasi domain tambahan.
Jika Anda ingin menyiapkan tumpukan hosting lengkap, saya sarankan Anda instal tumpukan LAMP di CentOS 8.