Question

For my college project, I want to create a simple application server in C that runs over Apache. Like .php, .asp, .jsp, the extension of my files would be .sas.

I have already written a parser which reads the .sas files and generates the output. For example, consider a file index.sas with the below code:

<%   
echo "Hello";  
%>  

Now, if I execute:

sas index.sas

The result would be:

Hello

Now I want to use this program as an application server over Apache just as PHP, Tomcat, etc. work over Apache. I have heard of cgi-bin but I think PHP uses a different approach. I want to learn the approach which PHP uses.

Please advice.

Was it helpful?

Solution

Little correction: Apache HTTP Server is not required to be able to run Apache Tomcat as webserver. Apache Tomcat is at its own already a full fledged webserver. Your confusion is probably caused by the Tomcat Connector which could be used to connect Apache HTTP Server and Apache Tomcat together to be able to serve PHP/JSP behind one same HTTP port.

As to your actual question, PHP can be installed as CGI module or ASAPI (Apache Server API) module. If you want to program a CGI module for Apache HTTP Server, then you may find this document useful. If you want to write an ASAPI module, then you may find those documentations useful.

OTHER TIPS

You need to write a module utilizing the Apache API.

Some basic documentation with examples can be found here.

http://www.auburn.edu/docs/apache/mod/mod_example.html

No, no, no!!! Did I say "no" enough? :)

You don't need to create a new module or look at PHP source code. Talking about re-inventing the wheel using a square boulder.

The easiest thing to do is to use mod_cgi. That is, you use CGI to have Apache forward the request to your SAS interpreter.

[Apache 1.3x] - http://httpd.apache.org/docs/1.3/mod/mod_cgi.html

[Apache 2.0x] - http://httpd.apache.org/docs/2.0/mod/mod_cgi.html

[CGI] - http://en.wikipedia.org/wiki/Common_Gateway_Interface

Now, if you do not want to use CGI (don't know why unless it is expressively forbidden by your homework instructions), then yeah, you will have to create a module. For that take a look at this as an starting point (courtesy of google):

http://threebit.net/tutorials/apache2_modules/tut1/tutorial1.html

Good luck with that, though. It could become labor-intensive.

Hope it helps.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top