Tag Archives: PHP

备忘一下,IMagicK for php 的windows的二进制版本

http://valokuva.org/builds/ 这里下载编译好的二进制版本

注意ImageMagick相应的配套版本是 6.6.2-Q16-windows-dll,可以

php版本 5.3.2  MSVC9 (Visual C++ 2008) thread-safe

注意ImageMagick安装在c:\imagemagick ,然后把里面的dll 复制到windows\system32目录,然后从起计算机

我大了个包,可以在下面下载

6.17日更新 : 今晚我在我得X60下面测试,干净的系统,没有COPY dll文件到windows/system32目录,系统一样ok,看来跟版本的关系高度相关,dll copy不是必须的。

深入了解php cookie机制

       出于安全性考虑,我们在cookie中保存了经过AES加密的关键信息,在存入cookie以前,密文经过了base64编码,然后我们在用$_COOKIE变量直接读取的时候,发现PHP自动过滤了密文中的+号,经过研究PHP的代码,发现在存入$_COOKIE以前,系统自动做了URLENCODE,解决的办法也很简单,

从$_SERVER[“HTTP_COOKIE”],里面取出一个包含所以cookie内容的字符串,然后自己解析,即可。

lighttpd + php 详细配置指导

本文系摇篮网同事,范晓涛在工作中总结的,希望能对大家有帮助

一、下载地址:
lighttpd:http://www.lighttpd.net/download
php:http://www.php.net/downloads.php
使用wget命令,下载到本地

二、安装:
解压,使用:tar -xzvf path
1.安装lighttpd
./configure –prefix=/home/lighttpd
make
make install
将doc下的lighttpd.conf文件拷贝到/home/lighttpd/etc下

2.安装php
./configure –prefix=/home/php –enable-fastcgi –enable-force-cgi-redirect –enable-zend-multibyte –with-config-file-path=/home/php/etc –enable-discard-path –with-jpeg-dir –with-png-dir –with-zlib –enable-xml –enable-mbstring –with-mysql=/home/mysql
make
make install
将php.ini文件拷贝到/home/php/etc下

三、配置
1.配置lighttpd
server.document-root = “/home/fxt/www/discuz” #程序路径

四、lighttpd模块介绍
lighttpd 主要参考页面:
http://redmine.lighttpd.net/wiki/lighttpd/Docs

“mod_rewrite”,
“mod_redirect”,
“mod_access”,
“mod_fastcgi”,
“mod_expire”,
“mod_compress”

主要介绍以上模块:

1.mod_rewrite模块:
lighttpd不支持像apache中的.htaccess文件跳转,所以将.htaccess中的内容全部写到lighttpd.conf中去。
格式:
url.rewrite = (
“^/archiver/((fid|tid)-[w-]+.html)$” => “/archiver/index.php?$1”,
“^/frameboard_([0-9]+).aspx$” => “/forumdisplay.php?fid=$1&page=1”
}

2.mod_redirect模块:
格式:
url.redirect = ( “^/a.html” => “http://beta.bbs.yaolan.com/t.html” )

3.mod_fastcgi模块:
fastcgi.debug = 1 #调试fastcgi
修改php.ini文件(a)
cgi.fix_pathinfo = 1

说明:
( <extension> =>
(
( “host” => <string> ,                    # 主机
“port” => <integer> ,                    # 端口
“socket” => <string>,                 # either socket or host+port
“bin-path” => <string>,               # php中支持fastcgi能力的bin文件
“bin-environment” => <array>,         # optional
“bin-copy-environment” => <array>,    # optional
“mode” => <string>,                   # optional
“docroot” => <string> ,               # 需要解析的路径地址
“check-local” => <string>,            # 是否检测本地”enable”/”disable”
“max-procs” => <integer>,             # optional – when omitted, default is 4
“broken-scriptfilename” => <boolean>, # optional
“disable-time” => <integer>,          # optional
“allow-x-send-file” => <boolean>,     # optional
“kill-signal” => <integer>,           # optional (v1.4.14+ though option is accepted in earlier versions)
),
( “host” => …
)
)
)
例子:
a.解析不同的文件类型
fastcgi.server = (
“.php” =>
(( “host” => “127.0.0.1”,
“port” => 1026,
“bin-path” => “/usr/local/bin/php”
)),
“.php4” =>
(( “host” => “127.0.0.1”,
“port” => 1026
))
)

b.两台机器均衡负载,解析php(两台机器上已经单独启动fastcgi服务)
fastcgi.server = ( “.php” =>
(
( “host” => “127.0.0.1”,
“port” => 2026,
“docroot” => “/home/fxt/www/discuz”,
“check-local” => “disable”
),
( “host”=>”127.0.0.1”,
“port”=>2030,
“docroot” => “/home/fxt/www/discuz”,
“check-local” => “disable”
)
)
)

4.mod_expire模块:(b)(注意,该模块需要在mod_compress模块前加载,否则在使用了mod_compress模块后,会看不到头部的expires信息)
expire.url = ( “/images/” => “access 1 hours” )
<access|modification> <number> <years|months|days|hours|minutes|seconds>
例子:将以下类型设置有效期
$HTTP[“url”] =~ “^.*(css|jpg|png|jpeg|html|js|gif)$” {
expire.url = (“” => “access 1 months”)
}

5.mod_compress模块:
例子:将以下类型文件压缩
compress.filetype = (“text/plain”, “text/html”, “text/javascript”, “text/css”, “text/xml”)

6.检验方法:
使用火狐浏览器,下载调试功能插件
下载页面结束,按F12后,查看相应类型的头信息中,是否加了Expires,Content-Encoding  gzip,这两个信息。
如果有,则表示mod_expire和mod_compress模块已经正常工作了。

五、将fastcgi拿出来单说一下:
在机器上只启动fastcgi服务,配置如下:
将代码文件/doc/spawn-php.sh拷贝到./lighttpd/bin/目录下
spawn-php.sh中部分需要修改的代码:
SPAWNFCGI=”/home/lighttpd/bin/spawn-fcgi”    #spawn-fcgi的路径(bin)
FCGIPROGRAM=”/home/php/bin/php-cgi”        #php-cgi的路径(bin)
FCGIPORT=”2026″    #监听的端口号
PHP_FCGI_CHILDREN=10
PHP_FCGI_MAX_REQUESTS=1000
FCGI_WEB_SERVER_ADDRS=”127.0.0.1,192.168.1.39″    #D
ALLOWED_ENV=”ORACLE_HOME PATH USER”
USERID=lighttpd    #(c)用户名,好像不能用root;(d)注意该用户需要有权访问程序保存路径
GROUPID=lighttpd    #用户分组

将spawn-php.sh和配套文件拷贝到不同机器上,就可以单独启动了。
在lighttpd.conf文件中的fastcgi.server中配置相应的ip、port就可以了。

以上标有(a/b/c/d)的部分,是可能会出现问题的地方,还请多注意!