linux install php eaccelerator

# 安装phpize yum install php-devel make # 下载eaccelerator, 也可以从 http://sourceforge.net/projects/eaccelerator/files/eaccelerator/ 下载 wget http://soft.vpser.net/web/eaccelerator/eaccelerator-0.9.6.1.zip unzip eaccelerator-0.9.6.1.zip cd eaccelerator-0.9.6.1 phpize ./configure –enable-eaccelerator=shared –with-php-config=/usr/bin/php-config make make install vi /etc/php.ini # 在结尾加入 zend_extension=”/usr/lib/php/modules/eaccelerator.so” eaccelerator.shm_size=”16″ eaccelerator.cache_dir=”/tmp/eaccelerator” eaccelerator.enable=”1″ eaccelerator.optimizer=”1″ eaccelerator.check_mtime=”1″ eaccelerator.debug=”0″ eaccelerator.filter=”” eaccelerator.shm_max=”0″ eaccelerator.shm_ttl=”0″ eaccelerator.shm_prune_period=”0″ eaccelerator.shm_only=”0″ eaccelerator.compress=”1″ eaccelerator.compress_level=”9″ 创建eAccelerator缓存目录: mkdir /tmp/eaccelerator chmod 0777 /tmp/eaccelerator 重启 php-fastcgi(如果有的话) php-fastcgi:/etc/init.d/php-fastcgi restart 重启web . . . → Read More: linux install php eaccelerator

CentOS 安装 mongobdb 和 php mongodb扩展

1。准备工作第一步 升级php

默认CentOS 5.5 的 php版本 是 5.1.6 ,为了更好的使用 mongodb,首先升级到php-5.2.17 ,具体操作如下

# rpm –import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

# vi /etc/yum.repos.d/CentOS-Base.repo 增加下面信息

[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

执行命令,自动升级。

yum update php -y
yum install libmcrypt -y

2.安装gcc (如果没有安装gcc的话)

yum install gcc Continue reading »CentOS 安装 mongobdb 和 php mongodb扩展

php 实现定时任务简单实现

php 实现定时任务简单实现

通常情况下实现定时计划任务有以下几种方式:

  • linux下可以借助crontab+php的方式(Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序 )
  • windows 下有两种方式:
    • 借助于vbscript脚本加载无窗口的服务
      do
      set ws=createobject("wscript.shell")
      ws.run"D:\php\php.exe D:\php\source\do.php",vbhide
      wscript.sleep 5000   '毫秒
      loop

      新建文本文件,复制以上脚本,另存为后缀为*(.vbs)的文件后即可。

    • 上面“D:\php\php.exe D:\php\source\do.php” 这种方式可以写在bat文件中,或者window计划任务中都可以执行。
  • php内部支持的一种利用函数“ignore_user_abort ” 来永久执行的方案。
    < ?php
    ignore_user_abort(); // run script in background
    set_time_limit(0); // run script forever
    $interval=30; // do every 30 seconds...
    do{
    $fp = fopen('text3.txt','a');
    fwrite($fp,'test');
    fclose($fp);
    sleep($interval); // wait 30 seconds
    }while(true);
    ?>
    

Continue reading »php 实现定时任务简单实现

fastcgi mod_fcgid: HTTP request length

最近在win2003 apache+php+fastcgi+mysql  开发环境下,使用wordpress上传图片时,遇到稍大的图片总是会遇到“HTTP error”,但是检查过php.ini发现文件大小限制post_max_size设置的没有问题,查看apache的logs 日志记录才显示了问题所在:

“mod_fcgid: HTTP request length 135567 (so far) exceeds MaxRequestLen (131072)”

原来是fastcgi模式下的设置问题,需要在配置文件.htaccess或者直接在apache的配置文件http.conf 中指明,如下:

<IfModule mod_fcgid.c>   AddHandler    fcgid-script .fcgi   FcgidConnectTimeout  20   # to get around upload errors when uploading images increase the MaxRequestLen size to 15MB   MaxRequestLen  15728640 </IfModule>

里面的“MaxRequestLen”就是fastcgi模式下上传文件也就是http接受的最大文件长度。

PHP5.3开发者模式

PHP开发者模式

最近升级到php5.36 最新版本运行,总是会很多 “Fatal Error” 或 “Notice” 错误,后来发现Notice 是因为 php.ini 里在development模式下定义error_reporting = E_ALL | E_STRICT, 在此模式下php解释器检查语法比较严格,如果想忽略的话可以改为error_reporting  =  E_ALL & ~E_NOTICE 来跳过Notice级别的警告。

而deprecate的error警告,提示我们的PHP程序要与时俱进的向着最新的编码要求看齐,这样在以后升级PHP版本时才不会带来很多不可预测的错误,编码也更加规范。

php升级为5.3后,程序会报 Function split() is deprecated 的错误。 这是因为种种原因(主要是关于正则的原因,具体见后),split这个函数在新版本不支持了。 在php中,再使用deprecated的函数会报错,必须改掉。(java里deprecated的函数只是给警告,还可以继续用) 改为什么呢? 看第一个参数,如果第一个参数不是正则表达式,split改为 explode;如果是正则表达式,split改为preg_split。 explode会比以前快很多,因为以前要考虑正则,explode不考虑正则。 ————- PHP 5.3.0 之後的 regex, 希望使用 PCRE 的規格, POSIX Regex 都不建議使用了(統一 Regex, 避免規格太多?). 所以下述是不建議使用的 Function (POSIX), 與建議替換成的 Function (PCRE) 列表, . . . → Read More: PHP5.3开发者模式