So, the first step is downloading mod_fcgi from http://httpd.apache.org/mod_fcgid/. You can easily find the source code form the link 'your local mirror'.
Then next step is compiling and installing. I believe this step is the most difficult step to find a clue. Well, just the linker problem actually. The following command you need to run. And make sure you have all related Cygwin modules, such as libapr-1 and libuuid-devel.
$ APXS=/usr/sbin/apxs2 ./configure.apxs $ make LDFLAGS="-lapr-1 -laprutil-1 -lhttpd" $ make installThe point is LDFLAGS. Somehow created Makefile does not contain the necessary libraries.
Now, it's time to configure the httpd.conf.
Add this line after your final line of LoadModule
LoadModule fcgid_module lib/apache2/mod_fcgid.soAnd put a file end with
.conf extension in conf.d directory. Then add this configuration in the file.
<Directory /home/*/public_html/fcgi-bin/> SetHandler fcgid-script Options +ExecCGI </Directory>I assume you are using the userdir_module.
When you finish it, then run Apache2. Before run it, make sure your cygserver is running otherwise Cygwin complains.
$ /usr/sbin/cygserver & $ CYGWIN=server /usr/sbin/apachectl2 startOK, let's test. Put this script into the directory 'fcgi-bin' in your public_html directory named hello.cgi.
#!/usr/bin/perl
use CGI::Fast;
while (my $q = CGI::Fast->new) {
print("Content-Type: text/plain\n\n");
foreach $var (sort(keys(%ENV))) {
$val = $ENV{$var};
$val =~ s|\n|\\n|g;
$val =~ s|"|\\"|g;
print "${var}=\"${val}\"\n";
}
}
Make sure you have FCGI module in your platform. Then access http://locahost/~username/fcgi-bin/hello.cgiYou can see the environment variables if it successfully installed. Enjoy.
No comments:
Post a Comment