1 <?xml version='1.0' encoding='EUC-KR' ?>
2 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
4 <!-- English Revision: 105989:1174747 (outdated) -->
7 Licensed to the Apache Software Foundation (ASF) under one or more
8 contributor license agreements. See the NOTICE file distributed with
9 this work for additional information regarding copyright ownership.
10 The ASF licenses this file to You under the Apache License, Version 2.0
11 (the "License"); you may not use this file except in compliance with
12 the License. You may obtain a copy of the License at
14 http://www.apache.org/licenses/LICENSE-2.0
16 Unless required by applicable law or agreed to in writing, software
17 distributed under the License is distributed on an "AS IS" BASIS,
18 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 See the License for the specific language governing permissions and
20 limitations under the License.
23 <manualpage metafile="apxs.xml.meta">
24 <parentdocument href="./">Programs</parentdocument>
26 <title>apxs - APache eXtenSion µµ±¸</title>
29 <p><code>apxs</code>´Â ¾ÆÆÄÄ¡ ÇÏÀÌÆÛÅؽºÆ® Àü¼Û ÇÁ·ÎÅäÄÝ
30 (HTTP) ¼¹öÀÇ È®Àå¸ðµâÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â µµ±¸ÀÌ´Ù. ÀÌ
31 µµ±¸´Â ¿©·¯ ¼Ò½º¿Í ¿ÀºêÁ§Æ®<var>ÆÄÀÏ</var>À» °¡Áö°í,
32 <module>mod_so</module>ÀÇ <directive
33 module="mod_so">LoadModule</directive> Áö½Ã¾î·Î ½ÇÇàÁß¿¡
34 ¾ÆÆÄÄ¡ ¼¹ö·Î ÀоîµéÀÏ ¼ö ÀÖ´Â µ¿Àû°øÀ¯°´Ã¼(DSO)¸¦ ¸¸µç´Ù.</p>
36 <p>±×·¡¼ ÀÌ·± È®Àå¹æ½ÄÀ» »ç¿ëÇÏ·Á¸é Ç÷¡ÆûÀÌ DSO ±â´ÉÀ»
37 Áö¿øÇÏ°í ¾ÆÆÄÄ¡ <code>httpd</code> ½ÇÇàÆÄÀÏÀ»
38 <module>mod_so</module> ¸ðµâ°ú °°ÀÌ ÄÄÆÄÀÏÇØ¾ß ÇÑ´Ù.
39 <code>apxs</code> µµ±¸´Â ÀÌ Á¶°ÇÀÌ ¸¸Á·ÇÏÁö¾ÊÀ¸¸é ½ÇÇàÇÏÁö
40 ¾Ê´Â´Ù. Á÷Á¢ ¸í·É¾î¸¦ ½ÇÇàÇÏ¿© Á¶°ÇÀÌ ¸¸Á·ÇÏ´ÂÁö ¾Ë¾Æº¼
47 <p>¸ñ·Ï¿¡ <module>mod_so</module> ¸ðµâÀÌ ³ª¿Í¾ß ÇÑ´Ù. Á¶°ÇÀ»
48 ¸¸Á·Çϸé <code>apxs</code> µµ±¸·Î DSO ¸ðµâÀ» ¼³Ä¡ÇÏ¿©
49 ¾ÆÆÄÄ¡¼¹öÀÇ ±â´ÉÀ» ½±°Ô È®ÀåÇÒ ¼ö ÀÖ´Ù:</p>
52 $ apxs -i -a -c mod_foo.c<br />
53 gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c<br />
54 ld -Bshareable -o mod_foo.so mod_foo.o<br />
55 cp mod_foo.so /path/to/apache/modules/mod_foo.so<br />
56 chmod 755 /path/to/apache/modules/mod_foo.so<br />
57 [activating module `foo' in /path/to/apache/etc/httpd.conf]<br />
58 $ apachectl restart<br />
59 /path/to/apache/sbin/apachectl restart: httpd not running, trying to start<br />
60 [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module<br />
61 /path/to/apache/sbin/apachectl restart: httpd started<br />
65 <p>¾Æ±Ô¸ÕÆ® <var>files</var>¿¡´Â C ¼Ò½ºÆÄÀÏ (.c) À̳ª
66 ¿ÀºêÁ§Æ®ÆÄÀÏ (.o), ¶óÀ̺귯¸®¸ðÀ½ (.a)À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
67 <code>apxs</code> µµ±¸´Â È®ÀåÀÚ¸¦ º¸°í ÀÚµ¿À¸·Î C ¼Ò½ºÆÄÀÏÀº
68 ÄÄÆÄÀÏÇÏ°í, ¿ÀºêÁ§Æ®¿Í ¸ðÀ½ÆÄÀÏÀº ¸µÅ©¿¡¸¸ »ç¿ëÇÑ´Ù. ±×·¯³ª
69 ÄÄÆÄÀÏÇÑ ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏ·Á¸é µ¿ÀûÀ¸·Î ÀоîµéÀÏ ¼ö ÀÖ´Â
70 °øÀ¯°´Ã¼·Î »ç¿ëÇϱâÀ§ÇØ ¹Ýµå½Ã ¿ÀºêÁ§Æ®¸¦ À§Ä¡µ¶¸³ÄÚµå(PIC,
71 position independent code)·Î ÄÄÆÄÀÏÇØ¾ß ÇÑ´Ù. GCCÀÇ °æ¿ì
72 <code>-fpic</code>À» »ç¿ëÇÏ¸é µÈ´Ù. ´Ù¸¥ C ÄÄÆÄÀÏ·¯´Â ¼³¸í¼¸¦
73 Âü°íÇϰųª <code>apxs</code>°¡ ¿ÀºêÁ§Æ®ÆÄÀÏÀ» ÄÄÆÄÀÏÇÒ¶§
74 »ç¿ëÇÏ´Â ¿É¼ÇÀ» Âü°íÇ϶ó.</p>
76 <p>¾ÆÆÄÄ¡ÀÇ DSO Áö¿ø¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº
77 <module>mod_so</module> ¹®¼¸¦ Âü°íÇϰųª
78 <code>src/modules/standard/mod_so.c</code> ¼Ò½ºÆÄÀÏÀ» ÀоîºÁ¶ó.</p>
80 <seealso><a href="apachectl.html">apachectl</a></seealso>
81 <seealso><a href="httpd.html">httpd</a></seealso>
83 <section id="synopsis"><title>°³¿ä</title>
84 <p><code><strong>apxs</strong> -<strong>g</strong>
85 [ -<strong>S</strong> <var>name</var>=<var>value</var> ]
86 -<strong>n</strong> <var>modname</var></code></p>
88 <p><code><strong>apxs</strong> -<strong>q</strong>
89 [ -<strong>S</strong> <var>name</var>=<var>value</var> ]
90 <var>query</var> ...</code></p>
92 <p><code><strong>apxs</strong> -<strong>c</strong>
93 [ -<strong>S</strong> <var>name</var>=<var>value</var> ]
94 [ -<strong>o</strong> <var>dsofile</var> ]
95 [ -<strong>I</strong> <var>incdir</var> ]
96 [ -<strong>D</strong> <var>name</var>=<var>value</var> ]
97 [ -<strong>L</strong> <var>libdir</var> ]
98 [ -<strong>l</strong> <var>libname</var> ]
99 [ -<strong>Wc,</strong><var>compiler-flags</var> ]
100 [ -<strong>Wl,</strong><var>linker-flags</var> ]
101 <var>files</var> ...</code></p>
103 <p><code><strong>apxs</strong> -<strong>i</strong>
104 [ -<strong>S</strong> <var>name</var>=<var>value</var> ]
105 [ -<strong>n</strong> <var>modname</var> ]
106 [ -<strong>a</strong> ]
107 [ -<strong>A</strong> ]
108 <var>dso-file</var> ...</code></p>
110 <p><code><strong>apxs</strong> -<strong>e</strong>
111 [ -<strong>S</strong> <var>name</var>=<var>value</var> ]
112 [ -<strong>n</strong> <var>modname</var> ]
113 [ -<strong>a</strong> ]
114 [ -<strong>A</strong> ]
115 <var>dso-file</var> ...</code></p>
118 <section id="options"><title>¿É¼Ç</title>
119 <section id="options.common"><title>°øÅë ¿É¼Ç</title>
121 <dt><code>-n <var>modname</var></code></dt>
122 <dd><code>-i</code> (install)°ú <code>-g</code> (template
123 generation) ¿É¼ÇÀ» »ç¿ëÇÒ¶§ Á÷Á¢ ¸ðµâ¸íÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ
124 ¿É¼ÇÀ» »ç¿ëÇÏ¿© ¸ðµâ¸íÀ» Á÷Á¢ ÁöÁ¤ÇÑ´Ù. <code>-g</code>
125 ¿É¼ÇÀ» »ç¿ëÇÑ´Ù¸é ÀÌ ¿É¼ÇÀ» ¹Ýµå½Ã »ç¿ëÇؾßÇÏ°í,
126 <code>-i</code> ¿É¼ÇÀ» »ç¿ëÇÑ´Ù¸é <code>apxs</code> µµ±¸´Â
127 ¼Ò½º³ª (¸¶Áö¸· ½Ãµµ·Î) ÆÄÀϸíÀ» °¡Áö°í À̸§À» ÃßÃøÇÑ´Ù.</dd>
131 <section id="options.query"><title>ÁúÀÇ ¿É¼Ç</title>
133 <dt><code>-q</code></dt>
134 <dd><code>apxs</code>ÀÇ ¼³Á¤°ªÀ» ¾Ë¾Æ³½´Ù. <var>query</var>¿¡´Â
135 ´ÙÀ½À» »ç¿ëÇÒ ¼ö ÀÖ´Ù: <code>CC</code>, <code>CFLAGS</code>,
136 <code>CFLAGS_SHLIB</code>, <code>INCLUDEDIR</code>,
137 <code>LD_SHLIB</code>, <code>LDFLAGS_SHLIB</code>,
138 <code>LIBEXECDIR</code>, <code>LIBS_SHLIB</code>,
139 <code>SBINDIR</code>, <code>SYSCONFDIR</code>, <code>TARGET</code>.
141 <p>¼³Á¤À» Á÷Á¢ ¾Ë¾Æ³¾¶§ »ç¿ëÇÑ´Ù.</p>
143 INC=-I`apxs -q INCLUDEDIR`
146 <p>¿¹¸¦ µé¾î, ¾ÆÆÄÄ¡ C Çì´õÆÄÀÏÀ» Á÷Á¢ Á¢±ÙÇÑ´Ù¸é
147 Makefile¿¡¼ À§¿Í °°ÀÌ »ç¿ëÇÑ´Ù.</p></dd>
151 <section id="options.conf"><title>¼³Á¤ ¿É¼Ç</title>
153 <dt><code>-S <var>name</var>=<var>value</var></code></dt>
154 <dd>ÀÌ ¿É¼ÇÀº À§¿¡¼ ¼³¸íÇÑ apxs ¼³Á¤À» º¯°æÇÑ´Ù.</dd>
158 <section id="options.template"><title>°ßº»(template) »ý¼º ¿É¼Ç</title>
160 <dt><code>-g</code></dt>
161 <dd>ÇÏÀ§µð·ºÅ丮 <var>name</var>À» ¸¸µé°í (<code>-n</code>
162 ¿É¼Ç Âü°í) ±×°÷¿¡ ÆÄÀÏ µÎ°³¸¦ ¸¸µç´Ù: ÇÑ ÆÄÀÏÀº
163 <code>mod_<var>name</var>.c</code>¶ó´Â °ßº» ¸ðµâ¼Ò½ºÆÄÀÏ·Î,
164 ÀÚ½ÅÀÇ ¸ðµâÀ» ¸¸µé¶§ °ßº»À¸·Î »ç¿ëÇϰųª apxs ±â´ÉÀ»
165 ½ÃÇèÇغ¼¶§ »ç¿ëÇÑ´Ù. ´Ù¸¥ ÆÄÀÏÀº ÀÌ ¸ðµâÀ» ½±°Ô ÄÄÆÄÀÏÇÏ°í
166 ¼³Ä¡ÇϱâÀ§ÇÑ <code>Makefile</code>ÀÌ´Ù.</dd>
170 <section id="options.dso"><title>DSO ÄÄÆÄÀÏ ¿É¼Ç</title>
172 <dt><code>-c</code></dt>
173 <dd>ÄÄÆÄÀÏÀ» Áö½ÃÇÑ´Ù. ¸ÕÀú <var>files</var>¿¡¼ C
174 ¼Ò½ºÆÄÀϵé(.c)À» ¿ÀºêÁ§Æ®ÆÄÀÏ(.o)·Î ÄÄÆÄÀÏÇÏ°í,
175 <var>files</var>ÀÇ ³ª¸ÓÁö ¿ÀºêÁ§Æ®ÆÄÀϵé(.o°ú .a)°ú
176 ¸µÅ©ÇÏ¿© µ¿Àû°øÀ¯°´Ã¼ <var>dsofile</var>À» ¸¸µç´Ù.
177 <code>-o</code> ¿É¼ÇÀ» »ç¿ëÇÏÁö¾ÊÀ¸¸é <var>files</var>ÀÇ
178 ù¹ø° ÆÄÀÏ¸í¿¡¼ À̸§À» ÃßÃøÇÏ¿© º¸Åë
179 <code>mod_<var>name</var>.so</code>¸¦ »ç¿ëÇÑ´Ù.</dd>
181 <dt><code>-o <var>dsofile</var></code></dt>
182 <dd>»ý¼ºÇÒ µ¿Àû°øÀ¯°´Ã¼ ÆÄÀϸíÀ» Á÷Á¢ ÁöÁ¤ÇÑ´Ù. À̸§À»
183 ÁöÁ¤ÇÏÁö¾Ê°í <var>files</var> ¸ñ·Ï¿¡¼ À̸§À» ÃßÃøÇÏÁö
184 ¸øÇÏ¸é ¸¶Áö¸·À¸·Î <code>mod_unknown.so</code>¸¦ À̸§À¸·Î
187 <dt><code>-D <var>name</var>=<var>value</var></code></dt>
188 <dd>ÀÌ ¿É¼ÇÀ» ÄÄÆÄÀÏ ¸í·É¾î·Î Á÷Á¢ Àü´ÞÇÑ´Ù.
189 ÄÄÆÄÀ϶§ ÀÚ½ÅÀÇ defineÀ» Ãß°¡ÇÑ´Ù.</dd>
191 <dt><code>-I <var>incdir</var></code></dt>
192 <dd>ÀÌ ¿É¼ÇÀ» ÄÄÆÄÀÏ ¸í·É¾î·Î Á÷Á¢ Àü´ÞÇÑ´Ù.
193 ÄÄÆÄÀ϶§ include¸¦ ãÀ» µð·ºÅ丮¸¦ Ãß°¡ÇÑ´Ù.</dd>
195 <dt><code>-L <var>libdir</var></code></dt>
196 <dd>ÀÌ ¿É¼ÇÀ» ¸µÄ¿ ¸í·É¾î·Î Á÷Á¢ Àü´ÞÇÑ´Ù.
197 ÄÄÆÄÀ϶§ ¶óÀ̺귯¸®¸¦ ãÀ» µð·ºÅ丮¸¦ Ãß°¡ÇÑ´Ù.</dd>
199 <dt><code>-l <var>libname</var></code></dt>
200 <dd>ÀÌ ¿É¼ÇÀ» ¸µÄ¿ ¸í·É¾î·Î Á÷Á¢ Àü´ÞÇÑ´Ù.
201 ÄÄÆÄÀ϶§ »ç¿ëÇÒ ¶óÀ̺귯¸®¸¦ Ãß°¡ÇÑ´Ù.</dd>
203 <dt><code>-Wc,<var>compiler-flags</var></code></dt>
204 <dd>ÀÌ ¿É¼ÇÀº Ãß°¡ ¿É¼Ç <var>compiler-flags</var>¸¦
205 <code>libtool --mode=compile</code> ¸í·É¾î·Î Àü´ÞÇÑ´Ù.
206 ÄÄÆÄÀÏ·¯ ƯÀ¯ÀÇ ¿É¼ÇÀ» Ãß°¡ÇÒ¶§ »ç¿ëÇÑ´Ù.</dd>
208 <dt><code>-Wl,<var>linker-flags</var></code></dt>
209 <dd>ÀÌ ¿É¼ÇÀº Ãß°¡ ¿É¼Ç <var>linker-flags</var>¸¦
210 <code>libtool --mode=link</code> ¸í·É¾î·Î Àü´ÞÇÑ´Ù. ¸µÄ¿
211 ƯÀ¯ÀÇ ¿É¼ÇÀ» Ãß°¡ÇÒ¶§ »ç¿ëÇÑ´Ù.</dd>
215 <section id="options.dsoinstall">
216 <title>DSO ¼³Ä¡°ú ¼³Á¤ ¿É¼Ç</title>
218 <dt><code>-i</code></dt>
219 <dd>¼³Ä¡¸¦ Áö½ÃÇÑ´Ù. ¿©·¯ µ¿Àû°øÀ¯°´Ã¼¸¦ ¼¹öÀÇ
220 <var>modules</var> µð·ºÅ丮¿¡ ¼³Ä¡ÇÑ´Ù.</dd>
222 <dt><code>-a</code></dt>
223 <dd>¾ÆÆÄÄ¡ <code>httpd.conf</code> ¼³Á¤ÆÄÀÏ¿¡ ÀûÀýÇÑ
224 <directive module="mod_so">LoadModule</directive> ÁÙÀ»
225 Ãß°¡Çϰųª ÀÌ¹Ì ÀÖ´Ù¸é È°¼ºÈÇÏ¿© ¸ðµâÀ» »ç¿ëÇϵµ·Ï
228 <dt><code>-A</code></dt>
229 <dd><code>-a</code>¿Í ºñ½ÁÇÏÁö¸¸, <directive
230 module="mod_so">LoadModule</directive> Áö½Ã¾î ¾Õ¿¡
231 ¿ì¹°Á¤ÀÚ(<code>#</code>)¸¦ ºÙÀδÙ. <em>Áï</em>, ÇöÀç´Â
232 »ç¿ëÇÏÁö¾ÊÁö¸¸ ³ªÁß¿¡ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¸ðµâÀ» ÁغñÇÑ´Ù.</dd>
234 <dt><code>-e</code></dt>
235 <dd>ÆíÁýÀ» Áö½ÃÇÑ´Ù. <code>-a</code> ȤÀº <code>-A</code>
236 ¿É¼Ç°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, <code>-i</code> ¸í·É°ú
237 ºñ½ÁÇÏÁö¸¸ ¸ðµâÀ» ¼³Ä¡ÇÏÁö¾Ê°í ¾ÆÆÄÄ¡
238 <code>httpd.conf</code> ¼³Á¤ÆÄÀϸ¸ ÆíÁýÇÑ´Ù.</dd>
243 <section id="examples"><title>¿¹Á¦</title>
244 <p>¾ÆÆÄÄ¡¼¹öÀÇ ±â´ÉÀ» È®ÀåÇÏ´Â <code>mod_foo.c</code>¶ó´Â
245 ¾ÆÆÄÄ¡ ¸ðµâÀÌ ÀÖ´Ù°í °¡Á¤ÇÏÀÚ. ¸ÕÀú ´ÙÀ½ ¸í·É¾î¸¦ »ç¿ëÇÏ¿©
246 C ¼Ò½º¸¦ ¾ÆÆÄÄ¡ ¼¹ö°¡ ÀоîµéÀÏ °øÀ¯°´Ã¼·Î ÄÄÆÄÀÏÇÑ´Ù:</p>
249 $ apxs -c mod_foo.c<br />
250 /path/to/libtool --mode=compile gcc ... -c mod_foo.c<br />
251 /path/to/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo<br />
255 <p>±×¸®°í ÀÌ °øÀ¯°´Ã¼¸¦ ÀоîµéÀÌ´Â <directive
256 module="mod_so">LoadModule</directive> Áö½Ã¾î¸¦ ¾ÆÆÄÄ¡
257 ¼³Á¤¿¡ Ãß°¡ÇÑ´Ù. <code>apxs</code>´Â ÀÚµ¿À¸·Î °øÀ¯°´Ã¼¸¦
258 "modules" µð·ºÅ丮¿¡ ¼³Ä¡ÇÏ°í <code>httpd.conf</code> ÆÄÀÏÀ»
259 ¾Ë¸Â°Ô ¼öÁ¤ÇÏ¿© °£´ÜÈ÷ ÀÛ¾÷À» ¸¶Ä£´Ù. ´ÙÀ½ °°ÀÌ ½ÇÇàÇÑ´Ù:</p>
262 $ apxs -i -a mod_foo.la<br />
263 /path/to/instdso.sh mod_foo.la /path/to/apache/modules<br />
264 /path/to/libtool --mode=install cp mod_foo.la /path/to/apache/modules
266 chmod 755 /path/to/apache/modules/mod_foo.so<br />
267 [/path/to/apache/conf/httpd.conf¿¡¼ `foo' ¸ðµâÀ» È°¼ºÈÇÑ´Ù]<br />
271 <p>±×·¯¸é ´ÙÀ½°ú °°Àº ÁÙÀ»</p>
274 LoadModule foo_module modules/mod_foo.so
277 <p>¼³Á¤ÆÄÀÏ¿¡ ¾ø´Ù¸é Ãß°¡ÇÑ´Ù. ÀÌ ¼³Á¤À» ±âº»ÀûÀ¸·Î »ç¿ëÇÏÁö
278 ¾Ê´Â´Ù¸é <code>-A</code> ¿É¼ÇÀ» »ç¿ëÇÑ´Ù. <em>Áï</em></p>
281 $ apxs -i -A mod_foo.c
284 <p>apxs¸¦ ½±°Ô »ç¿ëÇÏ·Á°í ´ÙÀ½°ú °°ÀÌ ¾ÆÆÄÄ¡ ¸ðµâ °ßº»°ú
285 MakefileÀ» ¸¸µé ¼ö ÀÖ´Ù:</p>
288 $ apxs -g -n foo<br />
289 Creating [DIR] foo<br />
290 Creating [FILE] foo/Makefile<br />
291 Creating [FILE] foo/modules.mk<br />
292 Creating [FILE] foo/mod_foo.c<br />
293 Creating [FILE] foo/.deps<br />
297 <p>±×·±ÈÄ ¹Ù·Î °ßº» ¸ðµâÀ» °øÀ¯°´Ã¼·Î ÄÄÆÄÀÏÇÏ¿© ¾ÆÆÄÄ¡
298 ¼¹ö°¡ Àеµ·ÏÇÑ´Ù:</p>
302 $ make all reload<br />
303 apxs -c mod_foo.c<br />
304 /path/to/libtool --mode=compile gcc ... -c mod_foo.c<br />
305 /path/to/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo<br />
306 apxs -i -a -n "foo" mod_foo.la<br />
307 /path/to/instdso.sh mod_foo.la /path/to/apache/modules<br />
308 /path/to/libtool --mode=install cp mod_foo.la /path/to/apache/modules
310 chmod 755 /path/to/apache/modules/mod_foo.so<br />
311 [/path/to/apache/conf/httpd.conf¿¡¼ `foo' ¸ðµâÀ» È°¼ºÈÇÑ´Ù]<br />
312 apachectl restart<br />
313 /path/to/apache/sbin/apachectl restart: httpd not running, trying to start<br />
314 [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module<br />
315 /path/to/apache/sbin/apachectl restart: httpd started<br />