Apache-2.2

mod_fastcgi 安裝錯誤

  • September 19, 2013

我已成功編譯 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 的“新和改進”方法有各種各樣的問題,比如不想用別名玩得好:(

引用自:https://serverfault.com/questions/419348