<-
Apache > HTTP Server > Documentation > Version 2.4

°ø �2 (DSO) '

¹® 5 � 5±Ù ó°� �) ¹® � Âü� .

9 � � ´¸� � ¸ð� � � � ±â� °á ¸ð á±��4 �� ÄÄ httpd � � � ¸ð ÄÄ � � ¸ð httpd � ¼°� ö¸� °ø �2Dynamic Shared Objects, DSO)� ÄÄ � DSO ¸ð �� ÄÄ � ÄÄ � °Å , Apache Extension Tool (apxs) �) $ ÄÄ � 6�

¹® DSO ¸ð �) � ¹è°æ � �

Âü

top

±¸

9 �, � ÄÄ � �< mod_so.c� ¸ð 9 ¸ð �4�4±â DSO� ' ¸ð core� � � DSO� � ¸ð� � � ¤¸� ¸ð 9 ¸ð � ¹® configure --enable-module=shared � �) DSO� ÄÄ � ¸ð mod_foo.so � DSO� ÄÄ � apache2.confmod_so LoadModule ¸÷4 �) � � � � ¸ð �4�

9 ¸ð (� � � � ¸ð )� �) DSO � � ¸Å±â apxs (APache eXtenSion)� � ' á±�� á±�� 9 ¸¸� � DSO� �) ¸ð ÄÄ � �) � � 9� � configure make install 9 C �� � �, DSO � ÄÄ � ±â � ÄÄ � � � �; � apxs á±�� ±â ±× apxs� �) �) 9 ¹è ¬º� ¸¸� DSO ' � ÄÄ � � �; � °æ � � 9 ¸ð � ÄÄ �

top

�) /a>

Apache 2.2 DSO ±â� ª �5 �4

  1. ¹è ¬º� 9 ¸ð ÄÄ � � � °æ � � mod_foo.c� DSO mod_foo.so�:

    $ ./configure --prefix=/path/to/install --enable-foo=shared
    $ make install

  2. � � � 9 ¸ð ÄÄ � � � °æ � � mod_foo.c� DSO mod_foo.so�:

    $ ./configure --add-module=module_type:/path/to/3rdparty/mod_foo.c --enable-foo=shared
    $ make install

  3. °ø ¸ð $ �) ±â /em> 9� ±¸1 °æ

    $ ./configure --enable-so
    $ make install

  4. � � � 9 ¸ð ÄÄ � � � °æ apxs� �) 9 ¸¸� � mod_foo.c� DSO mod_foo.so�:

    $ cd /path/to/3rdparty
    $ apxs -c mod_foo.c
    $ apxs -i -a -n foo mod_foo.la

¸ð °æ � °ø ¸ð ÄÄ � � apache2.conf LoadModule � �) 9� � ¸ð �4�4 �

top

¹è°æ'

°ø �2/em> (DSO) ��dynamic linking/loading)�� � � = Á¶ ¸Å � $ � á±�� ÁÖ °ø �4�4 �' ±â�

º¸ �' ¹æ� �4� � á±�� ld.so� � á±�� � �4�4 °æ0 , ¤¸� � $ á±�� dlopen()/dlsym() � � � �(loader) � � � �$ �) ' �4�4 °æ0

ù ' °æ DSO� º¸ °ø<4ì¸�(shared libraries)DSO �4ì¸�� ö¸£¸�, � libfoo.so libfoo.so.1.2 � � �' �� � æº� /usr/lib) �, ÄÄ � �; ¸÷4 -lfoo� ÁÖ � ¼°� °°� � � ' � �4ì¸� � � ÂüÁ¶� , á±�� �; � -R� ' ' °æ , °æ LD_LIBRARY_PATH� ' °æ � /usr/lib �� libfoo.so� ã ±×ì¸� � á±�� (' ¸øÃ£(unresolved)) ¬º�(symbol) DSO ã

DSO º¸ � á±�� ¬º� ã � ¹® (DSO� �,)� � = �4ì¸�� �) ã±â ¬±� �� ¬º� ã±â� �� �� � á±�� ' DSO ¬º� ã � (� ld.so� ö¸� = ¸ð � á±�� ¸È � = � ) °ø � �4ì¸� =� � �4�4 � � �4ì¸� =� ¸ð á±�� $º¹ � � libc.so � � �4ì¸� �� � � ¹® � °ø �

�' °æ DSO� º¸ °ø �2shared objects)DSO /em>�� ö¸� , (�9 � foo.so� �) � � � �� º¸ á±� 2 ¸® 9� � á±�� � °°�' � á±�� � dlopen() �) DSO� ÁÖ °ø ' �4�, � � á±�� DSO ¬º� ã � � � � ¼°� � � � �4� DSO �4ì¸�(� Á¸, libc.so ¸ð ¬º�) DSO (' ¸øÃ£) ¬º� ã ±× DSO �9 2� � á±�� � ¸È �� � � � ¬º� �

DSO API� �) ±â4 �'¹ü � á±�� dlsym()� DSO � ¬º� ã , � �) ±â � � (dispatch) /em> � ¤¸� �� � á±�� �) ¸ð ¤º� ' ã< � ±¸Á¶ � á±�� � � á±�� �' �4�4 (±× é¸ð¸�� ' �) � � ±âº» á±�� ±â� � ±â °æ �� � �4�

� DSO ±¸Á¶� �$� º¸4 �, 5 �� �' á±�� � ±â DSO� �) DSO� � á±�� ¬º� ã �4 ? DSO� � á±�� ¬º� "� ã �" (�4ì¸� �) á±�� ¸ð¸¥� ) �4ì¸� � �� ¸ð � ''� $' � ¹®4 � � � � ¬º�(global symbol) º¸ �$ � export)' ±â ¹® DSO� �) DSO� �) � $ á±�� � ¤¸� çÄ� � ¸ð ¬º� �$ � � � � � ÁÖ ´°áÌt

°ø<4ì¸� DSO ¹æ � 9� ´±â¹� � ü � °ø °Å ¸ð "� �4ì¸�� �) �� � á±�� á±�� � ±â °ø °Ã� �) '

1998 � $ � � ±â� � ±â DSO ±¸Á¶� �) �( � � (XS ±¸Á¶ DynaLoader ¸ð �) ) Perl 5, Netscape Server /em>� ¹° 9 � ±â� � ±â ¸ð � �) � � ¸ð 9 �,±â� °°á±� �� � � ¸ñ �) ±Ù¹æ� �) ±â ¹® 1.3 �� � � ±× 9 � $ ¸ð �4�4 DSO� �) � � '!

top

��

� DSO� �) � � � � �

DSO � � � �

�% �  en� |  fr� |  ja� |  ko� |  tr�

top

Comments

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.