安全线程的PHP5.6版本是否可以配置Zend Guard Loader for PHP 5.6,为什么配置失败,快来帮我解决问题?

安全线程的PHP5.6版本是否可以配置Zend Guard Loader for PHP 5.6,为什么配置失败,快来帮我解决问题?,第1张

你配置的问题??

我们以php56 (

php56 VC11 x86 Non Thread Safe

)版本为例,说明一下:x86是32位系统的意思,  Non Thread Safe是非安全线程, Thread Safe是安全线程。php官网下载地址:http://windowsphpnet/download/#php-56-nts-VC11-x86

下载好了php56 ,自己配置一下phpini。

接下来,是我们说的重点。首先我们去官网下载,选择相适用的php版本的ZendGuard ,我们这里是php56版本,所以要下载适用它的ZendGuard版本。ZendGuard的官方下载地址:http://wwwzendcom/en/products/loader/downloads#Windows  

我们这里是下载基windows系统的ZendGuard ,(如果你系统是linux,你就下载linux的ZendGuard)

解压并提取  ZendLoaderdll(Windows系统)或ZendGuardLoaderso(Linux),对应你的PHP版本。

下载了Zend Guard Loader 

for PHP 56,解压文件后复制ZendLoaderdll到php安装路径的ext目录中,

在phpini配置加入:

[Zendloader]

zend_extension="C:/php/ext/ZendLoaderdll"

zend_loaderenable=1 

zend_loaderdisable_licensing=0 

zend_loaderobfuscation_level_support=3

zend_loaderlicense_path=

总结一下:

Linux 和 Mac OS X环境下

zend_extension="/usr/lib/php/modules/ZendGuardLoaderso"(替换成自己的ZendGuardLoaderso路径)

zend_loaderenable=1

zend_loaderdisable_licensing=0

zend_loaderobfuscation_level_support=3

重新启动Web服务器。

Windows(非线程安全的php版本)

zend_extension="c:/php/ext/ZendLoaderdll"(替换成自己的ZendGuardLoaderdll路径)

zend_loaderenable=1

zend_loaderdisable_licensing=0

zend_loaderobfuscation_level_support=3

重新启动Web服务器。

测试: 新建文本文档,填写下面内容:<phpphpinfo();>保存,然后更改文件名为phpinfophp放到你域名根目录,然后通过你的域名+phpinfophp浏览查看,有查看到ZendGuard 就说明安装成功,否则就安装失败。

或者:打开windows的“运行”输入cmd,切换路径到你php安装目录,执行php -v 回车。假如:你的php安装在e盘的php文件 ,命令如下:①cd E:/php 回车。②E: 回车  进到你想要的路径下。③php -v 回车 有查看到有加载zendloader 就说明安装成功,否则就安装失败。

安装ZendGuard失败原因如下:①你安装了低于php53的版本②不支持64位的php,只支持32位的

③Windows下,Zend Loader only works with NTS PHP!

ZendGuard只支持NTS(Non Thread Safe)版的php,TS(Thread Safe安全线程)版的不支持。

如何判断:

通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版。

按住ctrl+f快捷键,输入Thread Safety ,查看里面属性是不是enabled。

附上NTS和TS的区别

NTS:Non Thread Safe

非安全线程, 在执行时不进行线程(Thread)安全检查。

TS:Thread Safe

安全线程, 执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。

注意事项

ZendGuard只适用非线程安全版本的php

线程安全本身在php

的运行原理上就做到了,每个请求重新分配的内存空间,所谓php

的现线程安全,指的是

php扩展,

随着扩展模块的启动,分配的内存可以提供给多个请求调用

php线程安全通过全局的global_id

,为每个全局变量做了唯一ID的区分

1 可以写个Config类,生成一个实例,加入代理参数。

2 写个php curl多线程类,多线程类拥有config实例 这样就不需要每次都写curl_setopt($ch, CURLOPT_PROXY, $ip1);

fopen('result_alog', 'w');

改成 fopen('result_alog', 'a');

http://bloguooglede

通常意义上所说的多进程是由apache调度的,比如html页面同时发送5个ajax请求的时候,那么5个php进程会几乎同时进行。

PHP本身是不存在多线程的,总是单线程的方式执行。

误区就是PHP可以通过特别的手段用多进程的方式来模拟多线程,不过几乎用不到。因为PHP不像java之类的本身有进程管理机制,因此模拟的多线程非常不好控制,同时效率也并不高。

进程是操作系统分配资源和调度的功能单元,一个进程里面有一个或者多个线程,线程是操作系统的一个独立运算单元。通常可以认为一个软件对应一个进程,并行是指多个软件一起运行,实际上分时复用而已,并发是指某个软件在运行的时候把计算分给多个CPU同时进行计算,是真正的同一时间内一起发生的事情。

PHP-fpm使用的就是多进程模型。

HHVM它选择的是多线程模型。

对于某个服务而言,譬如web服务,主要考虑它的并发能力,就是单位时间内能处理的请求数量。而并行计算就是为了提高并发能力的。脱离nginx或者apache来说,php的并行处理能力,既可以用多进程的模型来提高,也可以用多线程的模型来提高。最简单的情况下,php提供单进程单线程的方式来提供服务,每次之处理一个请求,如果请求的处理速度足够快,一秒时间内并发能力也可以算是强的,但是这样比较浪费资源,所以往往会根据CPU、内存、网络的情况来设置多进程、多线程或者多服务器来提高并发能力。

sybase_connect

连上数据库。

语法: int sybase_connect(string [servername], string [username], string [password]);

返回值: 整数

函数种类: 数据库功能

本函数用来打开与 Sybase 数据库的连接。参数 servername 为欲连上的数据库服务器名称。参数 username 及 password 可省略,分别为连接使用的帐号及密码。使用本函数需注意早点关闭数据库,以减少系统的负担。连接成功则返回数据库的连接代号,失败返回 false 值。

首先,Linux下的PHP,没有线程安全版和非线程安全版之分。从2000年10月20日发布的第一个Windows版的PHP3017开始的都是线程安全的版本,直至521版本开始有Thread Safe(TS,线程安全)和None Thread Safe(NTS,非线程安全)之分。

因为,Linux/Unix系统采用的是多进程的工作方式,而Windows系统采用多线程的工作方式。即:Linux系统的任务调度基本单位是进程,Windows系统的任务调度基本单位是线程(本观点来自自学与总结,不能保证百分之百正确)。

所以,在Windows系统的IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程,且CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。

于是,一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。但存在一个问题,很多常用的PHP扩展是以 Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错搞垮IIS。

为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用,而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。

因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(TS,线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。

名词解析:

IIS:Internet Information Services (互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务

CGI:Common Gateway Interface (通用网关接口),是外部应用程序(CGI程序)与Web服务器之间的接口标准

ISAPI:Internet Server Application Programming Interface (互联网应用程序接口),是为Microsoft所提的Internet server的API

FastCGI:CGI存在收到每个请求时都开辟一个进程等不足,FastCGI可以理解为是征对CGI的改进版

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 安全线程的PHP5.6版本是否可以配置Zend Guard Loader for PHP 5.6,为什么配置失败,快来帮我解决问题?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情