PHPlet是什么?
很简单,它是一个使用PHP编写的Web服务器,可以替代我们常用的Apache或IIS。
为什么要介绍PHPlet?
因为它是PHPer们学习Web服务器原理的捷径。
因为它的程序结构很好,类似Java的面向对象编程,有很好的参考价值。
因为我认为PHP5和PHPlet相继发布稳定版本后,PHP5 PHPlet SQLite(PPS)将是小型应用、程序演示的另外一种选择。
现在大部分的小型应用或者程序演示都是把Apache PHP MySQL(APM结构)做成exe或rpm安装包,它的容量在8M-45M左右。如果使用了PPS结构整个系统将会缩减到2-3M之内(SQLite是嵌入式数据库),而且省去了对Apache和MySQL的依赖。
PHPlet的运行方式?
PHPlet使用php_socktes.dll实现端口侦听。
PHPlet是常驻内存的,可以使用srvany.exe将它作为NT的服务运行。
PHPlet的多进程功能只能运行在Linux、FreeBSD、*unx系统等系统下,这是因为PHP的“进程控制函数库”不支持Win32平台。

好了,废话不多说,马上进入我们的PHPlet之旅。

一.资源下载:
l          PHP
ZIP-Format: http://cn.php.net/download/
TGZ-Format: http://cn.php.net/download/
要下载最新的稳定版本,这样会得到更好的性能和稳定性。我用的是PHP4.3.6,写这篇文档时PHP5还在测试阶段。
要下载ZIP包而不是安装包,因为安装版(其实是简化版)中没有我们需要的DLL动态链接库。

l           PHPlet
ZIP-Format: http://phplet.sourceforge.net/
TGZ-Format: http://phplet.sourceforge.net/
要下载最新的稳定版本,这样会得到更好的性能和稳定性。我用的是PHPlet0.0.7,写这篇文档时还没有稳定版本。

二.安装:
l          PHP

解压缩到D:\PHP4:
如果你是初学者最好释放到我说的目录,否则后面会带来一些麻烦。
创建cli_php.exe:
将D:\PHP4\cli\php.exe复制到D:\PHP4\cli_php.exe。
它是PHPlet的启动程序,复制到D:\PHP4是为了能跟php.exe共享php.ini。
PEAR的安装:
PHPlet扩展了Pear的类库,那么我们先来安装Pear。
前提是你的电脑处于连线状态,因为安装程序需要下载一部分组件(还没研究如何不下载)。
另外你的身份必须是Administrator,因为安装程序中会在Windows目录下创建pear.ini。
一切准备就绪后运行D:\PHP4\go-pear.bat开始安装。

第一步. 直接按回车(也可以CTRL C退出:D):
Welcome to go-pear!

Go-pear will install the 'pear' command and all the files needed by
it.  This command is your tool for PEAR installation and maintenance.

Go-pear also lets you download and install the PEAR packages bundled
with PHP: DB, Net_Socket, Net_SMTP, Mail, XML_Parser, PHPUnit-0.6.2.

If you wish to abort, press Control-C now, or press Enter to continue:

 
第二步. 输入Pear下载地址:
用来指定Pear组件的下载地址和端口,可以直接按回车。
HTTP proxy (http://user:password@proxy.myhost.com:port), or Enter for none::

 
第三步. PHP路径设置:
一共7项,输入相应的序号就可以修改,输入"all"是修改全部,一般情况下只需要修改第7项。
选择第7项后会弹出一个windows的选择目录对话框,选择D:\PHP4。
Below is a suggested file layout for your new PEAR installation.  To
change individual locations, type the number in front of the
directory.  Type 'all' to change all of them or simply press Enter to
accept these locations.

 1. Installation prefix                           : D:\PHP4
 2. Binaries directory                          : $prefix
 3. PHP code directory ($php_dir)   : $prefix\pear
 4. Documentation base directory   : $php_dir\docs
 5. Data base directory                      : $php_dir\data
 6. Tests base directory                    : $php_dir\tests
 7. php.exe path                                  :

1-7, 'all' or Enter to continue:

 
4.确认:
确认一些组件是否安装,这里要输入"Y",因为PHPlet正用到他们。
The following PEAR packages are bundled with PHP: DB, Net_Socket, Net_SMTP,
Mail, XML_Parser, PHPUnit-0.6.2.
Would you like to install these as well? [Y/n] :

 
5.安装或下载组件:
接下来请稍等几分钟,安装程序会自动下载组件并安装。
如果"PHPUnit-0.6.2"下载出错将会报错,这时就要检查一下你的网络连接了。(只要网络正常一般不会有问题,你可以访问http://pear.php.net试试)
Loading zlib: ok
Using local package: PEAR.............ok
Using local package: Archive_Tar......ok
Using local package: Console_Getopt....ok
Using local package: XML_RPC..........ok
Bootstrapping: PEAR...................(local) ok
Bootstrapping: Archive_Tar............(local) ok
Bootstrapping: Console_Getopt.........(local) ok
Using local package: DB...............ok
Using local package: Net_Socket.......ok
Using local package: Net_SMTP.........ok
Using local package: Mail.............ok
Using local package: XML_Parser.......ok
Downloading package: PHPUnit-0.6.2....

好了,到这里Pear已经安装完毕。
修改php.ini:
将D:\PHP4\php.ini-dist改名为php.ini,然后打开。

找到:
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"
改为:
; Windows: "\path1;\path2"
include_path = ".;D:\PHP4\includes;D:\PHP4\PEAR"

找到:extension_dir = "./"    改为:extension_dir = "D:\PHP4\extensions\"

找到:;extension=php_sockets.dll    改为:extension=php_sockets.dll

 
l          PHPlet

解压缩到D:\PHP4\PHPlet:
如果你是初学者最好释放到我说的目录,否则后面会带来一些麻烦。
更改配置文件:
打开D:\PHP4\PHPlet\config\phplet.conf

"WEB_ROOT" 修改为:"D:\\PHP4\\PHPlet\\www"
"HTTP_HOSTNAME" 修改为:"localhost"
"HTTP_HOSTPORT" 修改为:"8080"
"HTTP_SERVER_MODE" 修改为:"sequential"
"HTTP_SERVER_DEBUG" 修改为:"false"
"PHP_EXECUTABLE" 修改为:"D:\\PHP4\\php.exe"
"CLASSLOADER_SINTAX_CHECK" 修改为:"false"
更改启动文件:
打开D:\PHP4\PHPlet\bin\phpletstart.bat

link:http://www.knowsky.com

"PHP_EXE" 修改为:D:\PHP4\cli_php.exe
三.开始!启动服务器!
进入到D:\PHP4\PHPlet\bin,双击phpletstart.bat启动服务。
好了,打开浏览器输入http://localhost:8080/phplet/HelloWorld看一下效果吧。
四.性能测试
    发现只要运行一次,无论对HelloWorld.php做任何修改(甚至删除),也不会改变第二次刷新的结果(跟Java Servlet很像吧?),除非重新启动服务器。所以我感觉它的性能一定很棒,不出所料,请看我的测试结果:
    服务器A(PHP4 PHPlet),特别选了台很烂的 AMD K6-2 400 128M。
    客户机B(Windows2003 IE6),P42.6G 500M
    客户机B输入网址 http://192.168.0.15:8080/PHPler/HelloWord.php 然后按住F5持续1分钟,服务器A占用CPU一直持续在60%。如果是Apache2 PHP4(CGI模式)以这样的频率刷新将会持续100%,时间长后有可能会沾光虚拟内存!

    当然了,上面只是片面的测试,做为WEB服务更主要的还是稳定,因为时间关系也没功夫更详细的测试。大家可以作更多测试后再一起讨论。
五.注意事项
1. 上面说过PHPlet编程有点类似Java Servlet,只要运行一次无论对.php作任何更改(甚至删除),也不会改变第二次刷新的结果。
2. PHPlet的HTTP_HOSTNAME(主机名)最好设置成你的IP而不是localhost,否则其它主机无法通过你的IP访问。
3. 程序中不要使用exit,要使用return退出,否则将会关闭PHPlet服务器。
4. 应该用$response->write()方法输入字符串,因为print或echo会将字符串输出到终端上。
5. PHPlet不支持虚拟目录和虚拟主机功能。
六.结束语
写这篇文章之前并没有接触过Pear、PHPlet和Socktes函数库,所以有些术语可能说得不够准确,欢迎指正!
对PHPlet和其他Web服务器熟悉的朋友希望能相互交流,如果你有任何问题也可以写信给我。

为中国的PHP事业贡献自己微薄的力量 ---- 毛松<maosong@126.com>

PHPlet在Windows下的安装的更多相关文章

  1. 五分钟学会HTML5的WebSocket协议

    这篇文章主要介绍了五分钟学会HTML5的WebSocket协议,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  3. ios – 蓝牙LE,scanForPeripheralsWithServices在后台增加速度

    我在iPhone5S上使用蓝牙LE,我做了以下工作:>我有一个蓝牙外设,我配置它在所有三个蓝牙广告频道(37,38和39)上宣布每20秒.>我已经配置了我的应用程序与UIBacgroundModes=蓝牙中央在Info.plist>我已经启动了一个scanForperipheralsWithServices,如下所示码:目前的状态是:>在前台模式下,当我启动外围设备时(一秒钟内),应用程序会迅速收

  4. IOS蓝牙LE:无法使用存储的配对数据进行连接

    花了几个小时搜索网路,没有运气这里是我的问题:>如何使用我手机中存储的配对数据将iPhone应用程序从我的iPhone应用程序连接到蓝牙LE设备?我错过了什么吗?>这可能不是IOS的问题,因为如果配对数据存在于连接设备的手机中,会自动使用?更新2013-10-27我已经发现,如果配对存在,那么在发现特性之后,您无法通过配对认证来读取受保护的特性.没有保护特性的问题!

  5. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  6. PHP实现文件安全下载

    例如你希望客户要填完一份表格,才可以下载某一文件,你第一个想法一定是用"Redirect"的方法,先检查表格是否已经填写完毕和完整,然后就将网址指到该文件,这样客户才能下载,但如果你想做一个关于"网上购物"的电子商务网站,考虑安全问题,你不想用户直接复制网址下载该文件,笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。feof){echofread;}fclose;}这样就可以用PHP直接输出文件了。

  7. php-7.3.6 编译安装过程

    这篇文章主要介绍了php-7.3.6 编译安装过程,本文通过实例文字相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 使用sockets:从新闻组中获取文章(三)

    >我们从服务器的这个新闻组中读取了最后的十篇文章,。也可以通过使用HEAD命令读取文章的头信息,或者使用BODY命令读取文章内容。>关于fclose()的更多信息,请参考http://www.php.net/manual/function.fclose.php结论在上文中,我们看到了怎样打开、使用然后关闭一个socket:连接到一个NNTP服务器,取回一些文章。使用POST命令发表文章也复杂不到哪儿去。下一步就是编写一个基于WEB的新闻组客户端了。这样,你有了一个基于web的搜索新闻组的程序了。

  9. PHP默认安装产生系统漏洞

    当你下载PHP後,在它内含的安装文件中帮助了PHP在NTApacheWebServer的安装方式,其中的安装帮助会要你将底下这几行设置加到apache的httpd.conf设置文件中,而这个安装文件将导引你将你的系统门户大开。

  10. 怎样在UNIX系统下安装php3

    #cd/usr/src#tarxvzfapache_1.3.6.tar.gz(产生apache_1.3.6目录)#tarxvzfphp-3.0.8.tar.gz(产生php-3.0.8目录)#cdapache_1.3.6#./configure--prefix=/usr/local/apache(把Apache的安装目录定为/usr/local/apache)#cdphp-3.0.8#./conf

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部