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 *‘

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已经安装好了

时间: 2024-10-29 19:12:26

Centos7+httpd+fastcgi+rails安装的相关文章

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

Centos7下Apache详细安装配置及证书申请SSL配置介绍

首先说到Centos大家都已经非常熟悉了,所以我们也就不多介绍关于Centos具体发展了,我们首先知道在Centos7之前版本命令和ReadHat的命令完全一样的,可Centos从6.0版本升级到Centos7版本之后,命令及功能上有了很大的变化,最明显的差别就是从安装的操作界面及操作命令上已经有很大变化了,更不用说功能上的变化了,比如centos6.x版本的iptalbes到centos7的firewall的变化,当然,变化了很多,我也就不多说了,今天呢,主要给大家介绍一下再Centos7下A

centos7 httpd&php

安装httpd:http://kernal.blog.51cto.com/8136890/1531545 httpd支持php安装配置: [1]Install php # yum -y install php php-mbstring php-pear # vi /etc/php.ini 878 date.timezone = "Asia/Shanghai" #设置时区 [2]Create Test Page # vi /var/www/html/index.php <html&

centos7系统下nginx安装并配置开机自启动操作

准备工作 我的centos7系统是最小化安装的, 缺很多库, 首先安装必须的运行库 ? 1 2 3 4 5 6 7 8 9 10 11 yum install wget gcc gcc-c++ pcre-devel zlib-devel ##创建工作目录并进入工作目录 mkdir -p /z/nginx && cd /z/nginx ##获取nginx最新的安装包 wget http://nginx.org/download/nginx-1.11.10.tar.gz ##解压缩 tar z

CentOS7下Nginx的安装配置

一.安装编译工具及库文件: yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 环境要求 nginx是C语言开发,建议在linux上运行,本文章使用Centos7作为安装环境. 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++ zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进

PJzhang:centos7上LNMP方式安装dvwa漏洞测试环境

猫宁!!! 参考链接:https://www.jianshu.com/p/5491ce5bfbac https://www.cnblogs.com/wujuntian/p/8183952.html https://www.cnblogs.com/lonnie/p/9027566.html https://stackoverflow.com/questions/34274492/dvwa-setup-php-function-allow-url-include-disabled/34540293

centos7.x之yum安装zabbix

1.安装LAMP #关闭防火墙方便测试 yum install epel-release -y systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0 #安装httpd yum install httpd systemctl start httpd.service  systemctl enable httpd.service #安装数据库5.6 wget http://dev.mysql

centos7.2源码安装openssl1.0.2

centos7.2默认是安装了opensll软件包的,但是部署个别服务时,由于版本太低.会影响服务的正常部署.只能使用源码安装提高openssl软件版本. 因为之前有openssl软件包,所以要先移除之前版本: 删除旧版本: yum remove -y openssl openssl-devel 源码安装openssl需要perl环境编译,如果没有perl环境还是需要安装: yum -y install perl perl-devel 现在新版本openssl: wget https://www

Centos7.2 源码安装Nginx

近期准备使用Nginx,就着手研究一下在CentOS7上来源码安装Nginx.话不多说(主要是怕忘了呵呵)开始正题. # uname -r 3.10.0-327.el7.x86_64 # ./configure --prefix=/usr/local/nginx 安装前还是在网上稍微搜集了一些信息,我的CentOS安装在虚拟机上,安装的时候选择的是最小安装,所以编译安装时所需要的一些编译器和依赖库可能没有,所以先来安装这些编译环境. # yum install gcc gcc-c++ zlib-