Apache HTTP Server Version 2.4

apxs�� ����ġ �������ؽ�Ʈ ���� ��������
(HTTP) ������ Ȯ������ �������ϰ� ��ġ�ϴ� �����̴�. ��
������ ���� �ҽ��� ������Ʈ������ ������,
mod_so�� LoadModule ���þ�� �����߿�
����ġ ������ �о���� �� �ִ� ����������ü(DSO)�� �����.
���� �̷� Ȯ������ ����Ϸ��� �÷����� DSO �����
�����ϰ� ����ġ httpd ����������
mod_so ���� ���� �������ؾ� �Ѵ�.
apxs ������ �� ������ �������������� ��������
�ʴ´�. ���� ���ɾ �����Ͽ� ������ �����ϴ��� �˾ƺ�
�� �ִ�
$ httpd -l
��Ͽ� mod_so ����� ���;� �Ѵ�. ������
�����ϸ� apxs ������ DSO ����� ��ġ�Ͽ�
����ġ������ ����� ���� Ȯ���� �� �ִ�:
$ apxs -i -a -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
cp mod_foo.so /path/to/apache/modules/mod_foo.so
chmod 755 /path/to/apache/modules/mod_foo.so
[activating module `foo' in /path/to/apache/etc/apache2.conf]
$ apache2ctl restart
/path/to/apache/sbin/apache2ctl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
/path/to/apache/sbin/apache2ctl restart: httpd started
$ _
�ƱԸ�Ʈ files���� C �ҽ����� (.c) �̳�
������Ʈ���� (.o), ���̺귯������ (.a)�� ����� �� �ִ�.
apxs ������ Ȯ���ڸ� ���� �ڵ����� C �ҽ�������
�������ϰ�, ������Ʈ�� ���������� ��ũ���� ����Ѵ�. ����
�������� ������Ʈ�� ����Ϸ��� �������� �о���� �� �ִ�
������ü�� ����ϱ����� �ݵ�� ������Ʈ�� ��ġ�����ڵ�(PIC,
position independent code)�� �������ؾ� �Ѵ�. GCC�� ���
-fpic�� ����ϸ� �ȴ�. �ٸ� C �����Ϸ��� ��������
�����ϰų� apxs�� ������Ʈ������ �������Ҷ�
����ϴ� �ɼ��� �����϶�.
����ġ�� DSO ������ ���� �� �ڼ��� ������
mod_so ������ �����ϰų�
src/modules/standard/mod_so.c �ҽ������� �о����.
apxs -g
[ -S name=value ]
-n modname
apxs -q
[ -S name=value ]
query ...
apxs -c
[ -S name=value ]
[ -o dsofile ]
[ -I incdir ]
[ -D name=value ]
[ -L libdir ]
[ -l libname ]
[ -Wc,compiler-flags ]
[ -Wl,linker-flags ]
files ...
apxs -i
[ -S name=value ]
[ -n modname ]
[ -a ]
[ -A ]
dso-file ...
apxs -e
[ -S name=value ]
[ -n modname ]
[ -a ]
[ -A ]
dso-file ...
-n modname-i (install)�� -g (template
generation) �ɼ��� ����Ҷ� ���� ������ �����Ѵ�. ��
�ɼ��� ����Ͽ� ������ ���� �����Ѵ�. -g
�ɼ��� ����Ѵٸ� �� �ɼ��� �ݵ�� ����ؾ��ϰ�,
-i �ɼ��� ����Ѵٸ� apxs ������
�ҽ��� (������ �õ���) ���ϸ��� ������ �̸��� �����Ѵ�.-qapxs�� �������� �˾Ƴ���. query����
������ ����� �� �ִ�: CC, CFLAGS,
CFLAGS_SHLIB, INCLUDEDIR,
LD_SHLIB, LDFLAGS_SHLIB,
LIBEXECDIR, LIBS_SHLIB,
SBINDIR, SYSCONFDIR, TARGET.
������ ���� �˾Ƴ��� ����Ѵ�.
INC=-I`apxs -q INCLUDEDIR`
���� ���, ����ġ C ��������� ���� �����Ѵٸ� Makefile���� ���� ���� ����Ѵ�.
-S name=value-g-n
�ɼ� ����) �װ��� ���� �ΰ��� �����: �� ������
mod_name.c��� �ߺ� ���ҽ����Ϸ�,
�ڽ��� ����� ���鶧 �ߺ����� ����ϰų� apxs �����
�����غ��� ����Ѵ�. �ٸ� ������ �� ����� ���� �������ϰ�
��ġ�ϱ����� Makefile�̴�.-c-o �ɼ��� ������������� files��
ù��° ���ϸ����� �̸��� �����Ͽ� ����
mod_name.so�� ����Ѵ�.-o dsofilemod_unknown.so�� �̸�����
����Ѵ�.-D name=value-I incdir-L libdir-l libname-Wc,compiler-flagslibtool --mode=compile ���ɾ�� �����Ѵ�.
�����Ϸ� Ư���� �ɼ��� �߰��Ҷ� ����Ѵ�.-Wl,linker-flagslibtool --mode=link ���ɾ�� �����Ѵ�. ��Ŀ
Ư���� �ɼ��� �߰��Ҷ� ����Ѵ�.-i-aapache2.conf �������Ͽ� ������
LoadModule ����
�߰��ϰų� �̹� �ִٸ� Ȱ��ȭ�Ͽ� ����� ����ϵ���
�����.-A-a�� ���������, LoadModule ���þ� �տ�
�칰����(#)�� ���δ�. ��, �����
������������� ���߿� ����� �� �ֵ��� ����� �غ��Ѵ�.-e-a Ȥ�� -A
�ɼǰ� ���� ����� �� ������, -i ���ɰ�
��������� ����� ��ġ�����ʰ� ����ġ
apache2.conf �������ϸ� �����Ѵ�.����ġ������ ����� Ȯ���ϴ� mod_foo.c���
����ġ ����� �ִٰ� ��������. ���� ���� ���ɾ ����Ͽ�
C �ҽ��� ����ġ ������ �о���� ������ü�� �������Ѵ�:
$ apxs -c mod_foo.c
/path/to/libtool --mode=compile gcc ... -c mod_foo.c
/path/to/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo
$ _
���� �� ������ü�� �о���̴� LoadModule ���þ ����ġ
������ �߰��Ѵ�. apxs�� �ڵ����� ������ü��
"modules" ���丮�� ��ġ�ϰ� apache2.conf ������
�˸°� �����Ͽ� ������ �۾��� ��ģ��. ���� ���� �����Ѵ�:
$ apxs -i -a mod_foo.la
/path/to/instdso.sh mod_foo.la /path/to/apache/modules
/path/to/libtool --mode=install cp mod_foo.la /path/to/apache/modules
...
chmod 755 /path/to/apache/modules/mod_foo.so
[/path/to/apache/conf/apache2.conf���� `foo' ����� Ȱ��ȭ�Ѵ�]
$ _
���� ������ ���� ����
LoadModule foo_module modules/mod_foo.so
�������Ͽ� ���ٸ� �߰��Ѵ�. �� ������ �⺻������ �������
�ʴ´ٸ� -A �ɼ��� ����Ѵ�. ��
$ apxs -i -A mod_foo.c
apxs�� ���� ����Ϸ��� ������ ���� ����ġ ��� �ߺ��� Makefile�� ���� �� �ִ�:
$ apxs -g -n foo
Creating [DIR] foo
Creating [FILE] foo/Makefile
Creating [FILE] foo/modules.mk
Creating [FILE] foo/mod_foo.c
Creating [FILE] foo/.deps
$ _
���� �ٷ� �ߺ� ����� ������ü�� �������Ͽ� ����ġ ������ �е����Ѵ�:
$ cd foo
$ make all reload
apxs -c mod_foo.c
/path/to/libtool --mode=compile gcc ... -c mod_foo.c
/path/to/libtool --mode=link gcc ... -o mod_foo.la mod_foo.slo
apxs -i -a -n "foo" mod_foo.la
/path/to/instdso.sh mod_foo.la /path/to/apache/modules
/path/to/libtool --mode=install cp mod_foo.la /path/to/apache/modules
...
chmod 755 /path/to/apache/modules/mod_foo.so
[/path/to/apache/conf/apache2.conf���� `foo' ����� Ȱ��ȭ�Ѵ�]
apache2ctl restart
/path/to/apache/sbin/apache2ctl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
/path/to/apache/sbin/apache2ctl restart: httpd started
$ _