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


相关文章
|
24天前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
114 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
22天前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
47 0
Mac os 安装 nginx 教程(success)
|
29天前
|
Ubuntu 搜索推荐 应用服务中间件
Nginx安装与使用
Nginx安装与使用
|
29天前
|
负载均衡 算法 应用服务中间件
Nginx安装及配置详解
Nginx安装及配置详解
|
29天前
|
应用服务中间件 程序员 开发工具
mac下安装nginx
mac下安装nginx
|
29天前
|
应用服务中间件 Linux nginx
CentOS7安装Nginx
CentOS7安装Nginx
|
29天前
|
Ubuntu Unix 应用服务中间件
Ubuntu16.04.1 安装Nginx
Ubuntu16.04.1 安装Nginx
|
应用服务中间件 nginx
Nginx源码分析1--------编写Nginx扩展模块
近日来申请通过CSDN准专家,为了顺利在六个月后升级为认证专家,并对得起这个勋章,我感觉 不能松懈博客的更新频率以及质量了。C/C++ windows下的开发是我相对来说做的比较多的地方,对于Linux下的服务器开发 等等也算是半路出家,恰逢近来在研究分布式存储,涉及到了 Nginx 扩展开发以及配置,查阅了好多的资料发现Nginx配置部署起来相当的容易,但是源代码是真的晦涩难懂,经常会看的我们百思不得其解,所以扩展开发Nginx模块也不是一个轻松的事情,那我就从Nginx扩展模块开始,一步一步剖析Nginx源代码, ~~太暴力了有木有。
1161 0
|
11天前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
18天前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
192 0