Debian Etch Apache 2.2 and mod_fastcgi

Posted by Tom Willett Thu, 19 Apr 2007 15:09:00 GMT

I recently got around to upgrading a server I had running Debian Sarge. The upgrade went fairly well except for Apache 2.2 and mod_fcgi. Apache would not load with the version of mod_fcgi I had been using (2.4.2). So I went looking for the fix.

The previous setup I was running I detailed here. I modified this install by upgrading the mod_fastcgi code by doing the following:

cd /usr/local/src
wget http://www.fastcgi.com/dist/mod_fastcgi-SNAP-0404142202.tar.gz
tar -zxf mod_fastcgi-SNAP-0404142202.tar.gz
cd mod_fastcgi-SNAP-0404142202
I then created a file I called ap22.patch in the /usr/local/mod_fastcgi-SNAp-0404142202 directory with the following contents:
----------------------------------- cut -------------------------------------
diff -ruN mod_fastcgi-2.4.2/fcgi.h mod_fastcgi-2.4.2-ap22/fcgi.h
--- mod_fastcgi-2.4.2/fcgi.h    2003-02-04 00:07:37.000000000 +0100
+++ mod_fastcgi-2.4.2-ap22/fcgi.h       2005-12-07 21:05:55.000000000 +0100
@@ -73,6 +73,36 @@
 #define ap_reset_timeout(a)
 #define ap_unblock_alarms()
 
+/* starting with apache 2.2 the backward-compatibility defines for
+ * 1.3 APIs are not available anymore. Define them ourselves here.
+ */
+#ifndef ap_copy_table
+
+#define ap_copy_table apr_table_copy
+#define ap_cpystrn apr_cpystrn
+#define ap_destroy_pool apr_pool_destroy
+#define ap_isspace apr_isspace
+#define ap_make_array apr_array_make
+#define ap_make_table apr_table_make
+#define ap_null_cleanup apr_pool_cleanup_null 
+#define ap_palloc apr_palloc
+#define ap_pcalloc apr_pcalloc
+#define ap_psprintf apr_psprintf
+#define ap_pstrcat apr_pstrcat
+#define ap_pstrdup apr_pstrdup
+#define ap_pstrndup apr_pstrndup
+#define ap_push_array apr_array_push
+#define ap_register_cleanup apr_pool_cleanup_register
+#define ap_snprintf apr_snprintf
+#define ap_table_add apr_table_add
+#define ap_table_do apr_table_do
+#define ap_table_get apr_table_get
+#define ap_table_set apr_table_set
+#define ap_table_setn apr_table_setn
+#define ap_table_unset apr_table_unset
+
+#endif /* defined(ap_copy_table) */
+
 #if (defined(HAVE_WRITEV) && !HAVE_WRITEV && !defined(NO_WRITEV)) || defined WIN32
 #define NO_WRITEV
 #endif
diff -ruN mod_fastcgi-2.4.2/Makefile.AP2 mod_fastcgi-2.4.2-ap22/Makefile.AP2
--- mod_fastcgi-2.4.2/Makefile.AP2      2002-07-29 03:36:34.000000000 +0200
+++ mod_fastcgi-2.4.2-ap22/Makefile.AP2 2005-12-07 20:27:50.000000000 +0100
@@ -20,8 +20,6 @@
 
 all: local-shared-build

 
-install: install-modules
-
 clean:
        -rm -f *.o *.lo *.slo *.la 
 
-------------------------- cut ---------------------------------------------

This patch came from http://www.fastcgi.com/archives/fastcgi-developers/2005-December/004060.html.

Then I applied the patch with:

patch -p 1 < ap22.patch

I copied Makefile.AP2 to Makefile and did the make and install.

cp Makefile.AP2 Makefile
make top_dir=/usr/share/apache2
make install top_dir=/usr/share/apache2

I then restarted apache -- actually started it because it wouldn't start before and it works!

Hope this helps someone. Tomw
Comments

Leave a comment

Comments