Упатство:Apache модули

Од Сподели wiki
Прејди на: содржини, барај

Ова е кратко упатство за запознавање со модулите на веб серверот Apache.

Apache HTTP Server е модуларна програма, каде што може да се избира нејзината функционалност според множество на модули кои ќе бидат додадени. Модулите може да бидат статично компајлирани во httpd бинарна датотека кога серверот е инсталиран. Алтернативно, модулите може да се компајлираат како динамични објекти (Dynamic Shared Objects – DSO) кои постојат одделно од главната httpd бинарна датотека.

Нормално, вклучување на еден одреден модул, подразбира изменување на главната конфигурациона датотека и додавање на LoadModule. Во зависност од модулот, можно е да треба да се постават и други конфигурациони наредби.

Независно кој apache MPM (Мулти-процесен модул) користите: apache2-mpm-prefork, apache2-mpm-worker или apache2-mpm-perchild после инсталацијата ќе завршите со стандардните модули: некој веќе активирани, некои само спремни за користење. За разлика од RetHat базираните системи, каде што на пр. ќе бидат вклучени сите модули, Debian пакетот ќе ги вклучи само основните модули.

Еве ги модулите компајлирани внатре во apache2 бинарната датотека: core, http_core, prefork/worker/perchild, mod_access, mod_auth, mod_log_config, mod_logio, mod_env, mod_setenvif, mod_mime, mod_status, mod_autoindex, mod_negotiation, mod_dir, mod_alias, mod_so. Овие модули може да ги видите со командата

# apache2 -l

Овие модули не може да се исклучат без рекомпајлирање на apache пакетот.

Стандардни Apache2 модули, инсталирани и спремни за да бидат активирани: actions, asis, auth_anon, auth_dbm, auth_digest, auth_ldap, cache, cern_meta, cgi, cgid, dav, dav_fs, deflate, disk_cache, expires, ext_filter, file_cache, headers, imap, include, info, ldap, mem_cache, mime_magic, proxy, proxy_connect, proxy_ftp, proxy_http, rewrite, speling, ssl, suexec, unique_id, userdir, usertrack, vhost_alias.

Само еден модул е стандардно активиран: mod_userdir. Овие модули може лесно да се вклучуваат и исклучуваат.

Други apache2 модули: можете да инсталирате додатни apache2 модули кои не се стандардни, ако Ви е потребно. Веројатно ќе сакате да ја инсталирате php подршката на овој начин и други кои ќе Ви бидат потребни. Инсталацијата е стандарден apt процес, на пример:

# apt-get install libapache2-mod-php4

Листа на додатни модули: mod-geoip, mod-jk, mod-mono, mod-perl2,mod-php4, mod-php5, mod-python, mod-rpaf, mod-ruby, mod-suphp.

Кога инсталирате додатен модул, нормално, Debian ќе го вклучи и овозможи. Ако сакате да го исклучите, објаснето е подолу.

Управување со Apache2 модули во Debian

Apache пакетот за Debian, обезбедува единствен начин за управување со модули. Сите записи за конфигурација и вклучување се наоѓаат во посебни датотеки во директориумот /etc/apache2/mods-available/. Овде ќе најдете датотеки како ime_na_modul.load и ако е потребно ime_na_modul.conf. Исто така, сите инсталирани модули ги ставаат своите конфигурациони датотеки на истата локација.

Во директориумот /etc/apache2/mods-enabled/ ќе ги најдете вклучените модули. Овде има симболични линкови до датотеките од mods_available за сите вклучени модули. Само модулите кои се во овој директориум ќе бидат вклучени кога се стартува Apache2. На пример, за вклучување на mod_rewrite потребно е само еден ред во конфигурационата датотека:

cat /etc/apache2/mods-enabled/rewrite.load
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

Па, за да се додаваат модули, треба само да направите правилни симболични врски од mods-available до mods-enabled датотеките. Но, зошто да не се користат алатките кои ги нуди Debian:

a2enmod: вклучува apache2 модул (ова прави врски од .load и .conf датотеките). На пример за да се вклучи модулот rewrite:

# a2enmod rewrite

a2dismod: исклучува apache2 модул (ја брише врската од mod-enable за одреден модул). Пр.:

# a2dismod rewrite

Командата a2enmod без параметри ќе ја даде листата на можности:

# a2dismod
Which module would you like to enable?
Your choices are: actions asis auth_anon auth_dbm auth_digest auth_ldap cache cern_meta cgi cgid dav dav_fs deflate disk_cache expires ext_filter file_cache geoip headers 

imap include info ldap mem_cache mime_magic php4 proxy proxy_connect proxy_ftp proxy_http rewrite rpaf ruby speling ssl suexec unique_id userdir usertrack vhost_alias

Module name?

Командата a2dismod без параметар ќе даде листа на вклучените модули и можност за избор на некој од нив.

# a2dismod
Which module would you like to disable?
Your choices are: actions cgi deflate geoip headers info php4 rewrite rpaf ruby
Module name?

Не заборавајте да го реактивирате apache deamon после правење измени на листата на вклучени модули:

# /etc/init.d/apache2 reload