GNU/Linux >> Belajar Linux >  >> Linux

Cara mengkonfigurasi server web Apache

Saya telah meng-host situs web saya sendiri selama bertahun-tahun sekarang. Sejak beralih dari OS/2 ke Linux lebih dari 20 tahun yang lalu, saya telah menggunakan Apache sebagai perangkat lunak server saya. Apache solid, terkenal, dan cukup mudah dikonfigurasi untuk instalasi dasar. Tidak terlalu sulit untuk mengonfigurasinya untuk penyiapan yang lebih kompleks, seperti beberapa situs web.

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Instalasi dan konfigurasi server web Apache harus dilakukan sebagai root. Konfigurasi firewall juga perlu dilakukan sebagai root. Menggunakan browser untuk melihat hasil pekerjaan ini harus dilakukan sebagai pengguna non-root. (Saya menggunakan pengguna student di host virtual saya.)

Pemasangan

Catatan:Artikel ini telah diperbarui menggunakan Fedora 33 dengan Apache 2.4.46. Jika Anda menggunakan distribusi yang berbeda atau rilis Fedora yang berbeda, perintah Anda dan lokasi serta konten file konfigurasi mungkin berbeda. Namun, baris konfigurasi yang perlu Anda ubah adalah sama terlepas dari distribusinya.

Server web Apache mudah dipasang. Dengan satu perintah, Anda dapat menginstalnya dan semua dependensi yang diperlukan:

$ dnf install httpd

Semua file konfigurasi untuk Apache terletak di /etc/httpd/conf dan /etc/httpd/conf.d . Data untuk situs web yang akan Anda jalankan dengan Apache terletak di /var/www secara default, tetapi Anda dapat mengubahnya jika mau.

Konfigurasi

File konfigurasi Apache utama adalah /etc/httpd/conf/httpd.conf . Ini berisi banyak pernyataan konfigurasi yang tidak perlu diubah untuk instalasi dasar. Sebenarnya, hanya sedikit perubahan yang harus dilakukan pada file ini untuk mengaktifkan dan menjalankan situs web dasar. Filenya sangat besar jadi, daripada mengacaukan artikel ini dengan banyak hal yang tidak perlu, saya hanya akan menunjukkan arahan yang perlu Anda ubah.

Pertama, luangkan sedikit waktu dan telusuri httpd.conf file untuk membiasakan diri dengan itu. Salah satu hal yang saya suka tentang versi Red Hat dari sebagian besar file konfigurasi adalah jumlah komentar yang menjelaskan berbagai bagian dan arahan konfigurasi dalam file. httpd.conf file tidak terkecuali, karena dikomentari dengan cukup baik. Gunakan komentar ini untuk memahami apa yang sedang dikonfigurasi file.

Item pertama yang diubah adalah Listen pernyataan, yang mendefinisikan alamat IP dan port tempat Apache mendengarkan permintaan halaman. Saat ini, Anda hanya perlu membuat situs web ini tersedia untuk mesin lokal, jadi gunakan localhost alamat. Garisnya akan terlihat seperti ini ketika Anda selesai:

Listen 127.0.0.1:80

Dengan direktif ini disetel ke alamat IP localhost , Apache hanya akan mendengarkan koneksi dari host lokal. Jika Anda ingin server web mendengarkan koneksi dari host jarak jauh, Anda akan menggunakan alamat IP eksternal host.

DocumentRoot direktif menentukan lokasi file HTML yang membentuk halaman situs web. Garis tersebut tidak perlu diubah karena sudah menunjuk ke lokasi standar. Barisnya akan terlihat seperti ini:

DocumentRoot "/var/www/html"

RPM instalasi Apache membuat /var/www pohon direktori. Jika Anda ingin mengubah lokasi penyimpanan file situs web, item konfigurasi ini digunakan untuk melakukannya. Misalnya, Anda mungkin ingin menggunakan nama yang berbeda untuk www subdirektori untuk membuat identifikasi situs web lebih eksplisit. Itu mungkin terlihat seperti ini:

DocumentRoot "/var/mywebsite/html"

Ini adalah satu-satunya perubahan konfigurasi Apache yang diperlukan untuk membuat situs web sederhana. Untuk latihan kecil ini, hanya satu perubahan yang dilakukan pada httpd.conf file—Listen pengarahan. Segala sesuatu yang lain sudah dikonfigurasi untuk menghasilkan server web yang berfungsi.

Namun, satu perubahan lain diperlukan:membuka port 80 di firewall kami. Saya menggunakan iptables sebagai firewall, jadi saya mengubah /etc/sysconfig/iptables untuk menambahkan pernyataan yang mengizinkan protokol HTTP. Seluruh file terlihat seperti ini:

# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Baris yang saya tambahkan adalah baris ketiga dari bawah, yang memungkinkan lalu lintas masuk pada port 80. Sekarang saya memuat ulang konfigurasi iptables yang diubah.

[root@testvm1 ~]# cd /etc/sysconfig/ ; iptables-restore iptables

Buat file index.html

index.html file adalah file default yang akan disajikan server web saat Anda mengakses situs web hanya menggunakan nama domain dan bukan nama file HTML tertentu. Dalam /var/www/html direktori, buat file dengan nama index.html . Tambahkan konten Hello World . Anda tidak perlu menambahkan markup HTML apa pun untuk membuatnya berfungsi. Satu-satunya tugas server web adalah menyajikan aliran data teks, dan server tidak tahu tanggal berapa atau bagaimana merendernya. Ini hanya mengirimkan aliran data ke host yang meminta.

Setelah menyimpan file, atur kepemilikan menjadi apache.apache .

[root@testvm1 html]# chown apache.apache index.html

Mulai Apache

Apache sangat mudah untuk memulai. Versi Fedora saat ini menggunakan systemd . Jalankan perintah berikut untuk memulainya dan kemudian untuk memeriksa status server:

[root@testvm1 ~]# systemctl start httpd
[root@testvm1 ~]# 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 Thu 2018-02-08 13:18:54 EST; 5s ago
     Docs: man:httpd.service(8)
 Main PID: 27107 (httpd)
   Status: "Processing requests..."
    Tasks: 213 (limit: 4915)
   CGroup: /system.slice/httpd.service
           ├─27107 /usr/sbin/httpd -DFOREGROUND
           ├─27108 /usr/sbin/httpd -DFOREGROUND
           ├─27109 /usr/sbin/httpd -DFOREGROUND
           ├─27110 /usr/sbin/httpd -DFOREGROUND
           └─27111 /usr/sbin/httpd -DFOREGROUND

Feb 08 13:18:54 testvm1 systemd[1]: Starting The Apache HTTP Server...
Feb 08 13:18:54 testvm1 systemd[1]: Started The Apache HTTP Server.

Perintah mungkin berbeda di server Anda. Pada sistem Linux yang menggunakan skrip mulai SystemV, perintahnya adalah:

[root@testvm1 ~]# service httpd start
Starting httpd: [Fri Feb 09 08:18:07 2018]          [  OK  ]
[root@testvm1 ~]# service httpd status
httpd (pid  14649) is running...

Jika Anda memiliki browser web seperti Firefox atau Chrome di host Anda, Anda dapat menggunakan URL localhost pada baris URL browser untuk menampilkan halaman web Anda, sesederhana itu. Anda juga dapat menggunakan browser web mode teks seperti Lynx untuk melihat halaman web. Pertama, instal Lynx (jika belum diinstal).

[root@testvm1 ~]# dnf -y install lynx

Kemudian gunakan perintah berikut untuk menampilkan halaman web.

[root@testvm1 ~]# lynx localhost

Hasilnya terlihat seperti ini di sesi terminal saya. Saya telah menghapus banyak ruang kosong di halaman.

  Hello World

<snip>


Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
  Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
 H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Selanjutnya, edit index.html Anda file dan tambahkan sedikit markup HTML sehingga terlihat seperti ini:

<h1>Hello World</h1>

Sekarang segarkan browser. Untuk Lynx, gunakan kombinasi tombol Ctrl+R. Hasilnya terlihat sedikit berbeda. Teks berwarna, begitulah cara Lynx menampilkan judul jika terminal Anda mendukung warna, dan sekarang berada di tengah. Di browser GUI, teks akan menggunakan font besar.

                                   Hello World

<snip>


Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
  Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
 H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Pemikiran perpisahan

Seperti yang dapat Anda lihat dari latihan kecil ini, mudah untuk menyiapkan server web Apache. Spesifiknya akan bervariasi tergantung pada distribusi Anda dan versi Apache yang disediakan oleh distribusi tersebut. Di lingkungan saya, ini adalah latihan yang cukup sepele.

Tapi ada lebih karena Apache sangat fleksibel dan kuat. Bulan depan saya akan membahas hosting beberapa situs web menggunakan satu instance Apache.

Artikel ini awalnya diterbitkan pada tahun 2018 dan telah diperbarui oleh editor.


Linux
  1. Cara menginstal Apache Web Server di Centos 8

  2. Cara Menginstal Server Web Apache di Ubuntu

  3. Bagaimana cara memeriksa kesalahan sintaks dalam konfigurasi server web Apache saya

  1. Cara mengkonfigurasi beberapa situs web dengan server web Apache

  2. Cara Instal Apache Web Server di CentOS 7

  3. Cara Menginstal dan mengkonfigurasi server web Apache di Ubuntu 13.10

  1. Cara menghapus server web Apache dari Ubuntu

  2. Kerentanan HTTPOXY:Cara melindungi dan menguji server web Anda

  3. Cara menginstal server web Apache di Linux