日期:2014-05-17 浏览次数:20863 次
1.问题一 LoadModule vhost_alias_module /usr/alibaba/apache2/modules/mod_vhost_alias.so?
需要module目录下的各种so,但是在编译的apache下却没有。解决办法 在编译的参数中中添加 ?
--enable-mods-shared=all 会将所有的模块编译出来到 /module目录下?
--enable-mods-shared=most 会编译部分数据 ?到 /module目录下?
--enable-mods-shared='ssl vhost_alias' 会变异 出来 mod_ssl.so mod_vhost_alias.so?
前提: 必须加 --enable-so 而且这参数必须在 --enable-mods-shared 参数前面
?
还有种 加 --enable-headers 但是这种方式试了下,但是没有将相应的 so生成!?
?
2.问题二 在64位机子下会报:
/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
?
解决方法如下:
下载 zlib-1.2.3
cd zlib-1.2.3 //进入zlib目录 CFLAGS="-O3 -fPIC" ./configure //使用64位元的方法进行编译 make clean make make install?
?
3.问题三 加载了mod-jk 后在?
mod-jk.conf中定义日志路径用的是 : JkLogFile ${intl_bopsassembly_loggingRoot}/%w/mod_jk.log
这个%w在创建文件时候一直报错!
去掉这个%W
?
4.从2.0升级到2.2过程中某些模块的名字变化了
mod_imap -- > mod_imagemap mod_auth -- > mod_auth_basic mod_authn_file mod_authz_user mod_authz_groupfile mod_access -- > mod_authz_host mod_auth_ldap -- > mod_authnz_ldap?
?
一个比较完整的编译apache的参数:
./configure --prefix=/home/inter12/installs/dev/httpd-new -enable-lib64 -libdir=/usr/lib64 --enable-rewrite=static --with-mpm=worker --enable-so --enable-proxy --enable-proxy-http --enable-deflate --enable-headers --enable-expires --enable-mods-shared='ssl actions unique_id autoindex setenvif headers auth_anon auth_dbm speling alias env include wl_20 usertrack mime_magic status log_config auth_digest proxy authz_host info dir asis proxy_http proxy_connect proxy_ftp vhost_alias imagemap dav userdir expires deflate log_forensic negotiation ext_filter cgid dav_fs auth_basic authn_file authz_user authz_groupfile mime cern_meta rewrite negotiation headers_module' --with-ssl=/usr/alibaba/openssl/ --with-included-apr --enable-module=most?
选的mod-jk是 tomcat-connectors-1.2.30-src.tar.gz
?
?
升级思路:
第一个方案:全盘修改
接受这个任务时较为激动,就采用了比较激进的方式,全部修改启动脚本,包括所有的配置项,但是这个项目更大,坑很多,走的很辛苦,去填一个个坑。后来放弃。采用了方案二
?
第二个方案:局部推进
只修改了跟环境相关的一些配置项,例如JAVA_HOME,APACHE,JBOSS及应用的部署目录等。这步走的还算顺利,但是具体在apache从2.0升级到2.2过程中出现了很多的问题。
一个是2.0的httpd.conf跟2.2比较有很多的不同点,而且原来的应用添加了很多个性化的配置,但是在2.2中已经不推荐,或者不存在了。
这个时候不直接修改原来久的配置项,改为取2.2中默认的httpd.conf,然后对比这修改配置项。结果很顺利,一步步走下来。apache能启动了,但是被一个问题困扰很久。就是上文中的问题三。
这个%w是公司默认模版中的配置,可能是自己某些配置项没添加,但是在建立日志文件的时候报错。但是apache告诉你启动错误,但是不给具体错误,这个真的很操蛋!
?
?