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已经安装好了
标签:style com 文件 log 问题 http si it ha
原文:http://blog.csdn.net/li_yong_kuan/article/details/41332767
Centos7+httpd+fastcgi安装提示错误的更多相关文章
- Centos7+httpd+fastcgi+rails安装
搭建的环境: centos7 Apache/2.4.6 fastcgi2.4.6 rails4 在安装fastcgi的时候遇到了问题: 问题: .... .. In file included fro ...
- python安装提示错误Could not find a version that satisfies the requirement dateutil
今天ytkah在安装python3组件时提示如下错误,这个是缺少依赖的问题,就试着用pip3 install dateutil,但还是提示同样的错误,怎么处理呢? Could not find a v ...
- yum安装提示错误Thread/process failed: Thread died in Berkeley DB library
问题描述: yum 安装更新提示 rpmdb: Thread/process failed: Thread died in Berkeley DB library 问题解决: 01.删除yum临时库文 ...
- Window Live Writer在Win7下安装提示错误“OnCatalogResult:0x80190194”
1.在C:\Users\All Users\Microsoft\WLSetup\Logs下(All Users默认是隐藏文件夹),有两个Window Live的安装日记记录文件,打开第一个找到ERRO ...
- eclipse安装提示错误:Failed to load JNI shared library "D:\jdk1.7\client\jvm.dll"
错误截图如下 原因是jdk32位,eclipse64位导致,修改jdk版本为64位或者修改ecipse版本为32位即可.
- 在Ubuntu 12.04 - 64bit中安装CodeSourcery时提示错误
安装时提示错误,Your 64-bit Linux host is missing the 32-bit libraries requied to install and use Sourcery C ...
- CentOS 使用yum命令安装出现错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org
CentOS 使用yum命令安装出现错误提示"could not retrieve mirrorlist http://mirrorlist.centos.org这个错误, 在网上找了好多, ...
- 安装sql server 2008 提示错误 SQL Server 2005 Express 工具。 失败
安装sql server 2008 management,提示错误:Sql2005SsmsExpressFacet 检查是否安装了 SQL Server 2005 Express 工具. 失败,已安装 ...
- Python3安装turtle提示错误:Command "python setup.py egg_info" failed with error code 1
Python3安装turtle提示错误:Command "python setup.py egg_info" failed with error code 1 Python3.5安 ...
随机推荐
- Python菜鸟之路:Jquery Ajax的使用
Ajax概述 Ajax就是通过 HTTP 请求加载远程数据.通常用于定制一些http请求来灵活的完成前端与后端的数据交互需求. 注意,所有的选项都可以通过$.ajaxSetup()函数来全局设置. J ...
- 保存到properties
@FXMLprivate void savaconfig(ActionEvent event) { try { Properties prop = new Properties(); FileWrit ...
- MYSQL中case when then else end 用法
条件语句 delimiter \\CREATE PROCEDURE proc_if ()BEGIN declare i int default 0; if i = 1 THEN ...
- python构造wireshark可以解析的LTE空口数据
Wireshark是可以解析LTE的空口数据.但是在wireshark的实现中,这些数据都是被封装到UDP报文中.然后根据wireshark的格式文件对LTE的数据加上头信息.头信息的定义参考附件pa ...
- IDEA 跑spring项目找不到get,set的问题
@Autowired的用法和作用 这个注解就是spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get. iDEA下安装lombok这个插件就可 ...
- yii2判断数据库字段is null
$query = new Query; $query->select('ID, City,State,StudentName') ->from('student') ->]) -&g ...
- Yii2.0数据库查询实例(三)
常用查询: // WHERE admin_id >= 10 LIMIT 0,10 User::find()->])->offset()->limit()->all() / ...
- 区块链入门级别认知(blockchain)
区块链入门级别认知(blockchain) 前言:今天参加了迅雷关于区块链的大会,学习和感受总结一下 之前的认知在:几个混迹互联网圈关于区块链 耳熟能详的 热词 “比特币” “区块链” “挖矿” ,知 ...
- iOS11 仿大标题 导航栏
iOS11 SytleTitleController 仿大标题 风格 导航栏 仿 iOS11 大导航标题 风格 UI 适用范围 iOS8 + 前言 iOS11全面应用大标题设计,(岂止于大—— 比逼 ...
- 静态库引入引起的错误解决方案,ld: warning: ignoring file ”…/XXX.a”, file was built for archive which is not the architecture being linked (armv7): “…/XXX.a” Undefined symbols for architecture armv7: "_OBJC_CLASS_$
想目中不免会引入一些静态库,可是有时加入'.a'文件后编译便会报以下错误 ld: warning: ignoring file ”…/XXX.a”, file was built for archiv ...