Sunday, June 12, 2016

Asas Apache (Part 3) - Main Configuration Files

Main Configuration Files

 

Fail utama configuration apache ni nama dia httpd.conf. Lokasi fail ni dah siap-siap ditentukan bila install apache. Tapi kalau korang nak override lokasi ni boleh je guna command line -f masa nak start httpd daemon.

Kalau korang tak nak longgok semua benda dalam fail utama tu, korang boleh guna directive Include untuk import fail-fail konfigurasi yang lain. Kalau malas nak import satu2, korang boleh guna wildcard (simbol "*") untuk import semua sekaligus. Setiap kali korang tukar apa2 benda dalam fail konfigurasi ni, kena restart httpd daemon barulah konfigurasi yang baru tu berkesan.


Syntax

 

Nak tulis apa2 dalam fail konfigurasi ni kena tau syntax. Syntax ni macam rule atau cara nak menulis mengikut format yang ditetapkan. Kalau korang tak ikut rule ni, server takkan paham apa yang korang nak buat, so nanti akan keluar error.

Cara nak menulis sonang je, setiap baris mestilah ada directive dan diikuti oleh argumen. Directive dengan argumen tu mestilah ada jarak. Kalau argumen tu ada space pulak, korang kena letak quote (simbol ""). Directive ni case-insensitif, maksudnya dia tak kisah korang nak letak huruf besar ke kecik ke campur2 pun boleh. Tapi argumen case-sensitif, tak boleh campur2.

Kalau korang tak nak server baca baris tu, atau nak server abaikan baris, korang boleh letak simbol # depan sekali kat baris tu. Automatik dia akan jadi comment.

Benda2 lain yang server tak kisah (abaikan atau takde error) adalah kalau ada space kat depan Directive atau baris dah sememannya kosong takde isi.

Saiz konfigurasi fail lepas import semua fail-fail berkaitan tak boleh melebihi 16MiB.

Kalau nak test fail tu ada error syntax atau tak, bleh guna command apachectl configtest.

Module

 

httpd ni adalah sejenis modular server. Maksud modular ni korang boleh tambah atau buang mana-mana module yang korang rasa pakai dan tak pakai. Untuk upkan service ni, httpd hanya perlukan core asas je untuk run. Jadi httpd ni sangat ringan dan guna resource sikit je (kalau basic setup lah).

module tambahan yang nak diguna boleh ditambah dalam httpd secara dinamik, maksudnya tak perlu compile semula httpd kalau nak tambah atau buang dengan gunakan directive LoadModule.


Scope of Directive

 

Directive yang korang letak dalam fail konfigurasi tu akan berkesan kat seluruh server. Tapi kalau korang nak dia cuma ada effect kat bahagian tertentu aje dalam server, korang boleh hadkan dalam skop tertentu macam dalam section <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location> dan <LocationMatch>. Maksudnya, directive yang korang buat dalam section2 tersebut hanya akan berkesan untuk lokasi2 tertentu dalam filesystem atau URL tertentu. Kalau nak buat nested pun boleh jugak.

Macam yang aku cakap entry sebelum ni, httpd boleh letak banyak laman web pada satu server.  Bila banyak laman web dah tentulah banyak domain name kan? Ada istilah lain yang dipanggil iaitu Virtual Hosting. Sebab tu company2 web hosting tu boleh buat untung, diorang cuma sediakan satu server je pastu sewakan kat berjuta2 orang. Boleh untung wooo hehehe

Directive tu pun boleh dikecikkan skopnya kalau letak dalam section <VirtualHost>, so dia hanya akan berkesan pada website tertentu aje.

Tapi kena ingat, tak semua directive relevan untuk setiap section. Ada jugak directive yang tak boleh letak dalam section dan kena set as global.


.htaccess Files


Macam yang aku dah citer sebelum ni, fail .htaccess ni special sikit. Tujuannya adalah untuk decentralize management. Kenapa nama dia .htaccess? dot kat depan tu bertujuan untuk hidden kan fail (kalau kat linux, nak hiddenkan fail kena letak dot kat depan). htaccess tu nama default yang digunakan, kalau nak tukar boleh je, guna directive AccessFileName.

Fail .htaccess ni kena letak dalam web folder, bila dah letak kat situ, dia akan apply untuk folder tersebut beserta dengan sub-folder sekali. So setiap kali ada request kat folder tu, fail .htaccess ni pun akan di baca sekali. Maksudnya, tak perlulah nak restart httpd kalau ada buat apa2 perubahan. On the spot boleh pakai.

Fail ni biasanya digunakan oleh programmer yang takde access pada fail utama configuration tu, tapi tak semua directive boleh guna dalam .htaccess.

System admin pun sebenarnya boleh tentukan directive mana yang boleh guna dengan gunakan directive AllowOverride dekat fail utama. Kalau nak lebih security, jangan kasi guna terus fail .htaccess ni hehehe.





















No comments:

Post a Comment