好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php线程安全编译 php 单线程

很多站长朋友们都不太清楚php线程安全编译,今天小编就来给大家整理php线程安全编译,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 Apache is running a threaded MPM,but your PHP Modle is not compiled to be t 2、 php如何保证线程安全 3、 Nginx下php装什么版本及PHP的线程安全与非线程安全版本的区别 4、 PHP线程安全与非线程安全的区别:如何选择用哪一个 5、 PHP线程安全和非线程安全的区别 6、 PHP版本VC6和VC9,Non Thread Safe和Thread Safe的区别 Apache is running a threaded MPM,but your PHP Modle is not compiled to be t

PHP编译模式错了。如果在windows下,需在php.net上下载 PHP 5.2.13 zip package ,不要下debug pakage 或 Non-thread-safe zip package 。

若在linux下编译,需去掉--with-openssl 参数。

php如何保证线程安全

线程安全本身在php

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

的现线程安全,指的是

php扩展,

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

php线程安全通过全局的global_id

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

Nginx下php装什么版本及PHP的线程安全与非线程安全版本的区别

1. VC6与VC9的区别:

VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本。

VC9版本是使用Visual Studio 2008编译器编译的,如果你的PHP是用IIS来架设的,那你就选择 VC9版本。

VC9版本是针对IIS服务器的版本,没有对APACHE的支持,而VC6版本对IIS和Apache都提供了支持

2.Ts与nts的区别:

Windows版的PHP从版本5.2.1开始有Thread Safe和NoneThread Safe之分。

先从字面意思上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。

3.PHP的两种执行方式:ISAPI和FastCGI。

ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择ThreadSafe版本;

而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择NonThread Safe版本。通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版。

来源:PHP版本的区别与用法详解-

PHP线程安全与非线程安全的区别:如何选择用哪一个

首先,Linux下的PHP,没有线程安全版和非线程安全版之分。从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,直至5.2.1版本开始有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的改进版

PHP线程安全和非线程安全的区别

Windows下的PHP版本分两种:线程安全版本与非线程安全版本。

要论两者的区别,详细论说起来比较麻烦,从使用者的角度,记住什么时候用哪种版本的区别就可以了吧:

1、windows + IIS + FastCGI :使用非线程安全版本。

解释:

以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单一线程的,不存在多个线程之间可能引发的相互干扰(这种干扰通常都是由于全局变量和静态变量导致的)。由于省去了线程安全的检查,因此使用FastCGI方式比ISAPI方式的效率更高一些。

2、windows + IIS + ISAPI :使用线程安全版本。

解释:

PHP以ISAPI方式安装时,PHP没有独立的进程,而是作为DLL被IIS加载运行的,即是依附于Web服务器进程的。当Web服务器运行在多线程模式下(IIS正是这种情况),PHP自然也就运行在多线程模式下。只要是在多线程模式下运行,就可能存在线程安全问题,因此应选择PHP的线程安全版本。

3、windows + Apache + PHP(模块) :使用线程安全版本。

解释:

如果你要在Apache中以模块方式安装PHP,则你应该使用PHP的线程安全的版本。原因是当PHP作为Apache的模块安装时,PHP没有独立的进程,而是作为模块以DLL的形式被加载到Apache中的,是随Apache的启动而启动的,而Windows下的Apache为多线程工作模式,因此PHP自然也就运行在多线程模式下。因此,这种情况下应使用PHP的线程安全版本。

4、windows + Apache + PHP(ISAPI) :使用线程安全版本。

解释:

由于以ISAPI方式来安装PHP时,PHP也没有独立的进程,也是作为模块被加载到Apache中的,因此,同样也需要使用PHP的线程安全版本。

一般不建议在Apache中以ISAPI方式来安装PHP,原因是到目前为止,Apache通过mod_isapi.so模块来实现的ISAPI功能并不完整,并未完整实现微软对ISAPI所制定的全部规范。

5、windows + Apache + PHP(FastCGI) :使用非线程安全版本。

解释:

如果你要在Apache中以FastCGI方式使用PHP,则同在IIS中使用FastCGI的PHP的情况一样,你应该使用PHP的非线程安全的版本。原因是在Apache中以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单一线程的,故应使用PHP的非线程安全版本以提高性能。

以上资料总结相关资料,分条明细,供选择。

PHP版本VC6和VC9,Non Thread Safe和Thread Safe的区别

主要是为了对应分别由V6 和VC9编译的apache http版本。

php的apache module需要和apache时的.h/header头文件一致并用同一编译器编译。

以apache module方式安装PHP时受VC6和VC9等VC版本限制,

而用CGI/FastCGI方式安装PHP时不受限制VC或编译器版本限制。

Thread Safe线程安全版:适用于以【线程Thread】并发的环境,比如apache module, ISAPI等HTTP服务器模块。为了保持线程安全的同步性,导致性能稍慢。

Non Thread Safe非线程安全版:适用于以【进程Process】并发的环境。比如CGI、FastCGI安装。有裸奔的速度。

关于php线程安全编译的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php线程安全编译 php 单线程的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did225968
更新时间:2023-05-11   阅读:26次

上一篇: php生成letsen php生成验证码

下一篇:域名跳转php代码 域名跳转代码html

相关资讯

最新资料更新

  • 1.php数据导出csv php导出大量数据
  • 2.php添加curl支持 php curl formdata
  • 3.腾讯php招聘 招聘 腾讯
  • 4.php合并特殊字符 php合并单元格的代码
  • 5.php订单管理功能 php订单提醒功能
  • 6.什么是php行为 什么是php,php有哪些优点
  • 7.php每个小时执行 php定时执行每天执行一次
  • 8.php判断是否为蜘蛛 php怎么判断是不是数字
  • 9.php时间戳转换字符串 php 时间戳转日期
  • 10.php+引用swf php引用其他文件内的函数
  • 11.php网页打印控件谷歌 php打印插件
  • 12.php中序递归 php递归算法1加到100
  • 13.php求数组的交集 php数组处理函数
  • 14.php调用裁剪插件 phpcrawl
  • 15.web安全php Web安全原理分析与实践
  • 16.phpdelete的简单介绍
  • 17.怎么写php需求 php市场需求
  • 18.php视频直播源码 php直播源码免费
  • 19.php网站下载图片 网站的php文件下载
  • 20.php区xml文件 php处理xml数据

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]