58 lines
3.2 KiB
HTML
58 lines
3.2 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
|
|
<TITLE>Apache Overview HOWTO: Writing Apache modules</TITLE>
|
|
<LINK HREF="Apache-Overview-HOWTO-13.html" REL=next>
|
|
<LINK HREF="Apache-Overview-HOWTO-11.html" REL=previous>
|
|
<LINK HREF="Apache-Overview-HOWTO.html#toc12" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="Apache-Overview-HOWTO-13.html">Next</A>
|
|
<A HREF="Apache-Overview-HOWTO-11.html">Previous</A>
|
|
<A HREF="Apache-Overview-HOWTO.html#toc12">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s12">12. Writing Apache modules</A></H2>
|
|
|
|
<P>Apache, like many other successful open source projects, has a modular architecture.
|
|
This means that to add or modify functionality you do not need to know the whole
|
|
code base.
|
|
Source code access for Apache means that you can custom build the server with only the
|
|
modules that you need and include your own.
|
|
<P>Extending Apache can be done in C or in a variety of other languages using appropriate modules.
|
|
These modules expose Apache's internal functionality to different programming languages like Perl or Tcl.
|
|
<P><B>Writing modules in C</B>: Apache is written in C and so are the modules distributed with Apache.
|
|
The best way to get started writing Apache modules is to read Doug MacEachern and Lincoln Stein's book
|
|
<A HREF="http://www.modperl.com">Writing Apache modules with Perl and C</A>. It is a well-written, easy to read book by two
|
|
Apache and Perl gurus. The above link will lead you to the book website, which has some of its chapters online.
|
|
If you don'e have the money to buy the book and cannot borrow it from a friend, there are other ways.
|
|
You can read some of the online tutorials on writing Apache modules: Ken Coar, an Apache Group member, has a nice
|
|
<A HREF="http://web.golux.com/coar/slides/">tutorial and slides online</A>.
|
|
An overview of the Apache architecture can be found
|
|
<A HREF="http://www.grad.math.uwaterloo.ca/~oadragoi/CS746G/a1/apache_conceptual_arch.html">here</A>.
|
|
The Apache website has some
|
|
<A HREF="http://www.apache.org/docs/misc/API.html">API notes</A> that can help you get started. You are also encouraged to browse the
|
|
source code of the modules included with Apache. Apache includes a simple one
|
|
(mod_example.c) for that purpose.
|
|
<P><B>Writing Apache modules in other languages</B>: There is a variety of Apache
|
|
modules that enable third party languages to access the internal Apache API.
|
|
The most popular is
|
|
<A HREF="Apache-Overview-HOWTO-17.html#mod_perl">mod_perl</A>.
|
|
<P>If you have any questions about the development of an Apache module you
|
|
should join the Apache modules mailing list at
|
|
<A HREF="http://modules.apache.org">http://modules.apache.org</A>.
|
|
Remember to do your homework first, research past messages and check
|
|
all the documentation previously described. Chances are somebody had the
|
|
same problem that you are experiencing and he got an useful response.
|
|
<P>If you are interested in the development of core Apache itself, you should
|
|
checkout the
|
|
<A HREF="http://dev.apache.org">Apache development site</A>.
|
|
<P>
|
|
<P>
|
|
<HR>
|
|
<A HREF="Apache-Overview-HOWTO-13.html">Next</A>
|
|
<A HREF="Apache-Overview-HOWTO-11.html">Previous</A>
|
|
<A HREF="Apache-Overview-HOWTO.html#toc12">Contents</A>
|
|
</BODY>
|
|
</HTML>
|