Solaris:对于Apache 2.4.23 mod_jk.so,对于ColdFusion 10而言,失败

所以有一点历史,如果你想要解决当前的问题,请跳过以下部分。


我们正在从SPARC Solaris 10环境中的Apache 2.2.20升级到Apache 2.4.23。 这台服务器是作为一个虚拟主机服务器,它承载了几个ColdFusion 10应用程序。

为简化升级过程,我们使用OpenCSW.org下载预编译的SPARC Solaris 10软件包,该软件包应包含完全独立的Apache 2.4.23安装所需的所有必备先决条件,以便应用程序所有者可以testing和迁移其应用程序Apache 2.2.20到2.4.23。

不幸的是,我们无法使ColdFusion 10与Apache 2.4.23一起工作。 尝试启动Apache实例的错误导致mod_jk.so由于“ap_log_error”定义中的某些不匹配而可能无法正确加载。 从我的研究中,ColdFusion 10为每个实例提供了自己的ColdFusion主题的Tomcat连接器(mod_jk.so)以供使用,但似乎ColdFusion 10在创build新实例并指定Apache 2.4.23安装位置时继续创build不兼容的Apache 2.2 mod_jk.so。

显然,你可以自己编译mod_jk.so,但是你必须使用Adobe的源代码来连接,因为Adobe对源代码做了某些修改,所以它可以和ColdFusion一起使用。 用户jonathan_morgan在这里做一个详细的post如何完成这个: https : //forums.adobe.com/message/5823263#5823263

所以,虽然我已经能够./configuration连接器,运行“make”总是失败。


我试过用gmake编译这个,下面是一个当前gmake操作的读取,它说明了:

Finished prerequisites of target file 'mod_jk.la'. 

必须重制目标“mod_jk.la”。 gmake [1]:进入目录'/apps/webserver/coldfusion10/connector-source/native/apache-2.0'/ opt / csw / libexec / apr / build-1 / libtool –silent –mode = link / opt / solarisstudio12.4 / bin / cc -std = c99 -I / opt / csw / include / apache2 -DHAVE_CONFIG_H -DUSE_APACHE_MD5 -I ../ common -I ../common -DSOLARIS2 = 10 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -D_LARGEFILE64_SOURCE -xO3 – m32 -xarch = sparc -DSSL_EXPERIMENTAL -DSSL_ENGINE -DHAVE_APR -I / opt / csw / include -I / opt / csw / include -DHAVE_CONFIG_H -DSOLARIS2 = 10 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -D_LARGEFILE64_SOURCE -W1,-m32 -Wl,-xarch = sparc -Wl,-L / opt / csw / bdb48 / lib -Wl,-L / opt / csw / lib -o mod_jk.la -module -rpath / opt / csw / lib / apache2 / modules -avoid-version mod_jk。 … ../common/jk_ajp12_worker.lo ../common/jk_connect.lo ../common/jk_msg_buff.lo ../common/jk_util.lo ../common/jk_ajp13.lo ../common/jk_pool.lo。 ./common/jk_worker.lo ../common/jk_ajp13_worker.lo ../common/jk_lb_worker.lo ../common/jk_sockbuf.lo ../common/jk_map.lo ../common/jk_uri_worker_map.lo ../ C ommon / jk_ajp14.lo ../common/jk_ajp14_worker.lo ../common/jk_md5.lo ../common/jk_shm.lo ../common/jk_ajp_common.lo ../common/jk_context.lo ../common/ jk_url.lo ../common/jk_status.lo将72278(mod_jk.la)PID 26001放在链上。 活儿72278(mod_jk.la)PID 26001 ld:fatal:无法识别的选项'-x'ld:fatal:使用-z帮助选项获取使用信息收获丢失子72278 PID 26001 gmake [1]: * [Makefile:83: mod_jk.la]错误2从链中删除子项72278 PID 26001。 gmake [1]:离开目录'/apps/webserver/coldfusion10/connector-source/native/apache-2.0'收获丢失的孩子6fb90 PID 25992 gmake:* [Makefile:465:all-recursive]错误1删除子6fb90 PID 25992从链。

以下是Solaris操作的结果:

/ opt / csw / libexec / apr / build-1 / libtool –silent –mode = link /opt/solarisstudio12.4/bin/cc -std = c99 -I / opt / csw / include / apache2 -DHAVE_CONFIG_H -DUSE_APACHE_MD5 -I ../ common -I ../common -DSOLARIS2 = 10 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -D_LARGEFILE64_SOURCE -xO3 -m32 -xarch = sparc -DSSL_EXPERIMENTAL -DSSL_ENGINE -DHAVE_APR -I / opt / csw / include -I / opt / csw / include -DHAVE_CONFIG_H -DSOLARIS2 = 10 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -D_LARGEFILE64_SOURCE -Wl,-m32 -Wl,-xarch = sparc -Wl,-L / opt / csw / bdb48 / lib -Wl,-L / opt / csw / lib -o mod_jk.la -module -rpath / opt / csw / lib / apache2 / modules -avoid-version mod_jk.lo ../common/jk_ajp12_worker.lo ../common/jk_connect.lo ../common/jk_msg_buff.lo ../common/jk_util.lo ../common/jk_ajp13.lo ../common/jk_pool.lo ../common/jk_worker.lo ../common/jk_ajp13_worker.lo ../common/jk_lb_worker.lo .. /common/jk_sockbuf.lo ../common/jk_map.lo ../common/jk_uri_worker_map.lo ../common/jk_ajp14.lo ../common/jk_ajp14_worker.lo ../common/jk_md5.lo ../common /jk_shm.lo ../commo n / jk_ajp_co> mmon.lo ../common/jk_context.lo ../common/jk_url.lo ../common/jk_status.lo ld:fatal:无法识别的选项'-x'ld:致命的:使用-z帮助使用信息选项***错误代码2 make:致命错误:目标mod_jk.la' Current working directory /apps/webserver/coldfusion10/connector-source/native/apache-2.0 *** Error code 1 The following command caused the error: fail=; \ if (target_option=k; case ${target_option-} in ?) ;; *) echo "am__make_running_with_option: internal error: invalid" "target option '${target_option-}' specified" >&2; exit 1;; esac; has_opt=no; sane_makeflags=$MAKEFLAGS; if test -n '' && test -n ''; then sane_makeflags=$MFLAGS; else case $MAKEFLAGS in *\\[\ \ ]*) bs=\\; sane_makeflags=命令失败mod_jk.la' Current working directory /apps/webserver/coldfusion10/connector-source/native/apache-2.0 *** Error code 1 The following command caused the error: fail=; \ if (target_option=k; case ${target_option-} in ?) ;; *) echo "am__make_running_with_option: internal error: invalid" "target option '${target_option-}' specified" >&2; exit 1;; esac; has_opt=no; sane_makeflags=$MAKEFLAGS; if test -n '' && test -n ''; then sane_makeflags=$MFLAGS; else case $MAKEFLAGS in *\\[\ \ ]*) bs=\\; sane_makeflags= mod_jk.la' Current working directory /apps/webserver/coldfusion10/connector-source/native/apache-2.0 *** Error code 1 The following command caused the error: fail=; \ if (target_option=k; case ${target_option-} in ?) ;; *) echo "am__make_running_with_option: internal error: invalid" "target option '${target_option-}' specified" >&2; exit 1;; esac; has_opt=no; sane_makeflags=$MAKEFLAGS; if test -n '' && test -n ''; then sane_makeflags=$MFLAGS; else case $MAKEFLAGS in *\\[\ \ ]*) bs=\\; sane_makeflags= mod_jk.la' Current working directory /apps/webserver/coldfusion10/connector-source/native/apache-2.0 *** Error code 1 The following command caused the error: fail=; \ if (target_option=k; case ${target_option-} in ?) ;; *) echo "am__make_running_with_option: internal error: invalid" "target option '${target_option-}' specified" >&2; exit 1;; esac; has_opt=no; sane_makeflags=$MAKEFLAGS; if test -n '' && test -n ''; then sane_makeflags=$MFLAGS; else case $MAKEFLAGS in *\\[\ \ ]*) bs=\\; sane_makeflags= printf'%s \ n'“$ MAKEFLAGS”| sed“s / $ bs $ bs [$ bs $ bs] // g” ;; esac; fi; skip_next=no; strip_trailopt () { flg= ;; esac; fi; skip_next=no; strip_trailopt () { flg= ;; esac; fi; skip_next=no; strip_trailopt () { flg= printf'%s \ n'“$ flg”| sed“s / $ 1。 $ //” ; }; for flg in $sane_makeflags; do test $skip_next = yes && { skip_next=no; continue; }; case $flg in *=*|--*) continue;; -*I) strip_trailopt 'I'; skip_next=yes;; -*I?*) strip_trailopt 'I';; -*O) strip_trailopt 'O'; skip_next=yes;; -*O?*) strip_trailopt 'O';; -*l) strip_trailopt 'l'; skip_next=yes;; -*l?*) strip_trailopt 'l';; -[dEDm]) skip_next=yes;; -[JT]) skip_next=yes;; esac; case $flg in *$target_option*) has_opt=yes; break;; esac; done; test $has_opt = yes); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target= ; }; for flg in $sane_makeflags; do test $skip_next = yes && { skip_next=no; continue; }; case $flg in *=*|--*) continue;; -*I) strip_trailopt 'I'; skip_next=yes;; -*I?*) strip_trailopt 'I';; -*O) strip_trailopt 'O'; skip_next=yes;; -*O?*) strip_trailopt 'O';; -*l) strip_trailopt 'l'; skip_next=yes;; -*l?*) strip_trailopt 'l';; -[dEDm]) skip_next=yes;; -[JT]) skip_next=yes;; esac; case $flg in *$target_option*) has_opt=yes; break;; esac; done; test $has_opt = yes); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target= ; }; for flg in $sane_makeflags; do test $skip_next = yes && { skip_next=no; continue; }; case $flg in *=*|--*) continue;; -*I) strip_trailopt 'I'; skip_next=yes;; -*I?*) strip_trailopt 'I';; -*O) strip_trailopt 'O'; skip_next=yes;; -*O?*) strip_trailopt 'O';; -*l) strip_trailopt 'l'; skip_next=yes;; -*l?*) strip_trailopt 'l';; -[dEDm]) skip_next=yes;; -[JT]) skip_next=yes;; esac; case $flg in *$target_option*) has_opt=yes; break;; esac; done; test $has_opt = yes); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target= echo all-recursive | sed s / -recursive // ; \ case "all-recursive" in \ distclean-* | maintainer-clean-*) list='common apache-2.0' ;; \ *) list='common apache-2.0' ;; \ esac; \ for subdir in $list; do \ echo "Making $target in $subdir"; \ if test "$subdir" = "."; then \ dot_seen=yes; \ local_target="$target-am"; \ else \ local_target="$target"; \ fi; \ (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make $local_target) \ || eval $failcom; \ done; \ if test "$dot_seen" = "no"; then \ make "$target-am" || exit 1; \ fi; test -z "$fail" make: Fatal error: Command failed for target ; \ case "all-recursive" in \ distclean-* | maintainer-clean-*) list='common apache-2.0' ;; \ *) list='common apache-2.0' ;; \ esac; \ for subdir in $list; do \ echo "Making $target in $subdir"; \ if test "$subdir" = "."; then \ dot_seen=yes; \ local_target="$target-am"; \ else \ local_target="$target"; \ fi; \ (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make $local_target) \ || eval $failcom; \ done; \ if test "$dot_seen" = "no"; then \ make "$target-am" || exit 1; \ fi; test -z "$fail" make: Fatal error: Command failed for target ; \ case "all-recursive" in \ distclean-* | maintainer-clean-*) list='common apache-2.0' ;; \ *) list='common apache-2.0' ;; \ esac; \ for subdir in $list; do \ echo "Making $target in $subdir"; \ if test "$subdir" = "."; then \ dot_seen=yes; \ local_target="$target-am"; \ else \ local_target="$target"; \ fi; \ (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make $local_target) \ || eval $failcom; \ done; \ if test "$dot_seen" = "no"; then \ make "$target-am" || exit 1; \ fi; test -z "$fail" make: Fatal error: Command failed for target所有recursion'

由于某些非法选项“-x”,似乎在mod_jk.la失败。 如果-x是一个非法的选项,那么为什么它被configuration为使用这个选项,以及如何或在哪里改变它? 就我所见,文件系统中不存在文件mod_jk.la。 据我的研究可以看出,“-x”是Solaris的ld链接器中被弃用和删除的选项,但是我不知道如何直接指定make操作来忽略-x选项等等。

下面是我的一个操作人员的答案:

CF10最初并没有和Apache 2.4一起工作。 这是更新14(我认为是这样),允许Apache 2.4。 他们需要在通常在8500端口的内置web服务器上运行ColdFusion,然后在CF连接到Apache 2.4之前完全打补丁。


希望这是明确的。 您需要确保您的CF10处于正确的补丁级别。 让我知道这是否有帮助 – 或者如果你希望我们直接参与。 祝你好运!