[综合] 发布 nginx/php-dws beta1

如果您还不了解什么是 php-dws, 可以先看看这个贴子:  关于 php-dws

2010/10/09: nginx/php-dws 作为全新的工作方式还需更多的实践检验,此次发布的beta1 是第一个版本,目前只能运行在 Unix 类的系统中。

一、下载:
1. nginx_http_dwsgi_module: (搭配 nginx-0.8.x , 较低版本未测试)
http://www.hightman.cn/down/nginx_0.8_dwsgi_module_beta1.tgz

2. php-dws: (搭配 php-5.3.x 开发, 但应当都兼容能用)
http://www.hightman.cn/down/php53_sapi_dws_beta1.tgz

二、安装php-dws
1. 将下载的 php53_sapi_dws_beta1.tgz 放到 php-5.3.3/ 这样的源码目录,
运行以下指令直接解压获得 sapi/dws/ 目录:
tar xvzf php53_sapi_dws_beta1.tgz

2. 如果你的 php-5.3.3 没有打过我之前发布的补丁, 请参见这个贴子修补一下, 以便更好的运行dws以及fastcgi.

3. 在 php 的源码目录中运行 ./buidconf –force (前提是安装了autoconf相关的工具)
注意: 如果提示什么vcs清理出错, 则可以先手动删除 autom4te.cache 目录然后运行 autoreconf, 如果还不行就听从它的建议采用 autoconf 2.13吧

4. 如果上述步骤都成功,尝试运行一下 ./configure –help | grep dws 应当能看到下面信息:
–enable-dws EXPERIMENTAL: Enable building DWS version of PHP

5. 去除旧编译选项中的 –with-apxs , –with-apxs2, –enable-cgi, –enable-fpm 等其它 sapi 的选项.
加入 –disable-cgi –enable-dws 重新 configure 和编译 php.
如果最终编译连接失败尝试 make clean 后再 make;
小提示如果你忘了以前的编译选项,你可以直接修改旧记录 config.nice 然后运行 ./config.nice 即可

6. 如果编译成功应当能在 sapi/dws/ 中看到 php-dws 了,试试以下指令:
sapi/dws/php-dws -h

7. 如果一切顺利就可以 make install 了,将 php-dws 安装到 $prefix/bin 中了

8. php-dws 的启动和关闭, 您可以直接在命令行启动和关闭它, 具体的选项参见其它贴子
启动: $prefix/bin/php-dws (默认会监听在 /tmp/php-dws.sock)
关闭: killall php-dws
建议使用统一提供的 php-dwsctl (位于源码包 sapi/dws/php-dwsctl) 参见这个贴子

三、安装 nginx_http_dwsgi_module

1. 模块是针对 0.8.x 系列开发和测试的, 其它版本未经测试, 建议用同样的最新的 0.8.x 版本

2. 将下载的 nginx_0.8_dwsgi_module_beta1.tgz 放到 ngx-0.8.50/ 这样的源码目录,
运行以下指令直接解压获得 src/addon/dwsgi 目录:
tar xvzf nginx_0.8_dwsgi_module_beta1.tgz

3. 运行 ./configure 重新配置 nginx ,在原有基础选项上增加:
–add-module=src/addon/dwsgi

4. 然后正常的编译 make clean ; make ; make install 即可

四、安装全部结束,就可以开始配置相应的选项来启动它了,具体的配置选项请分见其它贴子。

1. nginx_http_dwsgi_module 配置说明
2. php-dws 运行选项及说明

[综合] 发布 nginx/php-dws beta1》上有10条评论

  1. hightman

    [quote=’nhbbq’ pid=’3791′ dateline=’1287702282′]
    问问站长,freebsd ports 安装php5,需要怎样的修改,能否指点指点,谢谢
    [/quote]

    这个必须从源码装起,PHP-DWS是一个完整的SAPI,可以单独编译不影响其它或现有的

    回复
  2. hightman

    因为php每次编译只能选用一个SAPI,所以 –enable-dws 和 –enable-cgi, –enable-fpm, –with-apxs[2] … 只能选其中一个。
    不能同时指定,你可以分开编译,像 apache,fpm的配合重新 configure 还要 make clean ,因为它们还链接了额外的库函数。

    回复
  3. nhbbq

    可以安装了,不过还有些问题,make install后,/usr/local/bin/没有php-dws,我把sapi/dws/php-dws 拷到/usr/local/bin/后 php-dwsctl start 出现php waring: cannot load module ‘mysql’ because required module ‘mysqlnd’ is not loaded in unknown on line 0 ….

    回复
  4. nhbbq

    gi/ngx_http_dwsgi_module.o src/addon/dwsgi/ngx_http_dwsgi_module.c
    cc1: warnings being treated as errors
    src/addon/dwsgi/ngx_http_dwsgi_module.c: In function ‘ngx_http_dwsgi_create_request’:
    src/addon/dwsgi/ngx_http_dwsgi_module.c:422: warning: unused variable ‘body’
    src/addon/dwsgi/ngx_http_dwsgi_module.c:420: warning: unused variable ‘next’
    src/addon/dwsgi/ngx_http_dwsgi_module.c:417: warning: unused variable ‘pos’
    src/addon/dwsgi/ngx_http_dwsgi_module.c:416: warning: unused variable ‘file_pos’
    src/addon/dwsgi/ngx_http_dwsgi_module.c: In function ‘ngx_http_dwsgi_process_header’:
    src/addon/dwsgi/ngx_http_dwsgi_module.c:825: warning: comparison between signed and unsigned
    *** Error code 1

    Stop in /usr/ports/www/nginx/work/nginx-0.8.53.
    *** Error code 1

    请站长指点指点,谢谢

    Stop in /usr/ports/www/nginx/work/nginx-0.8.53.

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注