Alexa Traffic Rank PHP5 Class

This PHP5 class utilizes the web service provided by Alexa/Amazon to get the traffic information about the site. You’ll need to sign up for an account at Alexa to get the pair (access key and secret key). The first 10,000 queries per month are free. view plaincopy to clipboardprint? mParams = array( 'Service'=>'AlexaWebInfoService', 'AWSAccessKeyId'=>'YOUR ACCESS KEY', // access key id 'Operation'=>'UrlInfo', 'ResponseGroup'=>'Rank', 'Url'=>NULL, 'Timestamp'=>gmdate('Y-m-d\TH:i:s.000\Z'), 'Signature'=>NULL, ); $this->prepareSignature(); } /** ref: http://developer....

2009-03-29 · 2 分钟 · admin

Nginx + PHP mysql_pconnect = Database errors (Too many connections)

If you’re using NGinx spawn-cgi or FPM with PHP and calling mysql_pconnect, you are likely going to experience frequent database crashes and “Too many connections” errors. This took a while to trace, but once you understand the issue, it all makes sense. mysql_pconnect opens a “persistent” connection to the database. From the documentation: “the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (mysql_close() will not close links established by mysql_pconnect())....

2009-03-28 · 2 分钟 · admin

关于Nginx+PHP fastcgi 胜过Apache十倍 自己验证

记得自己每一次知道nginx 还是在 群里讨论张老师的文章 他的最新文章 Nginx 0.7.x + PHP 5.2.8(FastCGI)搭建胜过Apache十倍的Web服务器(第4版)[原创] http://blog.s135.com/post/366/ 我自己是在 freebsd 7.0服务器上 硬件配置 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz *2 内存 4G sas 146 * 2 raid1 基本和张老师的配置差不多, nginx 配置 user www www; worker_processes 8; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; worker_rlimit_nofile 200000; events { worker_connections 200000; #use kqueue; } php-cgi 开启 128 进程 实际结果, nginx 也许处理静态页面可以达到3W并发,但是如是果php 得估计不行,我自己用 webbench 开起1W连接,本机差点没死,但此时 php页面打开已经相当的慢了,但status 速度仍然很快,说明nginx 的承载能力确实很强,但php处理这块依然是最大的瓶颈,此文只是本人自己测试,也许是本本配置系统有问题,导致达不到3W并发!

2009-03-25 · 1 分钟 · admin

Lighttpd中为php加上open_basedir

举例说明 一、 fastcgi.server = ( ".php" => (( "socket" => "/tmp/php-fastcgi.socket", "bin-path" => "/usr/bin/php5/bin/php-cgi -d open_basedir=/web/www/php5:/web/www/php", "max-procs" => 10, "bin-environment" => ( "PHP_FCGI_CHILDREN" => "16", "PHP_FCGI_MAX_REQUESTS" => "1000", ), "broken-scriptfilename" => "enable" )) ) 二、 cgi.assign = ( ".php" => "/usr/bin/php5/bin/php-cgi -d open_basedir=/web/www/php5:/web/www/php" )

2009-03-24 · 1 分钟 · admin

[ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool 'default'

freebsd ports 装完php-ftp 不能起动 [ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool ‘default’ 出现些错误提示,请修改 php-fpm.conf Unix user of processes Unix group of processes 换成 Unix user of processes <value name="user">www</value> Unix group of processes <value name="group">www</value> /usr/local/etc/rc.d/php-fpm start Starting php_fpm.

2009-03-23 · 1 分钟 · admin

pecl::memcache和pecl::memcached

原文地址:http://www.surfchen.org/?p=371 终于,基于libmemached的php扩展在pecl发布了。 于是,现在pecl上有两个memcache客户端了。一个是完全在PHP框架内开发的memcache,一个是使用libmemcached的memecached。 功能嘛,我没看过libmemcached,但是理论上来说,在其他语言里已经很流行的libmemcached应该会有更完善的功能。而程序上性能(内存和CPU使用率),不好说,虽然pecl::memcache是原生实现的,但是使用libmemcached的pecl::memached只支持OO接口,而pecl::memcache则是OO和非OO两套接口并存,这点拖累了它。 其实这些都不是最重要的。使用libmemcached有个明显的优点,就是以后随着memcached服务器端的改进,这个lib也必定会马上跟进的。而pecl::memcache却不一定能做到按时跟进。 pecl::memcached,还有个非常称赞的地方,就是flag不是在操作的时候设置了。而是有一个统一的setOption()。冲着这个方法,就非常值得从pecl::memcache转到pecl::memcached了。具体的接口可以看这里:http://cvs.php.net/viewvc.cgi/pecl/memcached/memcached-api.php?view=markup 我在pecl-dev@里提到是否可以做成driver-based的架构。跟现在的MySQL一样,可以选择使用mysqlnd或者libmysql作为底层的引擎。但是之后想想,其实我并不是很支持对memcached使用这样的架构,它和MySQL的情况不一样。 mysqlnd作为一个引擎而不是一个新的api来开发,可以使得大量的应用程序不需要对数据库操作做修改即可用上新的引擎。如果mysqlnd作为一个新的extension,那么如果它想兼容以前的程序,就面临一个很困难的选择。因为目前为止,存在3个官方的使用libmysql的,并具有不同对外接口的MySQL类集。mysqlnd能兼容mysql,就无法兼容mysqli或者pdo。当然对于使用自己的抽象数据库类的程序来说,这个可以通过改写类或者更换driver(php层面)来实现兼容。但是要想想,就算是使用抽象库,这个世界如此之多的数据库抽象库,如果要让所有人都用得起nd,那得改多少个库,加多少个driver阿。 memcached的情况就简单很多了,目前和官方关系比较密切的只有pecl::memcache,而且接口基本上都是根据memcached的协议来的,和libmemcache相差无几。它们其实都可以被看作是一个抽象类里的不同driver。所以虽然是两套不同的客户端,但是更换起来,几乎不需要做什么改动,只需要在类初始化的地方更改一下,set/get等等这些方法的flag去掉即可,除非你使用了非OO的接口。 另外mysql在通讯和数据获取上也比memcache复杂,nd可以做到一些libmysql无法做到的事情。例如buffer可以直接用php内部的HashTable和zval存储;再例如一些作为持久链接的结构可以更多地缓存起来。(这些例如只是我的猜测,我并没有去阅读过mysqlnd的代码) 相关文章: pecl上有三个memcached客户端了 pecl::memcache的哈希策略 影响memcached性能的事件提醒机制

2009-03-23 · 1 分钟 · admin

PHP 5.2.9 Released!

Security Enhancements and Fixes in PHP 5.2.9: Fixed security issue in imagerotate(), background colour isn’t validated correctly with a non truecolour image. Reported by Hamid Ebadi, APA Laboratory (Fixes CVE-2008-5498). (Scott) Fixed a crash on extract in zip when files or directories entry names contain a relative path. (Pierre) Fixed explode() behavior with empty string to respect negative limit. (Shire) Fixed a segfault when malformed string is passed to json_decode(). (Scott)

2009-03-19 · 1 分钟 · admin

php-fpm文档中文翻译

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://syre.blogbus.com/logs/20092011.html 原文链接:http://php-fpm.anight.org/ wiki:http://www.php-fpm.com/ 什么是 FastCGI FastCGI 是一个可伸缩、高速的在web server和脚本语言间通迅的接口。关于FastCGI技术的更多信息可以在官方网站和Wikipedia看到。 FastCGI 被许多脚本语言所支持,包括 php,如果用 –enable-fastcgi 选项编译的话。 多数流行的web server都支持 FastCGI。包括Apache(mod_fastcgi和mod_fcgid),Zeus,nginx和lighttpd。 FastCGI 的主要优点是把动态语言和 web server 分离开来。这种技术允许 web server 和动态语言运行在不同的主机上。这可以改进可扩展性和安全性而没有大的效率损失。 php-fpm 可以和任何支持外部 FastCGI 技术的 web server 一起使用。 php-fpm是做啥用的 很不幸,官方网站 php.net 上的 php 在将 FastCGI SAPI 用于生产环境方面有许多已知的问题。 下面是关于启用 FastCGI SAPI 时的问题和 php-fpm 是如何解决他们的对比列表。 描述 php自带的 spawn-fcgi + spawn-php.sh + daemontools php-fpm php守护进程化: pid file, log file, setsid(), setuid(), setgid(), chroot() (-) (+) (+) 进程管理。可以用 "graceful" 来停止并启动 php worker 进程而不会丢失请求。能够平滑地升级配置和二进制程序而不丢失任何请求。 php4 (-), php5 (只有 graceful) (-) (+) 严格限制来源请求的 web server 的 ip 地址 php4 (-) php5 (+) (从 5....

2009-03-14 · 3 分钟 · admin

php 编译支持ImageMagick

首先你要先成功的编译一次php 在phpbin目录中会产生 phpize 这个文件,是待会咱们要使用到的。 按照网上说的方法,试验了N遍总是失败。 总是提示: Cannot find config.m4. Make sure that you run ‘/usr/local/php/bin/phpize’ in the top level source directory of the module 无奈,去 官方网站 然后进入 program interface 的链接 找到php的部分,点击进入,下载了 magickwand-0.1.8.tar.bz2 然后再次按照网上的方法 解压缩到php源代码目录的ext目录下 然后cd进去 /usr/local/php/bin/phpize 成功了。。。 然后cd到php源代码目录,也就是 cd ../../ rm -rf ./configure 再执行: ./buildconf –force rebuild的时候可能会出现 autoheader: WARNING: Using auxiliary files such as acconfig.h', config.h.bot’ autoheader: WARNING: and config.h.top', to define templates for config.h.in' autoheader: WARNING: is deprecated and discouraged....

2006-06-25 · 1 分钟 · admin

php4支持xslt

首先需要下载如下软件包: sourceforge.net/projects/expat/ 从这里下载最新的 expat 我下载的是:expat-2.0.0.tar.gz www.gingerall.com/charlie/ga/xml/d_sab.xml 从这里下载sablot 我下载的是:Sablot-1.0.2.tar.gz xmlsoft.org/ 从这里下载 libxslt 我下载的是:libxslt-1.1.9.tar.gz 三个包分别解压缩 先来libxslt ./configure –prefix=/usr/local/libxslt –with-libxml-prefix=/usr/local/libxml2 && make && make install 再来expat ./configure && make && make install 继续sablot ./configure && make && make install 最后重新编译php ./configure –prefix=/usr/local/php/ –enable-force-cgi-redirect –enable-mbstring=all –enable-mbregex –enable-mbstr-enc-trans –enable-versioning –enable-trans-sid –enable-ftp –with-mysql=/usr/local/mysql/ –with-apxs2=/usr/local/apache2/bin/apxs –with-openssl=/usr/local/openssl –with-soap=yes –with-curl=/usr/local/curl/ –with-zlib-dir=/usr/local/zlib/ –with-mcrypt=/usr/local/libmcrypt/ –with-gd=/usr/local/gd2 –with-jpeg-dir=/usr –with-freetype-dir=/usr/local/freetype –with-ttf –with-png-dir=/usr –with-mhash=/usr/local/mhash/ –with-dom=/usr/local/libxml2 –with-iconv=/usr/local/libiconv –enable-xslt –with-xslt-sablot –with-xsl=/usr/local/libxslt make && make insteall 重新安装zend吧。 over this~~~

2006-04-30 · 1 分钟 · admin