Tutorial Apache untuk Pemula

Daftar Isi

Apakah Apache itu?

Apache adalah perangkat lunak aplikasi yang luar biasa. Ini adalah aplikasi Server Web yang paling banyak digunakan di dunia dengan lebih dari 50% pangsa pasar server web komersial. Apache adalah aplikasi Web Server yang paling banyak digunakan di sistem operasi mirip Unix tetapi dapat digunakan di hampir semua platform seperti Windows, OS X, OS / 2, dll. Kata, Apache, diambil dari nama Native Suku Amerika 'Apache', terkenal dengan keahliannya dalam peperangan dan pembuatan strategi.

Ini adalah aplikasi server web modular berbasis proses yang membuat utas baru dengan setiap koneksi simultan. Ini mendukung sejumlah fitur; banyak dari mereka dikompilasi sebagai modul terpisah dan memperluas fungsionalitas intinya, dan dapat menyediakan segalanya mulai dari dukungan bahasa pemrograman sisi server hingga mekanisme otentikasi. Hosting virtual adalah salah satu fitur yang memungkinkan satu Server Web Apache melayani sejumlah situs web yang berbeda.

Bagaimana menginstal Apache

Ada banyak cara untuk menginstal paket atau aplikasi tersebut. Ada yang terdaftar di bawah -

  1. Salah satu fitur dari aplikasi web open source ini adalah siapa pun dapat membuat penginstal sesuai lingkungannya sendiri. Hal ini memungkinkan berbagai vendor seperti Debian, Red Hat, FreeBSD, Suse, dll. Untuk menyesuaikan lokasi file dan konfigurasi apache dengan mempertimbangkan aplikasi lain yang diinstal dan OS dasar.
  2. Selain menginstalnya dari penginstal berbasis vendor, selalu ada pilihan untuk membangun dan menginstalnya dari kode sumber. Menginstal Apache dari file sumber adalah platform independen & berfungsi untuk semua OS.

Server web apache adalah aplikasi modular di mana administrator dapat memilih fungsionalitas yang diperlukan dan menginstal modul yang berbeda sesuai kebutuhannya.

Semua modul dapat dikompilasi sebagai Dynamic Shared Objects (DSO adalah file objek yang dapat dibagikan oleh beberapa aplikasi saat sedang dijalankan) yang ada secara terpisah dari file apache utama. Pendekatan DSO sangat disarankan karena membuat tugas menambahkan / menghapus / memperbarui modul dari konfigurasi server menjadi sangat sederhana.

Instal Apache: Platform Linux

Pada Red Hat atau sistem berbasis rpm

Jika Anda menggunakan rpm (RedHat Package Manager adalah utilitas untuk menginstal aplikasi pada sistem Linux) berdasarkan distribusi Linux yaitu Red Hat, Fedora, CentOs, Suse, Anda dapat menginstal aplikasi ini dengan Package Manager khusus vendor atau langsung membuat file rpm dari tarball sumber yang tersedia.

Anda dapat menginstal Apache melalui Package Manager default yang tersedia di semua distribusi berbasis Red Hat seperti CentOs, Red Hat dan Fedora.

[root @ amsterdam ~] # yum install httpd

Tarbal sumber apache dapat diubah menjadi file rpm menggunakan perintah berikut.

[root @ amsterdam ~] # rpmbuild -tb httpd-2.4.x.tar.bz2

Paket -devel wajib diinstal pada server Anda untuk membuat file .rpm dari sumber.

Setelah Anda mengonversi file sumber menjadi penginstal rpm, Anda dapat menggunakan perintah berikut untuk menginstal Apache.

[root @ amsterdam] # rpm -ivh httpd-2.4.4-3.1.x86_64.rpm

Setelah instalasi, server tidak dimulai secara otomatis, untuk memulai layanan, Anda harus menggunakan salah satu perintah berikut di Fedora, CentOs atau Red Hat.

[root @ amsterdam ~] # / usr / sbin / apachectl mulai[root @ amsterdam ~] # layanan httpd mulai[root @ amsterdam ~] # /etc/init.d/httpd mulai

Instal Apache dari Source

Menginstal apache dari sumber memerlukan paket -devel untuk diinstal di server Anda… Anda dapat menemukan versi terbaru Apache yang tersedia, Anda dapat mengunduhnya di sini. Setelah Anda mengunduh file sumber, pindahkan ke folder / usr / local / src.

[root @ amserversterdam ~] cd / usr / local / src[root @ amserversterdam ~] gzip -d httpd-2.2.26.tar.gz[root @ amserversterdam ~] tar xvf httpd-2.2.26.tar[root @ amserversterdam ~] httpd-2.2.26

Untuk melihat semua opsi konfigurasi yang tersedia untuk Apache, Anda dapat menggunakan opsi ./configure -help. Opsi konfigurasi yang paling umum adalah -prefix = {install directory name}.

[root @ amserversterdam ~] ./ configure --help[root @ amserversterdam ~] ./ configure -prefix = / usr / local / apache -enable-so[root @ amserversterdam ~] make[root @ amserversterdam ~] instal

Contoh di atas menunjukkan kompilasi Apache di dalam direktori / usr / local / apache dengan kapabilitas DSO. Opsi -enable-so, dapat memuat modul yang diperlukan ke apache pada waktu berjalan melalui mekanisme DSO daripada memerlukan kompilasi ulang.

Setelah penginstalan selesai, Anda dapat menjelajahi halaman default server web dengan browser favorit Anda. Jika firewall diaktifkan di server Anda, Anda harus membuat pengecualian untuk port 80 di firewall OS Anda. Anda dapat menggunakan perintah berikut untuk membuka port 80.

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

layanan iptables simpan

Anda dapat melihat layar Selamat Datang Apache2 default dengan menelusuri alamat IP server Anda.

Apa itu Virtual Host?

Server web Apache dapat menghosting banyak situs web di server yang SAMA . Anda tidak memerlukan mesin server terpisah dan perangkat lunak apache untuk setiap situs web. Ini dapat dicapai dengan menggunakan konsep Virtual Host atau VHost.

Setiap domain yang ingin Anda host di server web Anda akan memiliki entri terpisah di file konfigurasi apache.

Jenis Apache Virtualhost

  1. Host virtual berbasis nama
  2. Host virtual berbasis alamat atau berbasis IP dan.

Host Virtual berbasis nama

Hosting virtual berbasis nama digunakan untuk meng-host beberapa situs virtual pada satu alamat IP.

Untuk mengkonfigurasi hosting virtual berbasis nama, Anda harus mengatur alamat IP di mana Anda akan menerima permintaan Apache untuk semua situs web yang diinginkan. Anda dapat melakukan ini dengan direktif NameVirutalHost dalam konfigurasi apache yaitu file httpd.conf / apache2.conf.

Contoh Apache virtual host:

NameVirtualHost *: 80ServerAdmin Alamat email ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya.DocumentRoot /var/www/html/example1.comServerName www.example1.comServerAdmin Alamat email ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

Anda dapat menambahkan host virtual sebanyak mungkin, sesuai kebutuhan Anda. Anda dapat memeriksa file konfigurasi web Anda dengan:

[root @ amsterdam ~] #httpd -tSintaks OK

Jika file konfigurasi memiliki sintaks yang salah, itu akan menimbulkan kesalahan

[root @ 115 conf.d] # httpd -tKesalahan sintaks pada baris 978 dari /etc/httpd/conf/httpd.conf:Perintah '*' tidak valid, mungkin salah eja atau ditentukan oleh modul yang tidak termasuk dalam konfigurasi server

Virtual host berbasis IP

Untuk menyiapkan hosting virtual berbasis IP, Anda memerlukan lebih dari satu alamat IP yang dikonfigurasi di server Anda. Jadi, jumlah apache vhost akan bergantung pada jumlah alamat IP yang dikonfigurasi di server Anda. Jika server Anda memiliki 10 alamat IP, Anda dapat membuat 10 host virtual berbasis IP.

Dalam diagram di atas, dua situs web example1.com dan example2.com diberi IP berbeda dan menggunakan hosting virtual berbasis IP.

Dengarkan 192.168.0.100:80ServerAdmin Alamat email ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya.DocumentRoot /var/www/html/example1.comServerName www.example1.comServerAdmin Alamat email ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

Apa yang dibutuhkan Apache untuk Menjalankan File Php?

Menjalankan file Php di Apache membutuhkan mod_php diaktifkan di server Anda. Ini memungkinkan Apache untuk menafsirkan file .php. Ini memiliki penangan Php yang menafsirkan kode Php di apache dan mengirim HTML ke server web Anda.

Jika mod_php diaktifkan di server Anda, Anda akan memiliki file bernama php.conf di direktori /etc/httpd/conf.d/. Anda juga dapat memeriksanya dengan:

httpd -M | grep "php5_module"

Outputnya akan mirip dengan:

Penangan php di Apache

  • mod_php
  • CGI
  • FastCGI
  • suPHP

mod_php adalah penangan PHP tertua, ia menjadikan PHP sebagai bagian dari apache dan tidak memanggil proses PHP eksternal apa pun. Modul ini diinstal secara default di setiap repositori distribusi Linux, jadi mengaktifkan / menonaktifkan modul ini sangat mudah.

Jika Anda menggunakan FastCGI sebagai pengendali PHP Anda, Anda dapat mengatur beberapa versi PHP untuk digunakan oleh akun yang berbeda di server Anda.

FastCGI yaitu mod_fastcgi adalah perpanjangan dari mod_fcgid , sedangkan mod_fcgid adalah alternatif CGI berkinerja tinggi yaitu mod_cgi. Ini memulai jumlah yang cukup dari CGI untuk menangani permintaan web bersamaan. Ia juga menggunakan suexec untuk mendukung pengguna yang berbeda dengan contoh PHP mereka sendiri dan meningkatkan keamanan web.

Menjalankan file ruby ​​di Apache membutuhkan mod_ruby untuk diaktifkan. Apache juga dapat menangani file ruby ​​melalui FastCGI. Dimungkinkan untuk menggunakan beberapa versi ruby ​​dengan bantuan mod_fcgid yaitu FastCGI.

Anda juga dapat menginstal penumpang apache dan mengkonfigurasi Apache untuk menggunakannya untuk melayani halaman ruby.

(Phusion Passenger juga dikenal sebagai " penumpang " adalah modul server web gratis yang dirancang untuk berintegrasi dengan Apache dan Nginx)

Langkah-langkah untuk menginstal mod_ruby di server Anda -

cd / tmpwget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gztar zxvf mod_ruby-1.2.6.tar.gzcd mod_ruby-1.2.6 /./configure.rb --with-apr-Included = / usr / include / apr-1membuatbuat instal

Bagaimana menjalankan Ruby dengan Apache

Kita harus menambahkan modul mod_ruby ke konfigurasi Apache yaitu /etc/httpd/conf.d/ruby.conf dan menambahkan baris berikut.

LoadModule ruby_module modules / mod_ruby.so

Jika Anda ingin mengaktifkan atau menonaktifkan modul ini, Anda harus mengedit file konfigurasi apache dan memberi komentar atau menghapus komentar modul ini, jika server web sudah dikompilasi dengan modul ini.

Bagaimana Mengamankan Apache Web Server

Mengamankan server web Anda sangat penting, artinya mengizinkan orang lain untuk hanya melihat informasi yang dimaksudkan & melindungi data Anda serta membatasi akses.

Ini adalah hal umum yang meningkatkan keamanan server web Apache Anda.

1) Menyembunyikan versi Apache dan informasi OS:

Apache menampilkan versinya dan nama sistem operasi dalam kesalahan seperti yang ditunjukkan pada gambar di bawah ini.

Seorang peretas dapat menggunakan informasi ini untuk meluncurkan serangan menggunakan kerentanan yang tersedia untuk umum di versi server atau OS tertentu.

Untuk mencegah server web Apache menampilkan informasi ini, kita harus memodifikasi

Opsi "tanda tangan server" tersedia di file konfigurasi apache. Secara default, ini "on", kita perlu menyetelnya "off".

vim /etc/httpd/conf/httpd.conf
ServerSignature NonaktifServerTokens Prod

Kami juga telah menetapkan "ServerTokens Prod" yang memberi tahu server web untuk hanya mengembalikan apache dan menekan OS versi mayor dan minor

Setelah memodifikasi file konfigurasi, Anda harus me-restart / memuat ulang server web apache Anda untuk membuatnya efektif.

layanan httpd restart

2) Nonaktifkan Daftar Direktori

Jika direktori root dokumen Anda tidak memiliki file indeks, secara default server web apache Anda akan menampilkan semua konten dari direktori root dokumen.

Fitur ini dapat dimatikan untuk direktori tertentu melalui "pilihan direktif" yang tersedia di file konfigurasi Apache.

Opsi -Indeks

3) Menonaktifkan modul yang tidak perlu

Merupakan praktik yang baik untuk menonaktifkan semua modul yang tidak perlu yang tidak digunakan. Anda dapat melihat daftar modul yang diaktifkan yang tersedia di file konfigurasi apache Anda -

[root @ amsterdam ~] #httpd -Mperl_module (dibagikan)php5_module (dibagikan)proxy_ajp_module (dibagikan)python_module (dibagikan)ssl_module (dibagikan)

Banyak dari modul yang terdaftar dapat dinonaktifkan likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, karena mereka hampir tidak digunakan oleh server web produksi.

vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules / mod_auth_digest.so

Setelah Anda memberi komentar pada modul, simpan file tersebut.

Mulai ulang layanan apache dengan perintah berikut.

/etc/init.d/httpd restart

4) Membatasi Akses ke file di luar direktori root web

Jika Anda ingin memastikan bahwa file yang berada di luar direktori root web tidak dapat diakses, Anda harus memastikan bahwa direktori tersebut dibatasi dengan "Allow" dan "Deny option" di file konfigurasi server web Anda.

Opsi Tidak AdaAllowOverride Tidak AdaTolak pesanan, izinkanTolak dari semua

Setelah Anda membatasi akses di luar direktori root web, Anda tidak akan dapat mengakses file apa pun yang terletak di folder lain di server web Anda, Anda akan mendapatkan kode pengembalian 404.

5) Menggunakan mod_evasive untuk membantah serangan DoS

Jika Anda ingin melindungi server web Anda dari Dos (yaitu Denial of Service), Anda harus mengaktifkan modul mod_evasive. Ini adalah modul pihak ketiga yang mendeteksi serangan Dos dan mencegah serangan tersebut melakukan kerusakan sebanyak yang akan dilakukannya jika dibiarkan berjalan dengan sendirinya. Itu bisa diunduh di sini.

Unduh File di atas

6) Menggunakan mod_security untuk meningkatkan keamanan apache

Modul ini berfungsi sebagai firewall untuk Apache dan memungkinkan Anda memantau lalu lintas secara real time. Ini juga mencegah server web dari serangan brute force. Modul mod_security dapat diinstal dengan manajer paket default dari distribusi Anda.

7) Membatasi ukuran permintaan

Apache tidak memiliki batasan apa pun pada ukuran total permintaan http yang dapat menyebabkan serangan DoS. Anda dapat membatasi ukuran permintaan dari direktif Apache "LimitRequestBody" dengan tag direktori. Nilainya dapat diatur mulai dari 0 hingga 2 GB (yaitu 2147483647 byte) sesuai kebutuhan Anda.

LimitRequestBody 512000

Format Log Apache

Log Apache memberikan informasi mendetail yang membantu mendeteksi masalah umum dengan server.

Untuk membuat log akses, mod_log_configmodule harus diaktifkan.

Tiga arahan tersedia dalam file konfigurasi apache yaitu

  • TransferLog: Membuat file log.
  • LogFormat: Menentukan format kustom.
  • CustomLog: Membuat dan memformat file log.

Direktif TransferLog tersedia di file konfigurasi apache dan merotasi file log host virtual sesuai parameter yang ditetapkan.

ServerAdmin Alamat email ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya.DocumentRoot / usr / www / contoh / httpd / htdocs /ServerName www.example.comServerAlias ​​example.com www.exampleErrorLog / usr / www / example / httpd / logs / error_logTransferLog / usr / www / example / httpd / logs / accesslogCustomLog / usr / www / example / httpd / logs / accesslog digabungkan

Dua jenis Format Log Apache

  • Format Log Umum
  • Format Log Gabungan.

Anda dapat mengaktifkannya dengan mengedit file konfigurasi apache yaitu apache2.conf (Debian / ubuntu) atau httpd.conf (sistem berbasis rpm)

Format Log Umum

LogFormat "% h% l% u% t \"% r \ "%> s% b" umumCustomLog logs / access_log common

Log Umum yang dihasilkan oleh Apache

[Rabu 11 Okt 14:32:52 2000] [kesalahan] [klien 127.0.0.1] klien ditolak oleh konfigurasi server: / export / home / live / ap / htdocs / test

Format Log Gabungan

LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-agent} i \ "" digabungkanCustomLog log / access_log digabungkan

Sini,

  • % h adalah host jarak jauh
  • % l adalah identitas pengguna yang ditentukan oleh identd
  • % u adalah nama pengguna yang ditentukan oleh otentikasi HTTP
  • % t adalah waktu server selesai memproses permintaan.
  • % r adalah baris permintaan dari klien. ("GET / HTTP / 1.0")
  • %> s adalah kode status yang dikirim dari server ke klien (500, 404 dll.)
  • % b adalah ukuran respon ke klien (dalam byte)
  • Referer adalah halaman yang ditautkan ke URL ini.
  • Agen-pengguna adalah string identifikasi browser.

Log Gabungan yang dihasilkan oleh Apache:

199.187.122.91 - - [06 / Mar / 2014: 04: 22: 58 +0100] "GET /robots.txt HTTP / 1.1" 404 1228 "-" "Mozilla / 4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1 ; .NET CLR 2.0.50727) "

Custom Log membuat file log terpisah untuk setiap Virtual Host di server Anda. Ini perlu ditentukan di bagian virtual host dari file konfigurasi.

Anda dapat melihat konfigurasi virtual host yang disebutkan di bawah ini, log yang dihasilkan akan dibuat khusus untuk host virtual tersebut dan formatnya akan digabungkan.

Konfigurasikan Server Web Produksi pertama Anda

1. Untuk menjalankan server web produksi, Anda memerlukan node khusus (instance Fisik / Virtual atau cloud) yang menjalankan Linux / Unix, Windows, MacOS, dll.

2. Server Web harus memiliki koneksi jaringan langsung dan alamat staticIP yang dikonfigurasi.

3. Perlu memiliki semua modul yang diperlukan untuk menjalankan halaman web. Jika server web memproses halaman PHP, modul PHP harus diaktifkan.

  1. Itu juga harus memiliki aplikasi Antivirus yang baik dikonfigurasi dan dijalankan untuk mengamankan Server Web dari serangan Malware atau Virus. Anda juga memerlukan mekanisme untuk memperbarui aplikasi antivirus / anti malware yang dikonfigurasi secara teratur tanpa intervensi manual untuk mendapatkan manfaat maksimal darinya.
  2. Jika Anda memiliki ratusan domain untuk dihosting di server web Anda, Anda harus menerapkan batasan pada kuota sistem file untuk setiap domain, jumlah database yang dapat dibuat setiap domain, jumlah akun email per domain, dll.
  3. Jika server web Anda telah disiapkan untuk layanan hosting bersama, pengguna di server web Anda perlu dibatasi . Pengguna shared hosting harus memiliki hak istimewa pengguna paling sedikit sehingga dia tidak merusak file penting & merusak seluruh server. Apache tidak menyediakan fungsionalitas seperti itu dan membutuhkan aplikasi pihak ketiga yang berbeda, penyesuaian OS untuk mencapai hal ini.
  4. Jika Anda menambahkan domain baru di server web Anda, diperlukan pengeditan ratusan file konfigurasi untuk mengaktifkan semua fitur untuk domain yang ditambahkan.
  5. Jika salah satu domain yang dihosting memerlukan setelan PHP yang berbeda dari domain lainnya, menerapkan ini di server web inti Apache sangat rumit dan sangat membutuhkan penyesuaian server web Anda.
  6. Server web produksi memerlukan firewall untuk memblokir lalu lintas yang tidak diinginkan yang dapat menyebabkan beban tinggi pada server Anda. Menerapkan aturan IPTABLE dengan baris perintah sangat kompleks. Diperlukan keahlian lingkungan inti Linux / Unix untuk menulis aturan firewall yang efektif untuk memblokir lalu lintas yang tidak diinginkan. IPTABLE didasarkan pada modul netfilter; Ini adalah firewall tingkat OS yang memungkinkan administrator membuat aturan untuk lalu lintas masuk / keluar di server.
  7. Server web produksi memerlukan beberapa aplikasi berbeda seperti Email , FTP untuk mengunggah file, Sistem Nama Domain untuk domain terparkir. Mengelola semua aplikasi ini pada sistem inti Linux / Unix membutuhkan keahlian pada teknologi masing-masing.

Jadi, dapat dikatakan bahwa mengelola server web untuk beberapa domain adalah tugas yang sangat kompleks dan membutuhkan pengeditan ratusan file konfigurasi, menyesuaikan setiap aplikasi untuk memenuhi hasil yang diinginkan. Memecahkan masalah konfigurasi yang salah akan sangat sulit bagi pemula.

Solusinya menggunakan Cpanel atau software sejenis

Cpanel menyediakan cara grafis untuk mengelola server web Anda . Ini dimaksudkan untuk menyediakan layanan hosting massal yang mudah digunakan dan dikonfigurasi. cPanel telah mengurangi hambatan teknis untuk masuk ke hosting dan manajemen server web. Itu membuat tugas yang kompleks menjadi lebih mudah, ini menyediakan banyak antarmuka web yang berguna dan mudah digunakan yang melakukan tugas administrasi sistem umum yang diperlukan untuk mengoperasikan server web.

cPanel mengompilasi versi perangkat lunaknya sendiri.

Jika Anda harus mengkompilasi ulang server web Anda yaitu apache pada platform Linux normal, Anda harus secara manual memilih / mencari modul yang diperlukan. cPanel menyediakan fungsionalitas Easyapache yang merupakan metode kompilasi server web berbasis skrip.

Ini tidak hanya memberi Anda layanan web tetapi juga Mail, DNS, FTP dan banyak lagi layanan yang diperlukan untuk aplikasi web Anda.

Sebuah tugas yang membutuhkan keahlian pada inti hosting berbasis Linux / Unix seperti menginstal SSL, mengkompilasi ulang Apache dengan modul PHP yang berbeda, memperbarui Keamanan Web, mengonfigurasi aturan IPTABLE yang efektif, Menambahkan pengguna ftp, membuat akun email untuk setiap domain, memindai root dokumen Anda dengan antivirus dan membuat database mudah dilakukan dengan cPanel.

Ini menyediakan banyak skrip yang memperbaiki, menginstal, dan memecahkan masalah tugas administratif umum.

Ini menyediakan fungsionalitas pencadangan dan pemulihan yang menghilangkan kebutuhan untuk menyalin file secara manual ke penyimpanan cadangan. Jika Anda mencadangkan domain Anda, cPanel akan membuat file tar yang akan berisi folder root dokumen, akun email dan surat, akun ftp, database, catatan DNS, dan aplikasi lainnya.

Ini juga menyediakan dokumentasi yang kuat, dan memiliki komunitas pengguna yang sangat besar di mana Anda dapat berdiskusi dan mendapatkan solusi dari masalah Anda.

Jadi, bisa dikatakan bahwa cPanel adalah aplikasi terbaik untuk mengelola server web Anda dengan fitur-fitur yang dibutuhkan. Ini memberi Anda, antarmuka yang mudah digunakan untuk mengelola domain Anda dan mekanisme untuk menghindari kerumitan dalam mengelola Server Web inti.

Ada banyak produk yang bersaing dengan cPanel seperti Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel dll.

Artikel yang menarik...