存档

‘php’ 分类的存档

php-fpm下使用eaccelerator产生的内存问题

2010年12月20日 没有评论

使用EA或者类似的OP CODE加速器已经是搭建PHP环境的默认选项了
但是在使用nginx的环境内
会需要使用fastcgi方式来运行php
这种情况下.EA的内存占用可能会和你在APACHE下使用EA不同
由于APACHE调用PHP的方式是模块方式的
所有PHP是位于同一个进程下面的
所以所有PHP模块调用的EA是同一个的.
内存只会占用shm_size大小.
APACHE进程间共享这同一个EA
也就是如果你在ea的配置下面写了64M.则只会占用整个系统的64M
而如果用fastcgi模式
特别是php-fpm
阅读全文…

鞋衫各式名品专卖

收藏与分享
分类: HTTP, php 标签: , , , ,

重燃你的PHP安全之火

2010年1月11日 3 条评论

  关于脚本安全这个话题好像永远没完没了,如果你经常到国外的各种各样的bugtraq上,你会发现有一半以上都和脚本相关,诸如SQL injection,XSS,Path Disclosure,Remote commands execution这样的字眼比比皆是,我们看了之后的用途难道仅仅是抓肉鸡?对于我们想做web安全的人来说,最好就是拿来学习,可是万物抓根源,我们要的不是鱼而是渔。在国内,各种各样的php程序1.0版,2.0版像雨后春笋一样的冒出来,可是,大家关注的都是一些著名的cms,论坛,blog程序,很少的人在对那些不出名的程序做安全检测,对于越来越多的php程序员和站长来说,除了依靠服务器的堡垒设置外,php程序本身的安全多少你总得懂点吧。

  有人说你们做php安全无非就是搞搞注入和跨站什么什么的,大错特错,如果这样的话,一个magic_quotes_gpc或者服务器里的一些安全设置就让我们全没活路了。我今天要说的不是注入,不是跨站,而是存在于php程序中的一些安全细节问题。OK!切入正题。

  注意一些函数的过滤
  有些函数在程序中是经常使用的,像include(),require(),fopen(),fwrite(),readfile(),unlink(),eval()以及它们的变体函数等等。这些函数都很实用,实用并不代表让你多省心,你还得为它们多费点心。

  1、include(),require()和fopen(),include_once(),require_once()这些都可以远程调用文件,对于它们的危害,google搜一下你就会很明了,对于所包含调用的变量没过滤好,就可以任意包含文件从而去执行。举个例子,看print.php

  以下为引用的内容:

  …

  if (empty ($bn) ) { //检查是变量$bn是否为空

  include (“$cfg_dir/site_$.php”); //把$cfg_dir这个路径里的site_$.php包含进来

  …
阅读全文…

收藏与分享
分类: HTTP, Linux web, php 标签: , , , ,

Benchmarking PHP accelerators

2009年12月22日 没有评论

How does an accelerator works ?

Executing a PHP scripts takes a few steps :

  1. PHP loads the file,
  2. it parses the source file, and transforms it into opcodes (code that can be executed by the server),
  3. it executes the opcodes.

The accelerator takes the opcodes from step 2 and caches them in shared memory or on disk. Those cached opcodes are then directly reused the next time the PHP file is executed, without loading & parsing the file again.

Some accelerators add an optimization step which removes unnecessary code (empty loops, unused variables, …). In most cases, this optimisation step does not improve performance much.

Available accelerators

There are 3 accelerators (at last 3 that are stable, maintained and fast) :

阅读全文…

简单生活。简单运动

收藏与分享
分类: Apache, php 标签: , , ,

使用memcached做数据库点击数统计缓冲

2009年12月18日 2 条评论

原理:

  1. 先从数据库读取最新的点击数,更新到缓存中。
  2. 点击动作产生时,在缓冲做自增操作。
  3. 把被点击的ID写入缓存中,以表名为组。表明缓存中有该ID的点击数,需要进行入库操作。
  4. 定时更新缓存数据到数据库。
  5. 如发现入库周期内,点击数无更新,则放弃入库,并山删除表名组中的ID。

阅读全文…

收藏与分享
分类: Apache, memcache, php 标签: , , ,

备忘,mysql的filesort

2009年9月21日 没有评论

恩,又一个知识忘记了..看来要常做备忘才行…

explain 显示的filesort不是说”因为数据太大,内存不够,然后在文件中排序”..filesort的意思是”排序没有使用到索引“,跟文件(file)没啥关系..

当然了,sort这个不会是错的,算法是用quicksort,也就是快速排序

收藏与分享
分类: databases, Linux, mysql, php 标签: , ,

PDO 的安装和简单使用

2008年8月24日 2 条评论

1, PDO 是什么
POD(PHP Data Object)扩展在PHP5中加入,PHP6中将默认使用PDO连接数据库,所有非PDO扩展将会在PHP6被从扩展中移除。
(BTW: 在 PHP4 中你会发现 mysql 是缺省的内置的数据库驱动,  PHP5就会发现 SQLite 是缺省内置的数据库驱动)

简单来说 PDO 就是类似 mysql 和 mysqli 这样的数据库驱动,从而使得 PHP 脚本具有访问数据库的能力。
该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题。

阅读全文…

收藏与分享
分类: php 标签: