You're now viewing all of my posts relating to Apache. Enjoy!

FastCGI on Apache >= 2.2

So, most people won't care about this but I know that I'll want it in the future. If you're running into "ap_null_cleanup undeclared" errors while trying to compile FastCGI with Apache >= 2.2 then the wiki entry for getting Ruby on Rails setup under Fedora will prove useful. Apparently backwards compatibility APIs were removed in 2.2, so there's a patch on that wiki for fixing fcgi.h to include the defines. Just in case that wiki dies, here is the patch:

@@ -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