nginx安装扩展模块报错

简介:

安装nginx扩展模块的时候报错如下:

[root@21d80854d33f memcached-1.4.24]$phpize 

Cannot find config.m4. 

Make sure that you run '/usr/bin/phpize' in the top level source directory of the module


可能的原因:1.安装包没找对, 解压的文件夹中没有config.m4  下载正确的扩展包安装


2.

你的模扩展的时候最好

  放在/usr/local/src/php-4.3.5/ext下

  来执行他你在这里也可以这样/usr/local/php/bin/phpize来执行也可以

  phpize来执行

  我们在/usr/local/src/php-4.3.5/ext下找到这个工具

  来建立一个php扩展的一个框架

  [root@ns ext]#cd /usr/local/src/php-4.3.5/ext/

  [root@ns ext]# ./ext_skel --extname=sdomain

  Creating directory sdomain

  Creating basic files: config.m4 .cvsignore sdomain.c php_sdomain.h CREDITS EXPERIMENTAL tests/001.phpt sdomain.php [done].

To use your new extension, you will have to execute the following steps:

  1. $ cd ..

  2. $ vi ext/sdomain/config.m4

  3. $ ./buildconf

  4. $ ./configure --[with|enable]-sdomain

  5. $ make

  6. $ ./php -f ext/sdomain/sdomain.php

  7. $ vi ext/sdomain/sdomain.c

  8. $ make

  执行了这个步骤以后你会看到这样的结果

  Repeat steps 3-6 until you are satisfied with ext/sdomain/config.m4 and

  step 6 confirms that your module is compiled into PHP. Then, start writing

  code and repeat the last two steps as often as necessary.

  这样以后我们会在这个目录下生成一个目录叫sdomain

  进入这里面我们看看

  [root@ns ext]# cd sdomain/

  [root@ns sdomain]# ls

  config.m4 EXPERIMENTAL     sdomain.php  tests

  CREDITS  sdomain.c php_sdomain.h

  然后我们要修改文件顺序是

  configue.m4

  sdomain.c

  php_sdomain.h

  使用文本编辑器打开config.m4文件,文件内容大致如下:

  dnl $Id$d

  dnl config.m4 for extension my_module

  dnl dont forget to call PHP_EXTENSION(my_module)

  dnl Comments in this file start with the string dnl.

  dnl Remove where necessary. This file will not work

  dnl without editing.

dnl If your extension references something external, use with:

  dnl PHP_ARG_WITH(my_module, for my_module support,

  dnl Make sure that the comment is aligned:

  dnl [ --with-my_module       Include my_module support])

  dnl Otherwise use enable:

  dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,

  dnl Make sure that the comment is aligned:

  dnl [ --enable-my_module      Enable my_module support])

  if test $PHP_MY_MODULE != no; then

  dnl If you will not be testing anything external, like existence of

  dnl headers, libraries or functions in them, just uncomment the

  dnl following line and you are ready to go.

  dnl Write more examples of tests here...

  PHP_EXTENSION(my_module, $ext_shared)

  Fi

  根据你自己的选择将

  dnl PHP_ARG_WITH(my_module, for my_module support,

  dnl Make sure that the comment is aligned:

  dnl [ --with-my_module       Include my_module support])

  修改成

  PHP_ARG_WITH(my_module, for my_module support,

  [ --with-my_module       Include my_module support])

  或者将

  dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,

  dnl Make sure that the comment is aligned:

  dnl [ --enable-my_module      Enable my_module support])

修改成

  PHP_ARG_ENABLE(my_module, whether to enable my_module support,

  [ --enable-my_module      Enable my_module support])

        (其实就是将这部分的dnl去掉,在这个文件里dnl就是注释的意思,相当于我们PHP里面的#或// 另外把他中间的一句描术也去掉)

  我这里用了后者

  然后保存退出

  然后在编辑

  Vi my_module.c

  将文件其中的下列代码进行修改

/* Every user visible function must have an entry in my_module_functions[].
*/
function_entry my_module_functions[] = {
PHP_FE(say_hello,    NULL) /* ?添加着一行代码 */
PHP_FE(confirm_my_module_compiled,   NULL) /* For testing, remove later. */
{NULL, NULL, NULL}   /* Must be the last line in my_module_functions[] */
};

  在文件的最后添加下列代码

PHP_FUNCTION(say_hello)
{
zend_printf("hello sdomain!");
}

再修改:php_sdomain.h

vi php_sdomain.h

在PHP_FUNCTION(confirm_my_module_compiled ); /* For testing, remove later. */ 这行的下面添加一行:

PHP_FUNCTION(say_hello); /* For testing, remove later. */

  保存文件退出

本文转自    憬薇   51CTO博客,原文链接:http://blog.51cto.com/welcomeweb/1702911


相关文章
|
3天前
|
前端开发 JavaScript 应用服务中间件
Nginx 支持 JavaScript:前所未有的扩展
Nginx 是全球领先的高性能 Web 服务器,以其高效的反向代理和负载均衡功能著称。近期,Nginx 正式支持 JavaScript(通过 NJS 模块),基于 V8 引擎,允许在配置中嵌入 JS 代码,极大提升了灵活性和扩展性。开发者可以使用 JavaScript 实现动态请求处理、自定义认证、复杂响应处理、中间件编写及流量控制等功能,显著降低开发和维护难度,同时保持高性能。NJS 模块的引入为 Nginx 带来了前所未有的扩展能力,适应快速变化的业务需求。
13 0
|
1月前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
209 1
|
2月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
180 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
2月前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
209 0
Mac os 安装 nginx 教程(success)
|
2月前
|
Ubuntu 搜索推荐 应用服务中间件
Nginx安装与使用
Nginx安装与使用
|
2月前
|
负载均衡 算法 应用服务中间件
Nginx安装及配置详解
Nginx安装及配置详解
|
2月前
|
应用服务中间件 程序员 开发工具
mac下安装nginx
mac下安装nginx
|
2月前
|
应用服务中间件 Linux nginx
CentOS7安装Nginx
CentOS7安装Nginx
|
应用服务中间件 nginx
nginx安装报错/configure: error: the HTTP gzip module requires the zlib library.
反向代理服务器的工作原理 反向代理服务器通常有两种模型,它可以作为内容服务器的替身,也可以作为内容服务器集群的负载均衡器。 1,作内容服务器的替身 如果您的内容服务器具有必须保持安全的敏感信息,如信用卡号数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。
3924 0