Centos7+httpd+fastcgi安装提示错误

搭建的环境:

centos7

Apache/2.4.6

fastcgi2.4.6

rails4

在安装fastcgi的时候遇到了问题:

问题:

。。。。。。

In file included from fcgi.h:28:0,
                 from mod_fastcgi.c:72:
/usr/include/httpd/http_log.h:456:18: note: expected ‘const struct request_rec *‘ but argument is of type ‘char *‘
 AP_DECLARE(void) ap_log_rerror_(const char *file, int line, int module_index,
                  ^
make: *** [mod_fastcgi.slo] 错误 1

答案:经过查询资料得知,是因为Apache/2.4.6不完善,需要补丁文件去完善它

下面写正确的过程:

1安装httpd服务器

#yum install httpd   httpd-devel

2安装fastcgi(先下载然后安装)

2.1下载mod_fastcgi源码包

# wget http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz

2.2解压安装(解压后要先打补丁)

## tar zxvf mod_fastcgi-2.4.6.tar.gz
# cd mod_fastcgi-2.4.6
2.3下载补丁文件
http://leeon.me/upload/other/byte-compile-against-apache24.diff

2.4把补丁文件上传到解压的mod_fastcgi文件目录(我这里的路径为/root/mod_fastcgi-2.4.6)

或者直接自己创建一个文件把下载的补丁文件直接复制到这个创建的补丁文件爱你中(文件名字随你自己取,不影响的)

#vim   fastcgi_patch

2.5把这个下载的补丁文件的所有内容复制进来,我把这个补丁的完整内容也贴出来吧,不想下载的可以直接复制我的

Index: libapache-mod-fastcgi/fcgi.h
===================================================================
--- libapache-mod-fastcgi.orig/fcgi.h    2012-03-07 14:29:04.005720240 +0100
+++ libapache-mod-fastcgi/fcgi.h    2012-03-07 14:29:07.830566657 +0100
@@ -34,6 +34,10 @@
 #define APACHE2
 #endif
 
+#ifdef AP_DECLARE_MODULE
+#define APACHE24
+#endif
+
 #ifdef APACHE2
 
 #include <sys/stat.h>
@@ -57,10 +61,16 @@
 #define XtOffsetOf APR_OFFSETOF
 #define ap_select select
 
+#ifdef APACHE24
+#define unixd_config ap_unixd_config
+#endif
+
+#ifdef APACHE2
 #define ap_user_id        unixd_config.user_id
 #define ap_group_id       unixd_config.group_id
 #define ap_user_name      unixd_config.user_name
 #define ap_suexec_enabled unixd_config.suexec_enabled
+#endif
 
 #ifndef S_ISDIR
 #define S_ISDIR(m)      (((m)&(S_IFMT)) == (S_IFDIR))
@@ -365,42 +375,42 @@
 #ifdef APACHE2
 
 #ifdef WIN32
-#define FCGI_LOG_EMERG          __FILE__,__LINE__,APLOG_EMERG,APR_FROM_OS_ERROR(GetLastError())
-#define FCGI_LOG_ALERT          __FILE__,__LINE__,APLOG_ALERT,APR_FROM_OS_ERROR(GetLastError())
-#define FCGI_LOG_CRIT           __FILE__,__LINE__,APLOG_CRIT,APR_FROM_OS_ERROR(GetLastError())
-#define FCGI_LOG_ERR            __FILE__,__LINE__,APLOG_ERR,APR_FROM_OS_ERROR(GetLastError())
-#define FCGI_LOG_WARN           __FILE__,__LINE__,APLOG_WARNING,APR_FROM_OS_ERROR(GetLastError())
-#define FCGI_LOG_NOTICE         __FILE__,__LINE__,APLOG_NOTICE,APR_FROM_OS_ERROR(GetLastError())
-#define FCGI_LOG_INFO           __FILE__,__LINE__,APLOG_INFO,APR_FROM_OS_ERROR(GetLastError())
-#define FCGI_LOG_DEBUG          __FILE__,__LINE__,APLOG_DEBUG,APR_FROM_OS_ERROR(GetLastError())
+#define FCGI_LOG_EMERG          APLOG_MARK,APLOG_EMERG,APR_FROM_OS_ERROR(GetLastError())
+#define FCGI_LOG_ALERT          APLOG_MARK,APLOG_ALERT,APR_FROM_OS_ERROR(GetLastError())
+#define FCGI_LOG_CRIT           APLOG_MARK,APLOG_CRIT,APR_FROM_OS_ERROR(GetLastError())
+#define FCGI_LOG_ERR            APLOG_MARK,APLOG_ERR,APR_FROM_OS_ERROR(GetLastError())
+#define FCGI_LOG_WARN           APLOG_MARK,APLOG_WARNING,APR_FROM_OS_ERROR(GetLastError())
+#define FCGI_LOG_NOTICE         APLOG_MARK,APLOG_NOTICE,APR_FROM_OS_ERROR(GetLastError())
+#define FCGI_LOG_INFO           APLOG_MARK,APLOG_INFO,APR_FROM_OS_ERROR(GetLastError())
+#define FCGI_LOG_DEBUG          APLOG_MARK,APLOG_DEBUG,APR_FROM_OS_ERROR(GetLastError())
 #else /* !WIN32 */
-#define FCGI_LOG_EMERG          __FILE__,__LINE__,APLOG_EMERG,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_ALERT          __FILE__,__LINE__,APLOG_ALERT,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_CRIT           __FILE__,__LINE__,APLOG_CRIT,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_ERR            __FILE__,__LINE__,APLOG_ERR,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_WARN           __FILE__,__LINE__,APLOG_WARNING,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_NOTICE         __FILE__,__LINE__,APLOG_NOTICE,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_INFO           __FILE__,__LINE__,APLOG_INFO,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_DEBUG          __FILE__,__LINE__,APLOG_DEBUG,APR_FROM_OS_ERROR(errno)
-#endif
-
-#define FCGI_LOG_EMERG_ERRNO    __FILE__,__LINE__,APLOG_EMERG,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_ALERT_ERRNO    __FILE__,__LINE__,APLOG_ALERT,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_CRIT_ERRNO     __FILE__,__LINE__,APLOG_CRIT,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_ERR_ERRNO      __FILE__,__LINE__,APLOG_ERR,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_WARN_ERRNO     __FILE__,__LINE__,APLOG_WARNING,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_NOTICE_ERRNO   __FILE__,__LINE__,APLOG_NOTICE,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_INFO_ERRNO     __FILE__,__LINE__,APLOG_INFO,APR_FROM_OS_ERROR(errno)
-#define FCGI_LOG_DEBUG_ERRNO    __FILE__,__LINE__,APLOG_DEBUG,APR_FROM_OS_ERROR(errno)
-
-#define FCGI_LOG_EMERG_NOERRNO    __FILE__,__LINE__,APLOG_EMERG,0
-#define FCGI_LOG_ALERT_NOERRNO    __FILE__,__LINE__,APLOG_ALERT,0
-#define FCGI_LOG_CRIT_NOERRNO     __FILE__,__LINE__,APLOG_CRIT,0
-#define FCGI_LOG_ERR_NOERRNO      __FILE__,__LINE__,APLOG_ERR,0
-#define FCGI_LOG_WARN_NOERRNO     __FILE__,__LINE__,APLOG_WARNING,0
-#define FCGI_LOG_NOTICE_NOERRNO   __FILE__,__LINE__,APLOG_NOTICE,0
-#define FCGI_LOG_INFO_NOERRNO     __FILE__,__LINE__,APLOG_INFO,0
-#define FCGI_LOG_DEBUG_NOERRNO    __FILE__,__LINE__,APLOG_DEBUG,0
+#define FCGI_LOG_EMERG          APLOG_MARK,APLOG_EMERG,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_ALERT          APLOG_MARK,APLOG_ALERT,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_CRIT           APLOG_MARK,APLOG_CRIT,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_ERR            APLOG_MARK,APLOG_ERR,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_WARN           APLOG_MARK,APLOG_WARNING,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_NOTICE         APLOG_MARK,APLOG_NOTICE,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_INFO           APLOG_MARK,APLOG_INFO,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_DEBUG          APLOG_MARK,APLOG_DEBUG,APR_FROM_OS_ERROR(errno)
+#endif
+
+#define FCGI_LOG_EMERG_ERRNO    APLOG_MARK,APLOG_EMERG,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_ALERT_ERRNO    APLOG_MARK,APLOG_ALERT,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_CRIT_ERRNO     APLOG_MARK,APLOG_CRIT,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_ERR_ERRNO      APLOG_MARK,APLOG_ERR,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_WARN_ERRNO     APLOG_MARK,APLOG_WARNING,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_NOTICE_ERRNO   APLOG_MARK,APLOG_NOTICE,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_INFO_ERRNO     APLOG_MARK,APLOG_INFO,APR_FROM_OS_ERROR(errno)
+#define FCGI_LOG_DEBUG_ERRNO    APLOG_MARK,APLOG_DEBUG,APR_FROM_OS_ERROR(errno)
+
+#define FCGI_LOG_EMERG_NOERRNO    APLOG_MARK,APLOG_EMERG,0
+#define FCGI_LOG_ALERT_NOERRNO    APLOG_MARK,APLOG_ALERT,0
+#define FCGI_LOG_CRIT_NOERRNO     APLOG_MARK,APLOG_CRIT,0
+#define FCGI_LOG_ERR_NOERRNO      APLOG_MARK,APLOG_ERR,0
+#define FCGI_LOG_WARN_NOERRNO     APLOG_MARK,APLOG_WARNING,0
+#define FCGI_LOG_NOTICE_NOERRNO   APLOG_MARK,APLOG_NOTICE,0
+#define FCGI_LOG_INFO_NOERRNO     APLOG_MARK,APLOG_INFO,0
+#define FCGI_LOG_DEBUG_NOERRNO    APLOG_MARK,APLOG_DEBUG,0
 
 #else /* !APACHE2 */
 
Index: libapache-mod-fastcgi/mod_fastcgi.c
===================================================================
--- libapache-mod-fastcgi.orig/mod_fastcgi.c    2012-03-07 14:29:04.017047773 +0100
+++ libapache-mod-fastcgi/mod_fastcgi.c    2012-03-07 14:29:07.841272721 +0100
@@ -97,6 +97,10 @@
 } while (0)
 #endif
 
+#ifdef APACHE24
+module AP_MODULE_DECLARE_DATA fastcgi_module;
+#endif
+
 /*
  * Global variables
  */
@@ -3014,7 +3018,11 @@
     ap_hook_fixups(fixups, NULL, NULL, APR_HOOK_MIDDLE); 
 }
 
+#ifdef APACHE24
+AP_DECLARE_MODULE(fastcgi) =
+#else
 module AP_MODULE_DECLARE_DATA fastcgi_module =
+#endif
 {
     STANDARD20_MODULE_STUFF,
     fcgi_config_create_dir_config,  /* per-directory config creator */

文件内容已经接触(此行不要复制)

然后保存退出(wq)

对解压后的fcgi.h这个文件执行打补丁操作

#patch fcgi.h < fastcgi_patch

(如果是上传的刚才给的网址下载的文件则换上相应的名字,即 #patch fcgi.h < byte-compile-against-apache24.diff )

3执行编译安装,不过在安装之前修改下安装的路径

# cp Makefile.AP2 Makefile
# vim Makefile
修改top_dir目录,64位系统的路径为lib64,32位系统的路径为/usr/lib/httpd

top_dir = /usr/lib64/httpd

保存退出后,开始进行编译安装。
# make
# make install

到此,mod_fastcgi.so已经安装好了

原文:http://blog.csdn.net/li_yong_kuan/article/details/41332767

时间: 2024-12-20 22:20:01

Centos7+httpd+fastcgi安装提示错误的相关文章

VisualSVN Server 安装提示错误 Repositories is not a valid short file name 修复

最近安装新版  VisualSVN Server 总在安装过程提示错误: "'Repositories' is not a valid short file name." 点确定后安装过程就终止了,不能继续. 找了下问题原因,发现是因为之前可能在另外一个移动分区上面放置过 Repositories 库目录,而此时那移动分区又不存在,所以 VisualSVN Server 安装程序也找不到之前的库目录了. 提示错误 'Repositories' is not a valid short

Centos7+httpd+fastcgi+rails安装

搭建的环境: centos7 Apache/2.4.6 fastcgi2.4.6 rails4 在安装fastcgi的时候遇到了问题: 问题: ...... In file included from fcgi.h:28:0, from mod_fastcgi.c:72: /usr/include/httpd/http_log.h:456:18: note: expected 'const struct request_rec *' but argument is of type 'char *

linux apache 编译安装提示错误[htpasswd] Error 1 [all-recursive] Error 1

编译安装httpd-2.4.23 ,编译提示出现这个,求解.折腾了一下午了

Electron 7.x以上版本安装提示错误解决方法

升级使用最新的Electron 7.x以上版本,运行提示electron不存在,其实是因为electron install时候对应平台的可执行文件没有下载成功,错误提示如下: (node:18000) UnhandledPromiseRejectionWarning: Error: EPERM: operation not permitted, lstat 'C:\Users\JUNCHU~1\AppData\Local\Temp\electron-download-4VfCX9\electro

Window Live Writer在Win7下安装提示错误“OnCatalogResult:0x80190194”

1.在C:\Users\All Users\Microsoft\WLSetup\Logs下(All Users默认是隐藏文件夹),有两个Window Live的安装日记记录文件,打开第一个找到ERROR,发现是catalog-web.cab下载失败 2.找到window live的全安装包,下载(en,zh-cn是语言名称,如果要下载其它语言,请改名): 下载地址:http://g.live.com/1rewlive4-all/en/wlsetup-all.exe http://g.live.c

pip安装提示PermissionError: [WinError 5]错误问题解决

 问题现象 新安装python3.6版本后使用pip安装第三方模块失败,报错信息如下: C:\Users\linyfeng>pip install lxml Collecting lxml Downloading http://pypi.doubanio.com/packages/fb/41/b8d5c869d01fcb77c72d7d226a847a3946034ef19c244ac12920b71cd036/lxml-3.8.0-cp36-cp36m-win32.whl (2.9MB) 10

YUM安装提示PYCURL ERROR 6 - "Couldn&#39;t错误的解决办法

当编译PHP时出现如下错误时,找不到头绪 这时,打开DNS   vim /etc/resolv.conf   添加一行nameserver 192.168.1.1 完成上一步,则解决该问题 YUM安装提示PYCURL ERROR 6 - "Couldn't错误的解决办法

CentOS6.5桌面版安装VirtualBox提示错误/etc/init.d/vboxdrv setup

安装步骤 1.在VirtualBox主页上面下载 VirtualBox-4.3-4.3.6_91406_el6-1.x86_64.rpm 2.双击安装 3.安装完成后选择镜像后安装系统后将出现错误对话框并提示你运行 /etc/init.d/vboxdrv setup 来解决问题 4.运行/etc/init.d/vboxdrv setup,仍然发现错误并且标准输出提示你查看/var/log/vbox-install.log来发现错误 5.运行vi /var/log/vbox-install.log

Win10安装office2013提示错误1406的解决方法

Win10已经发布了很长一段时间,也有遇到很多的问题.这不又有澳门金沙遇到了问题了,用户在安装office2013的时候,提示错误1406.怎么办?遇到这样的问题,我们应该怎么去解决它呢?下面就和大家说一下Win10安装office2013提示错误1406的解决方法. 具体方法如下: 1.在文件资源管理器的“快速访问”栏里输入regedit,打开注册表编辑器,到HKEY_CURRENT_USER\Software\Microsoft\Office\: 2.将注册表编辑器左栏的“office”及其