I want to install mod_perl on a Sun-Fire-V240 solaris machine with Solaris 5.9 installed. Perl 5.8.7 and Apache 2.2.0 are already installed.
I have also installed the fallowing solaris packages: apr-1.2.2 aprutil-1.2.2 expat libiconv gdbm db-4.2.52.NC openssl-0.9.8a gcc-3.3.2 make After that I downloaded mod_perl (http://perl.apache.org/dist/mod_perl-2.0.2.tar.gz) and started with the mod_perl Installation: bash-2.05# perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs MP_APR_CONFIG=/usr/local/apr/bin/apr-config Reading Makefile.PL args from @ARGV MP_APXS = /usr/local/apache2/bin/apxs no conflicting prior mod_perl version found - good. Configuring Apache/2.2.0*/ mod_perl2/2.0.2 Perl/v5.8.7 [ info] generating script t/TEST [ info] generating script ./t/cgi-bin/cookies.pl Writing Makefile for Apache::Test Checking for File::Spec...ok Checking for Cwd...ok [ info] generating script t/TEST Writing Makefile for ModPerl::Registry Writing Makefile for APR::Base64 Writing Makefile for APR::Brigade Writing Makefile for APR::Bucket Writing Makefile for APR::BucketAlloc Writing Makefile for APR::BucketType Writing Makefile for APR::Date Writing Makefile for APR::Error Writing Makefile for APR::Finfo Writing Makefile for APR::IpSubnet Writing Makefile for APR::OS Writing Makefile for APR::Pool Writing Makefile for APR::SockAddr Writing Makefile for APR::Socket Writing Makefile for APR::Status Writing Makefile for APR::String Writing Makefile for APR::Table Writing Makefile for APR::ThreadMutex Writing Makefile for APR::URI Writing Makefile for APR::UUID Writing Makefile for APR::Util Writing Makefile for APR Writing Makefile for Apache2::Access Writing Makefile for Apache2::CmdParms Writing Makefile for Apache2::Command Writing Makefile for Apache2::Connection Writing Makefile for Apache2::Directive Writing Makefile for Apache2::Filter Writing Makefile for Apache2::FilterRec Writing Makefile for Apache2::HookRun Writing Makefile for Apache2::Log Writing Makefile for Apache2::MPM Writing Makefile for Apache2::Module Writing Makefile for Apache2::Process Writing Makefile for Apache2::RequestIO Writing Makefile for Apache2::RequestRec Writing Makefile for Apache2::RequestUtil Writing Makefile for Apache2::Response Writing Makefile for Apache2::ServerRec Writing Makefile for Apache2::ServerUtil Writing Makefile for Apache2::SubProcess Writing Makefile for Apache2::SubRequest Writing Makefile for Apache2::URI Writing Makefile for Apache2::Util Writing Makefile for Apache2 Writing Makefile for ModPerl::Global Writing Makefile for ModPerl::Util Writing Makefile for ModPerl Writing Makefile for ModPerl::WrapXS Note (probably harmless): No library found for -ldb-4.2 Writing Makefile for APR Writing Makefile for APR::Const Writing Makefile for APR::PerlIO Writing Makefile for libaprext Writing Makefile for APR_build Writing Makefile for Apache2::Const Writing Makefile for Apache2_build Writing Makefile for ModPerl::Const Writing Makefile for ModPerl Writing Makefile for ModPerl::XS Writing Makefile for mod_perl2 [warning] mod_perl dso library will be built as mod_perl.so [warning] You'll need to add the following to httpd.conf: [warning] [warning] LoadModule perl_module modules/mod_perl.so [warning] [warning] depending on your build, mod_perl might not live in [warning] the modules/ directory. [warning] Check the results of [warning] [warning] $ /usr/local/apache2/bin/apxs -q LIBEXECDIR [warning] [warning] and adjust the LoadModule directive accordingly. The Makefile process look good. But the following make process prints a lot of errors. bash-2.05# make cd "src/modules/perl" && make make[1]: Entering directory `/tmp/mod_perl-2.0.2/src/modules/perl' gcc -I/tmp/mod_perl-2.0.2/src/modules/perl -I/tmp/mod_perl-2.0.2/xs -I/usr/l ocal/apr/include/apr-1 -I/usr/local/apr/include/apr-1 -I/usr/local/include - I/usr/local/apache2/include -fno-strict-aliasing -pipe -I/usr/local/include -I/usr/local/lib/perl5/5.8.7/sun4-solaris/CORE -DMOD_PERL -DMP_COMPAT_1X -DS OLARIS2=9 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -O -fPIC \ -c mod_perl.c && mv mod_perl.o mod_perl.lo In file included from /usr/local/apache2/include/httpd.h:43, from modperl_apache_includes.h:26, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/ap_config.h:26:23: apr_hooks.h: No such file or directory /usr/local/apache2/include/ap_config.h:27:32: apr_optional_hooks.h: No such file or directory In file included from modperl_apache_includes.h:26, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/httpd.h:54:25: apr_buckets.h: No such file or directory /usr/local/apache2/include/httpd.h:723:21: apr_uri.h: No such file or directory In file included from modperl_apache_includes.h:26, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/httpd.h:925: error: parse error before "apr_uri_t" /usr/local/apache2/include/httpd.h:925: warning: no semicolon at end of struct or union /usr/local/apache2/include/httpd.h:975: error: parse error before '}' token /usr/local/apache2/include/httpd.h:1085: error: parse error before "APR_RING_ENTRY" /usr/local/apache2/include/httpd.h:1085: warning: no semicolon at end of struct or union /usr/local/apache2/include/httpd.h:1095: error: parse error before '*' token /usr/local/apache2/include/httpd.h:1095: warning: data definition has no type or storage class /usr/local/apache2/include/httpd.h:1098: error: parse error before '}' token /usr/local/apache2/include/httpd.h:1199: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/httpd.h:1199: warning: no semicolon at end of struct or union /usr/local/apache2/include/httpd.h:1204: error: parse error before '}' token /usr/local/apache2/include/httpd.h:1204: warning: data definition has no type or storage class /usr/local/apache2/include/httpd.h:1207: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/httpd.h:1207: warning: no semicolon at end of struct or union /usr/local/apache2/include/httpd.h:1208: warning: data definition has no type or storage class /usr/local/apache2/include/httpd.h:1209: error: parse error before '}' token /usr/local/apache2/include/httpd.h:1209: warning: data definition has no type or storage class /usr/local/apache2/include/httpd.h:1218: error: parse error before "core_output_filter_ctx_t" /usr/local/apache2/include/httpd.h:1218: warning: no semicolon at end of struct or union /usr/local/apache2/include/httpd.h:1219: warning: data definition has no type or storage class /usr/local/apache2/include/httpd.h:1220: error: parse error before '}' token /usr/local/apache2/include/httpd.h:1220: warning: data definition has no type or storage class In file included from modperl_apache_includes.h:27, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_config.h:29:23: apr_hooks.h: No such file or directory In file included from modperl_apache_includes.h:27, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_config.h:975: error: parse error before "int" In file included from /usr/local/apache2/include/http_log.h:33, from modperl_apache_includes.h:28, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apr/include/apr-1/apr_thread_proc.h:53: warning: data definition has no type or storage class /usr/local/apr/include/apr-1/apr_thread_proc.h:466: error: parse error before "apr_cmdtype_e" In file included from modperl_apache_includes.h:28, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_log.h:335: error: parse error before "void" In file included from modperl_apache_includes.h:29, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_protocol.h:30:23: apr_hooks.h: No such file or directory In file included from /usr/local/apr/include/apr-1/apr_global_mutex.h:26, from /usr/local/apr/include/apr-1/apr_portable.h:34, from /usr/local/apache2/include/http_protocol.h:31, from modperl_apache_includes.h:29, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apr/include/apr-1/apr_proc_mutex.h:51: warning: data definition has no type or storage class /usr/local/apr/include/apr-1/apr_proc_mutex.h:81: error: parse error before "apr_lockmech_e" In file included from /usr/local/apr/include/apr-1/apr_portable.h:34, from /usr/local/apache2/include/http_protocol.h:31, from modperl_apache_includes.h:29, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apr/include/apr-1/apr_global_mutex.h:76: error: parse error before "apr_lockmech_e" /usr/local/apache2/include/http_protocol.h:33:25: apr_buckets.h: No such file or directory In file included from /usr/local/apache2/include/http_protocol.h:34, from modperl_apache_includes.h:29, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/util_filter.h:26:25: apr_buckets.h: No such file or directory In file included from /usr/local/apache2/include/http_protocol.h:34, from modperl_apache_includes.h:29, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/util_filter.h:137: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/util_filter.h:139: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/util_filter.h:296: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/util_filter.h:310: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/util_filter.h:492: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/util_filter.h:503: error: parse error before '*' token /usr/local/apache2/include/util_filter.h:511: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/util_filter.h:548: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/util_filter.h:559: error: parse error before "apr_bucket_brigade" In file included from modperl_apache_includes.h:29, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_protocol.h:45: error: parse error before "void" /usr/local/apache2/include/http_protocol.h:77: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/http_protocol.h:537: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/http_protocol.h:569: error: parse error before "int" /usr/local/apache2/include/http_protocol.h:608: error: parse error before "apr_bucket_refcount" /usr/local/apache2/include/http_protocol.h:608: warning: no semicolon at end of struct or union /usr/local/apache2/include/http_protocol.h:613: error: parse error before '}' token /usr/local/apache2/include/http_protocol.h:616: error: parse error before "ap_bucket_type_error" /usr/local/apache2/include/http_protocol.h:616: warning: data definition has no type or storage class /usr/local/apache2/include/http_protocol.h:633: error: parse error before '*' token /usr/local/apache2/include/http_protocol.h:633: error: parse error before '*' token /usr/local/apache2/include/http_protocol.h:634: warning: data definition has no type or storage class /usr/local/apache2/include/http_protocol.h:644: error: parse error before '*' token /usr/local/apache2/include/http_protocol.h:646: error: parse error before "apr_bucket_alloc_t" /usr/local/apache2/include/http_protocol.h:646: warning: data definition has no type or storage class /usr/local/apache2/include/http_protocol.h:648: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/http_protocol.h:649: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/http_protocol.h:651: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/http_protocol.h:652: error: parse error before "apr_bucket_brigade" In file included from modperl_apache_includes.h:30, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_main.h:29:26: apr_optional.h: No such file or directory In file included from modperl_apache_includes.h:30, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_main.h:64: error: parse error before "ap_signal_server" In file included from modperl_apache_includes.h:31, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_request.h:44:23: apr_hooks.h: No such file or directory In file included from modperl_apache_includes.h:31, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_request.h:131: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/http_request.h:261: error: parse error before "int" In file included from modperl_apache_includes.h:32, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_connection.h:29:23: apr_hooks.h: No such file or directory /usr/local/apache2/include/http_connection.h:31:25: apr_buckets.h: No such file or directory In file included from modperl_apache_includes.h:32, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_connection.h:94: error: parse error before "conn_rec" /usr/local/apache2/include/http_connection.h:135: error: parse error before '*' token /usr/local/apache2/include/http_connection.h:135: warning: data definition has no type or storage class /usr/local/apache2/include/http_connection.h:143: error: parse error before '*' token /usr/local/apache2/include/http_connection.h:143: error: parse error before '*' token /usr/local/apache2/include/http_connection.h:143: warning: data definition has no type or storage class In file included from modperl_apache_includes.h:33, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_core.h:31:26: apr_optional.h: No such file or directory In file included from modperl_apache_includes.h:33, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/http_core.h:609: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/http_core.h:612: error: parse error before "apr_bucket_brigade" /usr/local/apache2/include/http_core.h:662: error: parse error before "int" /usr/local/apache2/include/http_core.h:680: error: parse error before "ap_ident_lookup" In file included from modperl_apache_includes.h:39, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/util_script.h:29:25: apr_buckets.h: No such file or directory In file included from modperl_apache_includes.h:39, from mod_perl.h:19, from mod_perl.c:16: /usr/local/apache2/include/util_script.h:104: error: parse error before "apr_bucket_brigade" In file included from modperl_common_includes.h:21, from mod_perl.h:20, from mod_perl.c:16: modperl_apr_includes.h:29:21: apr_uri.h: No such file or directory modperl_apr_includes.h:30:22: apr_date.h: No such file or directory modperl_apr_includes.h:31:25: apr_buckets.h: No such file or directory modperl_apr_includes.h:35:22: apr_uuid.h: No such file or directory In file included from modperl_common_includes.h:24, from mod_perl.h:20, from mod_perl.c:16: modperl_common_types.h:22: error: parse error before "apr_uri_t" modperl_common_types.h:22: warning: no semicolon at end of struct or union modperl_common_types.h:25: error: parse error before '}' token modperl_common_types.h:25: warning: data definition has no type or storage class In file included from mod_perl.h:71, from mod_perl.c:16: modperl_types.h:227: error: parse error before "apr_bucket" modperl_types.h:227: warning: no semicolon at end of struct or union modperl_types.h:228: warning: data definition has no type or storage class modperl_types.h:229: error: parse error before '*' token modperl_types.h:229: warning: data definition has no type or storage class modperl_types.h:231: error: parse error before "block" modperl_types.h:231: warning: data definition has no type or storage class modperl_types.h:237: error: parse error before '}' token modperl_types.h:237: warning: data definition has no type or storage class In file included from modperl_util.h:19, from mod_perl.h:72, from mod_perl.c:16: modperl_common_util.h:96: error: parse error before '*' token modperl_common_util.h:96: warning: data definition has no type or storage class In file included from mod_perl.h:84, from mod_perl.c:16: modperl_filter.h:50: error: parse error before '*' token modperl_filter.h:51: error: parse error before "apr_bucket_brigade" modperl_filter.h:55: warning: data definition has no type or storage class modperl_filter.h:57: error: parse error before '*' token modperl_filter.h:57: warning: data definition has no type or storage class modperl_filter.h:62: error: parse error before '*' token modperl_filter.h:66: error: parse error before "apr_bucket_brigade" modperl_filter.h:72: error: parse error before '*' token modperl_filter.h:73: error: parse error before '*' token modperl_filter.h:77: error: parse error before '*' token modperl_filter.h:82: error: parse error before '*' token modperl_filter.h:86: error: parse error before '*' token modperl_filter.h:90: error: parse error before "apr_bucket_brigade" modperl_filter.h:100: error: parse error before '*' token modperl_filter.h:105: error: parse error before '*' token In file included from mod_perl.h:85, from mod_perl.c:16: modperl_bucket.h:19: error: parse error before '*' token modperl_bucket.h:19: error: parse error before '*' token modperl_bucket.h:20: warning: data definition has no type or storage class In file included from mod_perl.c:16: mod_perl.h:155: error: parse error before "modperl_interp_unselect" mod_perl.c: In function `modperl_hook_create_request': mod_perl.c:733: error: dereferencing pointer to incomplete type mod_perl.c:735: error: dereferencing pointer to incomplete type mod_perl.c: In function `modperl_register_hooks': mod_perl.c:840: error: `APR_HOOK_MIDDLE' undeclared (first use in this function) mod_perl.c:840: error: (Each undeclared identifier is reported only once mod_perl.c:840: error: for each function it appears in.) mod_perl.c:843: error: `APR_HOOK_FIRST' undeclared (first use in this function) mod_perl.c:846: error: `APR_HOOK_REALLY_LAST' undeclared (first use in this function) mod_perl.c:855: error: `APR_HOOK_LAST' undeclared (first use in this function) mod_perl.c: In function `modperl_response_init': mod_perl.c:959: error: dereferencing pointer to incomplete type mod_perl.c:960: error: dereferencing pointer to incomplete type mod_perl.c:965: error: dereferencing pointer to incomplete type mod_perl.c:972: error: dereferencing pointer to incomplete type mod_perl.c:973: error: dereferencing pointer to incomplete type mod_perl.c: In function `modperl_response_finish': mod_perl.c:982: error: dereferencing pointer to incomplete type mod_perl.c: In function `modperl_response_handler_run': mod_perl.c:996: error: dereferencing pointer to incomplete type mod_perl.c:997: error: dereferencing pointer to incomplete type mod_perl.c:997: error: dereferencing pointer to incomplete type mod_perl.c: In function `modperl_response_handler': mod_perl.c:1012: error: dereferencing pointer to incomplete type mod_perl.c:1020: error: dereferencing pointer to incomplete type mod_perl.c: In function `modperl_response_handler_cgi': mod_perl.c:1048: error: dereferencing pointer to incomplete type mod_perl.c:1051: error: dereferencing pointer to incomplete type mod_perl.c:1057: error: dereferencing pointer to incomplete type make[1]: *** [mod_perl.lo] Error 1 make[1]: Leaving directory `/tmp/mod_perl-2.0.2/src/modules/perl' make: *** [modperl_lib] Error 2 It seems that some *.h files cannot find apr_*.h files. As you can see in the output of the following find command, the system has found apr_hooks.h. bash-2.05# find / -name apr_hooks.h /opt/qip/apache/install_temp/bindist/include/apr_hooks.h /opt/qip/apache/include/apr_hooks.h /usr/local/apr/include/apr_hooks.h It is very important to solve this problems asap. What do I wrong? Does anybody know if there are exists precompiled mod_perl? Thanks to every reply!