Tagged: PHP RSS

  • bixuan 13:48 on 2011 年 03 月 05 日 链接地址 | 回复
    Tags: , PHP,   

    安装php-handlersocket 

    至于HandlerSocket的安装请参考:MySQL+HandlerSocket安装一文。

    安装php-handlersocket一开始还遇到了点小问题,说找不到-Ihsclient的库文件,估计是我安装HandlerSocket-Plugin的时候指定了prefix,而在编译php-handlersocet的时候没加环境导致的,后来为了偷懒,就直接安装到/usr/local了。

    wegt -c http://php-handlersocket.googlecode.com/files/php-handlersocket-0.0.7.tar.gz
    tar zxvf php-handlersocket-0.0.7.tar.gz
    cd php-handlersocket
    PREFIX=/opt/app
    $PREFIX/php5-fastcgi/bin/phpize
    ./configure --with-handlersocket \
    --with-handlersocket-includedir=$PREFIX/HandlerSocket-Plugin/include/handlersocket \
    --with-php-config=$PREFIX/php5-fastcgi/bin/php-config
    make && make install
    cd ..

    然后将extension=”handlersocket.so”加到php,ini配置即可。

     
  • bixuan 22:02 on 2011 年 01 月 04 日 链接地址 | 回复
    Tags: , , PHP   

    3个HandlerSocket的PHP扩展 

    Percona源码目录storage/HandlerSocket-Plugin-for-MySQL翻到目前有以下3个PHP扩展:

    http://openpear.org/package/Net_HandlerSocket
    http://github.com/tz-lom/HSPHP
    http://code.google.com/p/php-handlersocket/

    特地整理下。

     
  • bixuan 21:46 on 2010 年 12 月 16 日 链接地址 | 回复
    Tags: , fastrpc, PHP,   

    From: http://blog.thinkinlamp.com/wp-trackback.php?p=538

    fastRPC: http://code.google.com/p/fastcgirpc/

     
  • bixuan 11:26 on 2010 年 11 月 24 日 链接地址 | 回复
    Tags: , PHP,   

    HandlerSocket的php扩展已出,太棒了,一会就测试下~

    http://code.google.com/p/php-handlersocket/

     
    • peter 10:31 on 2010 年 12 月 01 日 链接地址

      测试结果呢?

    • bixuan 23:31 on 2010 年 12 月 03 日 链接地址

      还没测试,sorry

    • silentime 00:53 on 2010 年 12 月 09 日 链接地址

      多多交流,这是我安装的记录,周边的扩展还不是很完备http://blog.sina.com.cn/s/blog_550ffb0b0100nowb.html

  • bixuan 10:57 on 2010 年 11 月 23 日 链接地址 | 回复
    Tags: , PHP, , php-dws   

    PHP-DWS

    1. 关于 php-dws

    php-dws 是 PHP Direct Web Server 的缩写, 是针对 php 的一个新型 sapi 工作模块,
    通过 dwsgi 协议与 web server (如 nginx) 协同工作.

    之所以叫 Direct , 是因为它在执行 php 脚本过程中是直接把输出结果传递给 http client 的
    而不是转交 webserver(nginx) 再由 webserver 发送给 http client.

    在多数情况下, php-dws 可以用于取代 php/fastcgi 的工作, 并且能更出色的完成.

    2. 安装与配置

    相对比较复杂,包括 NGINX 模块和 PHP的 sapi 模块2个部分,详细进入我的论坛查看吧

    http://www.hightman.cn/bbs/forumdisplay.php?fid=15

    3. 后话
    php-dws 还是一个实验性的产品,不推荐运行在生产环境,由于其另类的方式在某些WEB应用的
    场合可能有需求。php-dws 的特别应用示例
    或点击查看这个刷新显示效果:http://root.twomice.net/dws-test/sleep.phpd

    From: http://www.hightman.cn/bbs/forumdisplay.php?fid=15

    关于这个设计思路,感觉挺有意思,作者加油,关注下:)

     
  • bixuan 07:29 on 2010 年 05 月 21 日 链接地址 | 回复
    Tags: , PHP, ,   

    nginx文件类型错误解析漏洞 

    漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。80sec发现其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的攻击者可能攻陷支持php的nginx服务器。
    漏洞分析:nginx默认以cgi的方式支持php的运行,譬如在配置文件当中可以以


    location ~ \.php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include fastcgi_params;
    }

    的方式支持对php的解析,location对请求进行选择的时候会使用URI环境变量进行选择,其中传递到后端Fastcgi的关键变量SCRIPT_FILENAME由nginx生成的$fastcgi_script_name决定,而通过分析可以看到$fastcgi_script_name是直接由URI环境变量控制的,这里就是产生问题的点。而为了较好的支持PATH_INFO的提取,在PHP的配置选项里存在cgi.fix_pathinfo选项,其目的是为了从SCRIPT_FILENAME里取出真正的脚本名。
    那么假设存在一个http://www.80sec.com/80sec.jpg,我们以如下的方式去访问
    http://www.80sec.com/80sec.jpg/80sec.php
    将会得到一个URI

    /80sec.jpg/80sec.php

    经过location指令,该请求将会交给后端的fastcgi处理,nginx为其设置环境变量SCRIPT_FILENAME,内容为

    /scripts/80sec.jpg/80sec.php

    而在其他的webserver如lighttpd当中,我们发现其中的SCRIPT_FILENAME被正确的设置为

    /scripts/80sec.jpg

    所以不存在此问题。
    后端的fastcgi在接受到该选项时,会根据fix_pathinfo配置决定是否对SCRIPT_FILENAME进行额外的处理,一般情况下如果不对fix_pathinfo进行设置将影响使用PATH_INFO进行路由选择的应用,所以该选项一般配置开启。Php通过该选项之后将查找其中真正的脚本文件名字,查找的方式也是查看文件是否存在,这个时候将分离出SCRIPT_FILENAME和PATH_INFO分别为

    /scripts/80sec.jpg和80sec.php

    最后,以/scripts/80sec.jpg作为此次请求需要执行的脚本,攻击者就可以实现让nginx以php来解析任何类型的文件了。

    POC: 访问一个nginx来支持php的站点,在一个任何资源的文件如robots.txt后面加上/80sec.php,这个时候你可以看到如下的区别:

    访问http://www.80sec.com/robots.txt

    HTTP/1.1 200 OK
    Server: nginx/0.6.32
    Date: Thu, 20 May 2010 10:05:30 GMT
    Content-Type: text/plain
    Content-Length: 18
    Last-Modified: Thu, 20 May 2010 06:26:34 GMT
    Connection: keep-alive
    Keep-Alive: timeout=20
    Accept-Ranges: bytes

    访问访问http://www.80sec.com/robots.txt/80sec.php

    HTTP/1.1 200 OK
    Server: nginx/0.6.32
    Date: Thu, 20 May 2010 10:06:49 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: keep-alive
    Keep-Alive: timeout=20
    X-Powered-By: PHP/5.2.6

    其中的Content-Type的变化说明了后端负责解析的变化,该站点就可能存在漏洞。

    漏洞厂商:http://www.nginx.org

    解决方案:

    我们已经尝试联系官方,但是此前你可以通过以下的方式来减少损失

    关闭cgi.fix_pathinfo为0

    或者

    if ( $fastcgi_script_name ~ \..*\/.*php ) {
    return 403;
    }

    本文来自:http://www.80sec.com/nginx-securit.html

     
  • bixuan 16:40 on 2009 年 10 月 17 日 链接地址 | 回复
    Tags: , , PHP,   

    [招聘]PHP|Mysql|Linux人才 

    朋友公司招聘PHP|Mysql|Linux人才:

    要求:有对高负载站点的PHP开发、mysql管理、Linux系统管理、优化丰富经验即可!
    PHP+mysql(1人):2万月薪 + 干股
    ———— 或 —————–
    php(1人): 8K-10k月薪
    mysql+sa(1人):18K月薪

    上班地点:上海陆家嘴软件园(东方路和峨山路口)

    有兴趣的朋友,可以联系我gtalk:bixuan@gmail.com(邮件也可以) 或者QQ:6149968

     
    • maque0312 16:46 on 2009 年 11 月 17 日 链接地址

      工资待遇真好啊。

  • bixuan 09:45 on 2009 年 09 月 15 日 链接地址 | 回复
    Tags: fstorage, , PHP, , 文件存储   

    fstorage 

    好东西,收藏一下!

    Fstorage是免费、开放的轻量级快速的文件系统。

    (碧轩注:根据自己的策略可以方便实现分布式!)

    支持的API有:python和php!

    通过以上的api结合gx_http_fstorage_module,可以很方便实现文件的上传和下载,个人认为比较适合有一定文件存储需求的公司!

    Fstorage如何工作?请看下图:

    目前还只是0.2的版本,如果要线上使用,还是请小心为主,个人关注先,下载请移至官方:http://fstorage.pl/fstorage/downloads

     
  • bixuan 21:15 on 2008 年 12 月 17 日 链接地址 | 回复
    Tags: , Erlang, OCaml, , PHP, , , 消息队列   

    beanstalkd是一个快速,分布式的内存消息队列服务,目前还没测试,先做个记号!

    官方:http://xph.us/software/beanstalkd/

    运行:
    ./beanstalkd -d -l 10.0.1.5 -p 11300

    目前支持多种client

    Erlang
    OCaml
    Perl
    PHP
    Python
    Ruby

     
  • bixuan 22:05 on 2008 年 05 月 01 日 链接地址 | 回复
    Tags: , , fpm, , , PHP, , web server   

    php-fpm文档中文翻译 

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://syre.blogbus.com/logs/20092011.html

    原文链接:http://php-fpm.anight.org/

    fast-cgi是做啥用的

    FastCGI是一个可伸缩的,高速地在web server和脚本语言间交互的接口。关于FastCGI技术的更多信息可以在官方网站这里看到。

    多数流行的web server都支持FastCGI。包括Apache(mod_fastcgi和mod_fcgid),Zeus,nginx和lighttpd。

    FastCGI的主要优点是把动态语言和web server分离开来。这种技术允许把web server和动态语言运行在不同的主机上,以大规模扩展和改进安全性而不损失生产效率。

    php-fpm可以和任何支持远端FastCGI的web server工作。

    更多见:http://syre.blogbus.com/logs/20092011.html

     
  • bixuan 22:09 on 2008 年 01 月 16 日 链接地址 | 回复
    Tags: ip, mask, PHP   

    一个php写的计算网段mask的函数 

    感谢钱同事!

    [php]
    < ?php
    $ipEnd="211.138.224.0";
    $ipStart="211.138.239.255";

    $res=getRegionIPV4($ipStart,$ipEnd);

    echo $ipStart,"/",$res;

    function getRegionIPV4(&$ipStart,&$ipEnd)
    {
    $ipStartL=ip2long($ipStart);
    $ipEndL=ip2long($ipEnd);
    $diff=$ipEndL-$ipStartL;

    if($diff<0)
    {
    $diff=abs($diff);
    $tmp=$ipStart;
    $ipStart=$ipEnd;
    $ipEnd=$tmp;
    }
    $diffMask=decbin($diff);
    return 32-strlen($diffMask);
    }
    ?>
    [/php]
    [shell]
    php t.php
    211.138.224.0/20
    [/shell]

     
  • bixuan 13:38 on 2007 年 12 月 20 日 链接地址 | 回复
    Tags: , , PHP   

    利用etag来实现php等动态页面的cache 

    现在web2.0难的就是对cache的实现,下面是小弟的一点漏见:

    这里以php为例,因为小弟只会耍一点PHP :)
    先来看看什么是Etag?

    Etag(Entity tags )实体标签。这个tag和你在网上经常看到的标签云那种tag有点区别。这个Etag不是给用户用的,而是给浏览器缓存用的。Etag是服务器告诉浏览器缓存,缓存中的内容是否已经发生变化的一种机制。通过Etag,浏览器就可以知道现在的缓存中的内容是不是最新的,需不需要重新从服务器上重新下载。这和 “Last-Modified”的概念有点类似。

    (阅读全文 …)

     
  • bixuan 11:35 on 2007 年 12 月 18 日 链接地址 | 回复
    Tags: boa, fedora, ixp, PHP, thttpd   

    Porting thttpd with PHP to IXP board 

    碧轩:以前看到过一个对比表说thttpd-2.21b最大只能跑到100Mb…

    終於成功將PHP架上去了
    這次是利用php+thttpd完成的,因為boa+php一直試不成功

    開發環境:
    Fedora Core 5
    php 4.4.7
    thttpd 2.21b
    目標板:NET-Start! IXP 420

    0.假設已經開裝好該有的東西,包括make, gcc, toolchain…etc
    主機端與目標板網路已經連接,且可以正常運作
    php, thttpd原始檔都放~/ixp
    裝好之後會放到/usr/local/sbin
    以最簡單裝好為目標,其他設定就請自行修改吧,
    另外,php目前只支援thttpd的2.21b,如果用太新版本的話,
    他還是會要求你換成2.21b
    (阅读全文 …)

     
  • bixuan 10:10 on 2007 年 10 月 15 日 链接地址 | 回复
    Tags: , PHP   

    64bit机器上安装php memcache 

    当在./configure的时候出现:

    checking for session includes… configure: error: Cannot find php_session.h

    错误的时候,这是因为路径问题引起的可以通过修改:configure文件的session_inc_path=”/usr/local/include”变量即可。当然你要确认你的php_session.h是在:/usr/local/include/php/ext/session/php_session.h这样的前提下才可以。

     
c
写新的
j
下一篇文章/下一个回复
k
前一篇文章/以前的回复
r
回复
e
编辑
o
显示/隐藏 回复
t
回到顶部
l
go to login
h
show/hide help
esc
取消