Apache-2.2
mod_fastcgi 安裝錯誤
我已成功編譯 Apache 2.4.2,但在嘗試編譯 mod_fastcgi 模組時遇到錯誤。
有小費嗎?
root@local:/usr/src/libapache-mod-fastcgi# /usr/local/apache2/bin/apxs -o mod_fastcgi.so -c *.c /usr/local/apr/build-1/libtool --silent --mode=compile gcc -std=gnu99 -prefer-pic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -g -O2 -pthread -I/usr/local/apache2/include -I/usr/local/apr/include/apr-1 -I/usr/local/apr/include/apr-1 -c -o fcgi_buf.lo fcgi_buf.c && touch fcgi_buf.slo /usr/local/apr/build-1/libtool --silent --mode=compile gcc -std=gnu99 -prefer-pic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -g -O2 -pthread -I/usr/local/apache2/include -I/usr/local/apr/include/apr-1 -I/usr/local/apr/include/apr-1 -c -o fcgi_config.lo fcgi_config.c && touch fcgi_config.slo fcgi_config.c: In function 'fcgi_config_set_fcgi_uid_n_gid': fcgi_config.c:241: error: 'unixd_config' undeclared (first use in this function) fcgi_config.c:241: error: (Each undeclared identifier is reported only once fcgi_config.c:241: error: for each function it appears in.) fcgi_config.c: In function 'fcgi_config_make_dir': fcgi_config.c:345: error: 'unixd_config' undeclared (first use in this function) fcgi_config.c: In function 'fcgi_config_new_static_server': fcgi_config.c:782: warning: initialization from incompatible pointer type fcgi_config.c:782: error: expected expression before ')' token fcgi_config.c:782: warning: passing argument 5 of 'ap_log_error_' makes integer from pointer without a cast /usr/local/apache2/include/http_log.h:372: note: expected 'apr_status_t' but argument is of type 'struct server_rec *' fcgi_config.c: In function 'fcgi_config_new_external_server': fcgi_config.c:975: warning: initialization from incompatible pointer type fcgi_config.c:975: error: expected expression before ')' token fcgi_config.c:975: warning: passing argument 5 of 'ap_log_error_' makes integer from pointer without a cast /usr/local/apache2/include/http_log.h:372: note: expected 'apr_status_t' but argument is of type 'struct server_rec *' apxs:Error: Command failed with rc=65536 . root@local:/usr/src/libapache-mod-fastcgi#
據我所知,mod_fastcgi 和 Apache 2.4 存在某種錯誤。剛剛檢查了 2.2 版,它編譯得很好。現在找不到錯誤報告。
幾乎可以肯定這是由於 Apache 在v2.4.x 中將 unixd_config api 名稱更改為ap_unixd_config
http://httpd.apache.org/docs/2.4/developer/new_api_2_4.html
我一直在努力讓它 2.4 與 mod_fastcgi 一起工作,我什至嘗試編輯 fcgi.h(我可以在 mod_fastcgi 源文件中找到的對 unixd_config 的唯一引用)添加
#define unixd_config ap_unixd_config
或以其他方式重命名對 unixd_config 的所有引用,但這些都不起作用。
我開始懷疑 apr / apr-devel 包中是否還可能有一些對 unixd_config 的引用,因為它們是編譯 mod_fastcgi 所必需的,我必須找到一個更新的版本(我相信是 1.4.6,因為 yum 安裝了舊的 1.3 .9),並將它們放入 apache 2.4.3 原始碼的 srclib 文件夾中,以使其編譯時不會出現錯誤(如下所示:http ://www.thegeekstuff.com/2012/05/install-apache-2-在-centos-6/ 上)
這真的很令人沮喪,因為我想要 apache 2.4 但不想將 php 作為 mod_php 執行,但是使用 mod_proxy_fcgi 和 php fpm 的“新和改進”方法有各種各樣的問題,比如不想用別名玩得好:(