菜单

实例讲解php实现多线程_php实例_脚本之家澳门太阳集团,快速最新版

2020年2月8日 - 新闻中心
实例讲解php实现多线程_php实例_脚本之家澳门太阳集团,快速最新版

我们首先来看一个示例

今天有个小web需要php环境运行,为了配置,下了番苦功!终于可以显示了:

 /dev/null &"); echo "处理完成了"; }}?>

澳门太阳集团 1

当执行上述操作时,即使在耗时的处理结束之前也显示处理完成。

我们知道php配置有几种:

exec("php static_massive.php > /dev/null &");

1、CGI方式加载PHP环境,通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少。
特点是:稳定,但效率太低。

由于“ > / dev / null& ”返回的值丢失,我们不会等待响应。

2、ISAPI方式加载PHP环境,通常就是IIS里面配置解释器为php5isapi.dll,目前使用最多,应用最广。
特点是:多线程,效率较高,但不够稳定。

因此,处理完成指示比耗时处理更快。

3、FastCGI方式加载PHP环境,在IIS环境里并不常见,但其它系统环境应用还是有的,不过IIS7.0开始内置FastCGI了。
特点是:高效率,高稳定性,属于将来发展趋势。

但是,该方法不知道耗时的处理何时结束。

我试过其他的特别麻烦,PHP
5.3发布的Windows版已经不支持ISAPI模式了,所以我打算按微软推荐的FastCGI方式运行PHP。

不要忘记考虑采取日志的执行,登录DB等方法向用户传递执行结果。

我用的就第三种,也是最好最快的,因为FastCGI大大加强了IIS处理PHP的能力,能迅速提高PHP站点的反应速度和生产力,

最后,介绍使用PHP扩展模块pthreads的方法。

并具有更高的稳定性和安全性.

它可以比上面使用exec的方法更简单。

    
下载地址:里面有好多种,要那种呢?

①配置环境并安装php

PHP现在推出5.3.2版本了,不过下载的时候有几个不同版本选择。那就是VC6
X86和VC9 X86。
首先我来解答:
VC6是什么?
VC6就是legacy Visual Studio 6 compiler,就是使用这个编译器编译的。
VC9是什么?
VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。

请使用vagrant等准备喜欢的环境。

那我们如何选择下载哪个版本的PHP呢?
如果你是在windows下使用Apache+PHP的,请选择VC6版本;
如果你是在windows下使用IIS+PHP的,请选择VC9版本;

php 需要使用线程安全版本,这是多线程和安全的实现。

那Non Thread Safe是什么?
Non Thread Safe就是非线程安全;
Thread Safe 是什么?
Non Thread Safe 是线程安全;

从官方下载线程安全版本的 PHP。

FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以
FastCGI(无论搭配 IIS 6 或 IIS 7)执行 PHP ,都建议下载、执行 non-thread
safe 的 PHP (PHP 的二進位檔有兩種包裝方式:msi 、zip ,請下載 zip
套件)所以我们选择NO-Thread Safe
版本的PHP来使用

而线程安全检查正是为ISAPI方式的PHP准备的,因为有许多php模块都不是线程安全的,所以需要使用Thread
Safe的PHP。

访问以下内容并从图中的红框下载。

 

下载安装,我安装默认路径了:

此外,对于线程安全安装,您需要使用configure选项指定-enable-maintainer-zts。

澳门太阳集团 2

./configure --enable-maintainer-zts

记得选中第三项:IIS FASTCGI

根据需要,也可以安上Apache和mysql的选项。

澳门太阳集团 3

用以下命令确认了php的版本就可以了。

如果没有安装IIS FASTCGI的 下一步会提示没有安装的,下载安装就行了

php -v

FastCGI  for IIS 6  7  

②pthreads的安装

澳门太阳集团 4

我们来下载zip格式。

澳门太阳集团 5

安装好后,继续下一步,我按照默认了:

解压zip,移动到解压缩文件,然后执行phpize。

澳门太阳集团 6

如果您在PHP模块列表上运行pthreads,则可以执行以下操作。

安装完毕后,就是配置了。

php -m

这种配置有两种方法,我用cmd配置,一条命令就行了。

根据环境的不同,这一块的设定也会有所不同,可以用环境名+pthreads等进行检索来寻找信息。

 

③尝试使用多线程

 

因为sleep被调用两次,所以需要10秒,但实际上它将是5秒。

 

转到刚才安装CGI的目录下: 

>cd
C:WINDOWSsystem32inetsrv

>cscript fcgiconfig.js -add
-section:”PHP” -extension:php -path:”C:Program
FilesPHPphp-cgi.exe”

注意:path:”xxxxphp-cgi.exe”
是你安装php的目录

> cscript fcgiconfig.js -set
-section:”PHP” -InstanceMaxRequests:10000
> cscript fcgiconfig.js -set
-section:”PHP” -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000

澳门太阳集团 7

ok!完毕!

测试下:

新建一个.php文件,里面

<?php

phpinfo();

?>

保存!

运行,出现下面页面,说明配置成功了!

澳门太阳集团 8

这样的方法
IIS就不用怎么配置,他都会自动配置好了!微软提供的配置更加详细

如果按上面的教程配置好后,运行php测试页面,出现了500错误。

那就设置php.ini中的date.timezone项。

我这里设置成上海时区:date.timezone =
Asia/beijing

设置完后就一切正常了!

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图