編譯和安裝shibboleth-sp遇到的問題

In file included from mod_shib_20.cpp:68:apache

mod_shib.cpp:118: warning: deprecated conversion from string constant to 'char*'post

mod_shib.cpp: In member function 'virtual const char* ShibTargetApache::getScheme() const':ui

mod_shib.cpp:385: error: 'ap_http_method' was not declared in this scopethis

mod_shib.cpp: In member function 'virtual std::string ShibTargetApache::getRemoteAddr() const':spa

mod_shib.cpp:417: error: 'struct conn_rec' has no member named 'remote_ip'ip

In file included from mod_shib_20.cpp:68:rem

mod_shib.cpp: In function 'int shib_post_read(request_rec*)':get

mod_shib.cpp:681: warning: unused variable 'rc'博客

mod_shib.cpp: In member function 'virtual shibsp::AccessControl::aclresult_t htAccessControl::authorized(const shibsp::SPRequest&, const shibsp::Session*) const':string

mod_shib.cpp:1221: error: 'ap_requires' was not declared in this scope


安裝shibboleth-sp時一直報這個錯。搞了好幾天,查谷歌。百度都沒找到解決的方法

無奈之下,從源代碼下手,去找緣由,

從谷歌得知這個問題是apache中include目錄下的httpd.h沒有ap_http_method這種方法

因而我搜索apache的源代碼。從change文件中找到了緣由,原來http2.2.14中ap_http_method已經被ap_http_scheme替代

這樣寫的:

ap_http_scheme() replaced with ap_http_method() - this function

     returns the scheme (http v.s. https)


最終找到問題所在,看來shibboleth-sp-2.5.3源代碼包是有bug的,而後打開源代碼包中的mod_shib.cpp文件把

return m_sc->szScheme ?

m_sc->szScheme : ap_http_scheme(m_req);

改成

return m_sc->szScheme ? m_sc->szScheme : ap_http_scheme(m_req);

再次編譯,問題解決了!!!

相關文章
相關標籤/搜索