Apache i apxs

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Pią, 10 Mar 2000, 23:38:30 CET


Dużo wskazuje na to, że praktycznie od poczatku powstania apxs wogóle ten
skrypt nie był używany w niektórych zastosowaniach do których jest
przeznaczony, a do których teraz chciałbym go zaprząc. Chodzi o
(de)rejestrację modułów.

Opis stanu obecnego.

Przy wołaniach apxs np.:

(rejestracja modułu)
%{_sbindir}/apxs -e -a -n agent_log %{_libexecdir}/mod_log_agent.so

(derejestracja modułu)
%{_sbindir}/apxs -e -A -n agent_log %{_libexecdir}/mod_log_agent.so

podaje się nazwę modułu i nazł pliku z modułem ze ścieżką. Żeby było
śmieszniej nazwa modułu ("<module>") używana w apxs i nazwa pliku modułu
("path/mod_<module2>.so") to jeszcze nie wszystkie wszystkie odmiany nazwy
ponieważ w httpd.conf w linijce z LoadModule używa sie jeszcze
"<module>_module", a poniżej jeszcze w linijce z AddModule wpada jeszcze
"mod_<module>.c".

<module2> do <module> ma się do siebie tak, że jeżeli <module> nie zawiera
znaków "_" to <module2>=<module> ale jeżeli zawiera "_" to uzywa sie nazwy
z zamienioną kolejnością tego co jest przed i po "_".

Przykłady:
- mod_include
  <module>=		include
  <module2>=		include
  path/mod_<module2>.so=lib/apache/mod_include.so
  <module>_module=	include_module

ale drugi przykład:
- mod_db_auth:
  <module>=		db_auth
  <module2>=		auth_db
  path/mod_<module2>.so=lib/apache/mod_auth_db.so
  <module>_module=	db_auth_module

Jak widać trzeba było być Moronem albo pisać to po kilku skrętach żeby
wymyśleć tak poj*ny schemat nazywania i operowania modułach (co ciekawsze
myśli jaki mi w tym momencie przychodzą niestety nie nadaja się na pub
:->).

Koniec z końcem widać, że nawet "twórca" zakręcił się w tym wszystkim i
zamiast w AddModule użyć mod_<module>.c używane jest mod_<module2>.c
co w efekcie końcowym daje dla np. db_auth:

AddModule mod_db_auth.c

zamiast:

AddModule mod_auth_db.c

.. i to jest przyczyną tego, że obecna procedura (de)rejestracji jaka jest
w specu idzie w krzaki.
Tak gruby bład w apxs jest dla mnie dowodem na to, że apxs tak wógóle nie
był szerzej używany do (de)rejestracji modułów.

Najchętniej powyższe to bym wepchnął kobyle w tyłek i jeszcze raz puścił
do ogra żeby się to mogło urodzić jeszcze raz czyli przepisał "in rajt
łej(tiem)".

Rozwiązanie mniej pracochłonne to powymieniać wszędzie na <module> na
<module2> co wiąże się z grzebaniem w sporej ilości plików.

Rozwiazanie ad choc jest takie żeby poprawić apsx żeby używał <module2>
przy generowaniu linii z AddModule .. i od tego by trzeba zacząć ale apxs
jest w perlu, a tu mam pewne niedostatki (składnie oczywiście rozumie sie
bez znajomości jezyka ale najcieżej ranalizuje mi się różne regexpy) i w
zwiazku z tym prosiłbym o pomoc w poprawieniu apxs do takiej postaci żeby
nadawał się do (de)rejestracji modułów.

Baj de łej .. właśnie wyszedł apache 2.0 alfa. Przyjrzałem się temu z
lekka i kurna nie mogę się dopatrzeć w nim niczego rewolucyjnego, a taki
miał być według zapowiedzi ten indianin. W szczególności miano tam zmienić
gospodarkę modułami z czego na pierwszy rzut oka że ograniczono się do
kosmetyki.

kloczek
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*


_________________________
polish linux distribution



Więcej informacji o liście dyskusyjnej pld-devel-pl