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
������
�ҽ��� (������ �õ���) ���ϸ��� ������ �̸��� �����Ѵ�.-q
apxs
�� �������� �˾Ƴ���. 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 dsofile
mod_unknown.so
�� �̸�����
����Ѵ�.-D name=value
-I incdir
-L libdir
-l libname
-Wc,compiler-flags
libtool --mode=compile
���ɾ�� �����Ѵ�.
�����Ϸ� Ư���� �ɼ��� �߰��Ҷ� ����Ѵ�.-Wl,linker-flags
libtool --mode=link
���ɾ�� �����Ѵ�. ��Ŀ
Ư���� �ɼ��� �߰��Ҷ� ����Ѵ�.-i
-a
apache2.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
$ _