阿里巴巴内部推荐招聘,联系旺旺abacusli,[email protected]
在用apxs安装apache mod_proxy时候出现undefined symbol: ap_proxy_lb_workers的错误,原先用的是:
apxs -i -a -c mod_proxy.c错误信息:注:我在安装proxy_http.c的时候,用的是
/usr/local/apache2/bin/apxs -i -a -n http mod_proxy_http.la这样的一个命令,所以在配置文件中
LoadModule http_module modules/mod_proxy_http.so 为这样一条语句,
重启的提示为
[root@localh proxy]# /usr/local/apache2/bin/apachectl configtest httpd: Syntax error on line 55 of /usr/local/apache2/conf/httpd.conf: Can't locate API module structure `http_module' in file /usr/local/apache2/modules/mod_proxy_http.so: /usr/local/apache2/modules/mod_proxy_http.so: undefined symbol: http_module 至于我为什么要/usr/local/apache2/bin/apxs -i -a -nhttp 这样写,
而不/usr/local/apache2/bin/apxs -i -a -nproxy_http mod_proxy_http.la 这样写(注意我说的是标红的地方)是因为我受到前面在加模块时看到的文章也出现过这样的提示,是因为我的不符合语法。所以才那样些,现在看来http的必须需要安装proxy_http 这样些至于原因等我找到答案后在做解释。(我怀疑因为proxy_http 是proxy的一个子模块,所以需要这样写的,如果直接的一个模块就不需要―了)
配apache mod_cache 后 httpd -k start
apache出现以下信息:
Cannot load /usr/local/apache/modules/mod_cache.so into server: /usr/local/apache/modules/mod_cache.so: undefined symbol: cache_generate_key_default
正规解决方案:
正规解决方案:
modules/cache下面有很多的.c文件,大致用途如: mod_cache.c 编译得到mod_cache.so 主要用来控制整个apache的cache功能。 mod_file_cache.c,mod_mem_cache.c,mod_disk_cache.c这个三个文件编译后得到各自的cache支持模块。
mod_cache.c还需要其他的程序来进行工作,包括cache_*.c这些文件。因此apxs动态加载一个模块的时候,需要把这些文件和mod_cache.c 一起编译:perl /usr/local/apache2/bin/apxs -cia mod_cache.c cache_util.c cache_cache.c cache_storage.c cache_pqueue.c cache_hash.c
上述是我遇到问题,照着上面作者的做法做后问题解决。
在这里我要对我上面的文章中标金黄的部分做一下解释。
在我仔细看了配置文件,详细的做了对比,
LoadModule logio_module modules/mod_logio.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule cache_module modules/mod_cache.so LoadModule mem_cache_module modules/mod_mem_cache.so LoadModule disk_cache_module modules/mod_disk_cache.so
注意到这些modules/mod_proxy.so、modules/mod_proxy_http.so模块和前面的写法了没,proxy_module、proxy_http_module这些写法都是根据modules/mod_proxy.so、modules/mod_proxy_http.so这来的,如果这是mod_proxy.so,则在前面些proxy_module,如果是mod_proxy_http.so则在前面写proxy_http_module。所以我在写mod_mem_cache.so这个的时候,不用想就写了LoadModule mem_cache_module ,这样在检查配置文件的时候也没有提示错误,直接提示ok。以后写的时候,就可以这样写了,我认为是不会有错误的原文网址:http://it.chinawin.net/internet/article-1aa1a.html