php是什么单位,hph是什么啊
php是什么单位,hph是什么啊详细介绍
本文目录一览: hph是什么啊
hph=horsepower-hour意思是 马力小时,马力是功率的单位,马力小时就是热功的单位,
1米制马力小时(hp·h)=2.64779×106焦耳(J)
1焦耳=3.777×10-7公制马力小时
=3.723×10-7英制马力小时
php是一种脚本语言,在web编程上用的很多。
1、定义
PHP:(外文名:PHP:
Hypertext
Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP
独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
2、特性
(1)、PHP
独特的语法混合了
C、Java、Perl
以及
PHP
自创新的语法。
(2)、PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比,
PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。
(3)、PHP支持几乎所有流行的数据库以及操作系统。
(4)、最重要的是PHP可以用C、C++进行程序的扩展。
3、应用
技术应用、伪静态、静态页面生成、数据库缓存、过程缓存、div+cssw3c标准
大负荷、分布式、flex、桌面程序应用(不擅长)、支持MVC模型、Smarty模版引擎。
电压单位符号U 下标p hp 是什么意思?
没可以用优或者下标签的hp,这个表示的就是电压的一个单位的一个数量值的,所以呢,这个一定要记住,如果是学物理的话,
PHP、JAVA和ASP.NET之间的区别?具体点的 谢谢!
我是因为再找和你一样的问题才看到这个问题的,所以这里说说自己的观点,求交流...
由于都是用于web开发,是现在web市场上的三个老大哥,所以导致了许多想学web开发的同学纠结于学哪个好的问题。当初我也纠结于此,不过当每样都浏览一遍后,我发现现在的他们来说都是一个妈妈生的了。为什么这么说呢,因为在市场经济的今天,连中国都学会了西学东用,拿资本主义过来说是具有中国特色的社会主义。这三门语言(其实说“技术”跟到位)也是一样,他们相互竞争的同时也相互吸取优点,融合与自身。比如当你用C#,php,java开发的时候,你会发现在他们之间转换,根本就没有语言障碍,甚至连好多类或方法都是同名或相似。当然,我没有认真的研究过他们的底层代码,所以说的都是表面现象。
当然,在注意到相同点的同时,我们跟关心的是他们有哪些不一样的地方,毕竟只是“像”一个妈生的嘛。从应用层面上来讲,php是专门用于web开发的一门技术/语言,他在悬浮在技术和语言之间。怎么理解呢,因为从一开始,他就是一个技术,叫做personal home page,用于制作个人网页。后来渐渐发展而来,演变成了所谓的“语言”(ps:我很纠结于这个界限!)。他是一门轻量级的语言,专一于web开发,并汲百家之长,而且由于完全开源,因此具有良好的群众基础和发展潜力;java,纯种,可“考证”。为什么说是纯种呢?因为他的的确确就是一门语言,可以用于各方面的开发,和c++是平辈。所以web开发只是他的应用的一部分,只是因为他在web领域影响力比较深厚,所以导致了大家直接搬出他来做代表的失误,但大家都见怪不怪了;asp.net是一项技术,他是脱离语言的,你可以用常用语言是C#和VB,我用的是c#。asp.net是由微软一手推出,也是结合了各家所长,用一开始的asp技术和.net fromwork 组合而来。由于.net fromwork 技术的引入,asp.net的开发变得特别傻瓜话,拖控件成了大部分ASP.NET程序员进一步学习的绊脚石,因为他们太迷糊于表面工作了。
前面简单的说了下三者的区别,我都有些被说迷糊了,所以我想我有必要重新解释一下(如果你愿意看下去的话)...
首先,java是一门像C/C++一样的语言,由于他的解释执行的运行方式(在web应用中有很大优点:平台移植性,运行时效率等),在web应用领域占有很大一部分江山;其次,ASP.NET是一门技术,由ms推出,比较拘泥。而php就是一门专门用于web开发的语言/技术。在有语言基础的条件下入门学web的话,php比较直接,java web应用可以玩得高级一点,不推荐从asp.net着手(小心被ms傻瓜化)。如果有时间自己三个都看看,自己就能有更深的体会,有时候发现三者相通,有时候发现各有千秋,这种感觉莫名其妙。这也是之前我说到和你发出同样疑问的原因。以上是我的简单理解,求交流...QQ:1070867716
net是在windows里运行的,所以会产生费用,而php和java是免费的。第二:学java和net的工程师较多,而学php的则较少,如果一个企业需要开发一个网站的话,那么相对来说java和net的工程师比较好找些,在这上面也节约了很多成本
java 开发效率成本高 主要的好处是配合oracle效率非常不错 适合大型web和超大型web
php 开发成本一般 配合mysql效率也不错。。属于平级web,适合中型和偏大一点的web
asp.net 开发非常之快 配合sqlserver也还过的去 适合中小型web
开发环境的区别 。。
一、主体不同
1、PHP:即“超文本预处理器”,是一种通用开源脚本语言。
2、JAVA:是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。
3、ASP.NET:是微软公司推出的新一代脚本语言。
二、特点不同
1、PHP:PHP在不断兼容着类似closures和命名空间等技术,同时兼顾性能和当下流行的框架。版本是7之后,一直在提供更高性能的应用。
2、JAVA:具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等
3、ASP.NET:基于.NET Framework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。
三、优势不同
1、PHP:独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。
2、JAVA:作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程
3、ASP.NET:具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。
参考资料来源:百度百科-asp.net
参考资料来源:百度百科-Java
参考资料来源:百度百科-PHP
PHP主要是用来做什么呢,和JAVA有什么区别是?
PHP 能做任何事。PHP 主要是用于服务端的脚本程序,因此您可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收 Cookies。但 PHP 的功能远不局限于此。
PHP 脚本主要用于以下三个领域。
服务端脚本。这是 PHP 最传统,也是最主要的目标领域。开展这项工作您需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、WEB 服务器和 WEB 浏览器。您需要在运行 WEB 服务器时,安装并配置 PHP,然后,可以用 WEB 浏览器来访问 PHP 程序的输出,即浏览服务端的 PHP 页面。请查阅“安装”一章以获取更多信息。
命令行脚本。您可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,您仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron(Unix 或者 Linux 环境)或者 Task Scheduler(Windows 环境)的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。请参阅“PHP 的命令行模式”以获取更多信息。
编写客户端的 GUI 应用程序。对于基于窗口式的应用程序来说,PHP 或许不是一种最好的语言,但是如果您非常精通 PHP,并且希望在您的客户端应用程序中使用 PHP 的一些高级特性,您可以利用 PHP-GTK 来编写这些程序。用这种方法,您还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。如果您对 PHP-GTK 感兴趣,请访问其网站以获取更多信息。
Java语言和PHP语言都是编程语言,大家知道它们最大的区别就是一个是静态语言一个是动态语言吧。没错,Java是一种静态语言,PHP是一种动态语言。那它们有哪些区别?下面,优就业IT培训的老师就来给大家详细的解释一下这两者的具体区别,分析一下这两种语言的发展前景。
Java和PHP的区别
1:Java是半编译语言,PHP是脚本语言。
2:Java使用封装继承,最小的单位是类,PHP作为脚本,最小单位就是语句,用两者输出hello world就知道了,所以Java语法比较严格,而PHP很灵活。
3:Java是自动内存分配回收,PHP是一次创建一次销毁。
4:Java可以常驻内存,多线程;PHP无法常驻内存,也没有线程的概念。
5:Java分三个方向,分别为:
J2ME,嵌入式设备,安卓就是目前最大的J2ME平台,不过其使用的不是JVM,而是谷歌自己开发的虚拟机
J2SE,桌面编程,基本没落,需要JVM支持
J2EE,Web方向的编程,近些年大规模的衰减,Java语言排名榜之所以跌这么快,就是由于J2EE的出走,如果不是安卓兴起,Java的现状可能更悲惨点,近年来脚本语言发展太快,挤压了Java在Web上面的开发。
6:PHP:就是为Web而生的语言,出了Web什么都做不了,这既是它的缺点,也是它的优点,语法简洁灵活,和Java冗长的语法正好形成对比
7:Java已经是一门很成熟的语言,或者说其语言的进一步提升已经不可能能了,PHP是在Web繁荣之后兴起的语言,所以语言成熟度没有Java高。
安卓势头很猛,但手机安装App数量有限,推广难,也是App面临的最大挑战,好在安卓只有Java可以做,除此之外就是HTML5了。中国人口占全球人口19.7%,中国网民占全球网民22.4%,中国网站数量占全球网站数量的0.5%,网站的可发展空间可谓巨大;发达国家互联网对GDP的贡献可达20%,中国互联网对GDP的影响仅为3%。可谓互联网的发展空间巨大,而互联网离不开Web,Web离不开PHP。单纯的看哪个更容易发展的话,两者相比,个人觉得PHP的优势更加明显。
PHP是一个非常优秀的脚本语言,简洁、高效,随着4.0的发布,越来越多的人使用它来进行动态网站的开发,可以说,PHP已经成为最优秀的INTERNET开发语言之一,尤其对于那些需要能够快速、高效地开发中小规模的商业应用的网站开发人员,PHP是其首选的语言。而JAVA他不只是开发网站的,他有三大类,java ee (开发WEB程序),j2me(开发手机软件,手机游戏,一些微型化的东西),j2se(开发软件,不过现在很少用JAVA开发的件,因为java 的界面没有C++那样方便。)PHP是一种弱语言类的,不过随着现在PHP已经5.0+了,PHP也开始出现了面向对象。 如果你真的要区别它们的话, 就这样想吧,PHP开发中小型网站,JAVA开发大型网站,企业网站。
PHP是网页服务端脚本语言,JS是客户端脚本语言PHP广泛应用于和Mysql数据库之间的交互,而JS是用来处理一些客户端的信息.
PHP主要使用来做网站以及Web应用开发的。跟JAVA区别如下:
一、语言优势不同
1、PHP:即“超文本预处理器”,是一种通用开源脚本语言。在服务器端执行的脚本语言。
2、JAVA:是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。
二、语法不同
1、PHP:语法混合了C、Java、Perl以及 PHP 自创的语法。
2、JAVA:作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
三、特点不同
1、PHP:利于学习,使用广泛,主要适用于Web开发领域。
2、JAVA:具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。
参考资料来源:百度百科-Java
参考资料来源:百度百科-PHP
PHP与java有什么区别?
1:java是半编译语言,php是脚本语言
2:java使用封装继承,最小的单位是类,php作为脚本,最小单位就是语句,用两者输出hello world就知道了,所以java语法比较严格,而php很灵活
3:java是自动内存分配回收,php是一次创建一次销毁,相同点:两者都不用考虑内存泄漏问题,不同点:java可以常驻内存,多线程;php无法常驻内存,也没有线程的概念
4:java分三个方向
J2ME,嵌入式设备,安卓就是目前最大的J2ME平台,不过其使用的不是JVM,而是谷歌自己开发的虚拟机
J2SE,桌面编程,基本没落,需要JVM支持
J2EE,web方向的编程,近些年大规模的衰减,java语言排名榜之所以跌这么快,就是由于J2EE的出走,如果不是安卓兴起,java的现状可能更悲惨点,近年来脚本语言发展太快,挤压了java在web上面的开发。不过在企业级的解决方案里面,因为追求性能和安全行,基本上还是java老大PHP:不用想了,就是为web而生的语言,出了web什么都做不了,这既是它的缺点,也是它的优点,语法简洁灵活,和java冗长的语法正好形成对比
5:java已经是一门很成熟的语言,或者说其语言的进一步提升已经不可能能了,曾经看到一篇文章,讲编程语言的进化,其中提到,java语言的进化树太全了,使得其没有发展的空间php是在web繁荣之后兴起的语言,所以语言成熟度没有java高,推出的php5.0才略微完善了面向对象的机制
USD MNF是什么单位
是货币单位如:人民币RMB, 美元USD ,日元JPY ,欧元EUR, 英镑GBP, 德国马克DEM 瑞士法郎CHF, 法国法郎FRF, 加拿大元CAD, 澳大利亚元AUD, 港币HKD, 奥地利先令ATS, 芬兰马克FIM ,比利时法郎BEF, 爱尔兰镑IEP, 意大利里拉ITL ,卢森堡法郎LUF, 荷兰盾NLG ,葡萄牙埃斯库多PTE, 西班牙比塞塔ESP, 印尼盾IDR ,马来西亚林吉特MYR, 新西兰元NZD ,菲律宾比索PHP, 俄罗斯卢布SUR ,新加坡元SGD, 韩国元KRW, 泰铢THB。人民币RMB, 美元USD ,日元JPY ,欧元EUR, 英镑GBP, 德国马克DEM 瑞士法郎CHF, 法国法郎FRF, 加拿大元CAD, 澳大利亚元AUD, 港币HKD, 奥地利先令ATS, 芬兰马克FIM ,比利时法郎BEF, 爱尔兰镑IEP, 意大利里拉ITL ,卢森堡法郎LUF, 荷兰盾NLG ,葡萄牙埃斯库多PTE, 西班牙比塞塔ESP, 印尼盾IDR ,马来西亚林吉特MYR, 新西兰元NZD ,菲律宾比索PHP, 俄罗斯卢布SUR ,新加坡元SGD, 韩国元KRW, 泰铢THB。
php里的时间戳是以秒为单位吗?
通过time函数获取的时间戳是以秒为单位
返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
time()返回的是秒
是的。
相关点:
1、time()函数返回的是当前时间的Unix时间戳格式,即1970年1月1日0:00:00到当前的秒数。
2、如果你需要得到当前时间的微秒数 可以使用microtime(true)。
关于php:
1、PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。
2、PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。
PHP的特性:
1、PHP独特的语法混合了 C、Java、Perl 以及 PHP [8]自创新的语法;
2、PHP安装它可以比 CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比;
3、PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;
4、PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。最重要的是PHP可以用C、C++进行程序的扩展。
Java和PHP的区别?
java是半编译半解释语言,php是脚本语言
java使用封装继承,最小的单位是类,php作为脚本,最小单位就是语句,用两者输出hello world就知道了,所以java语法比较严格,而php很灵活
java是自动内存分配回收,php是一次创建一次销毁,相同点:两者都不用考虑内存泄漏问题,不同点:java可以常驻内存,多线程;php无法常驻内存,也没有线程的概念
java分三个方向
J2ME,嵌入式设备,安卓就是目前最大的J2ME平台,不过其使用的不是JVM,而是谷歌自己开发的虚拟机
J2SE,桌面编程,基本没落,需要JVM支持
J2EE,web方向的编程,近些年大规模的衰减,java语言排名榜之所以跌这么快,就是由于J2EE的出走,如果不是安卓兴起,java的现状可能更悲惨点,近年来脚本语言发展太快,挤压了java在web上面的开发。不过在企业级的解决方案里面,因为追求性能和安全行,基本上还是java老大PHP:不用想了,就是为web而生的语言,出了web什么都做不了,这既是它的缺点,也是它的优点,语法简洁灵活,和java冗长的语法正好形成对比
java已经是一门很成熟的语言,或者说其语言的进一步提升已经不可能能了,曾经看到一篇文章,讲编程语言的进化,其中提到,java语言的进化树太全了,使得其没有发展的空间php是在web繁荣之后兴起的语言,所以语言成熟度没有java高,2006年(如果我没记错的话)推出的php5.0才略微完善了面向对象的机制
1、专注的领域不同
java是纯面向对象开发,功能强大,分支众多,没有java不能做的软件。C/S也好B/S也好。从功能上讲,没有语言可以和java相比。但其优势也是其劣势,具体参考后面的瓶颈解释。
PHP属于后起之秀,吸收了java和c以及perl等语言优点,专注互联网领域。在WEB领域中PHP拥有得天独厚的优势,WEB领域没有语言可以和PHP相比。
2、数据库访问上不同
Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。
PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改。而PHP则需要做大量的修改工作。
3、系统技术架构上不同
Java语言有着完备的MVC框架,包括视图层、业务控制层和持久层,在Spring框架中,我们可以通过IOC和AOP降低编码过程中的高耦合,也就是说Java中的这些框架可以让开发者有更广阔的空间去设计科学合理的架构,也体现着Java多层架构的特点。
相比Java而言,PHP留给开发者的空间并不多,但PHP近些年也在改进,迎合电子商务的需要,引入MVC设计模式,但成熟性和稳定性上与Java还是有着不小的差距。不得不提的是PHP可兼容MySQL开发,这使得在考虑成本因素的前提下,PHP变得小而精,收到了一些中小型网站的青睐。
4、安全性上不同
在同是开源和跨平台的java面前,php丢掉了很多的优势,在代码的安全性上尤为突出。
php的开发程序在别人拿到代码后,可以很容易的进行修改。而java开发的程序由于无法看到完整的源代码,只能看到一些编译好的类文件,所以安全性较高。
5、开发成本上的不同
PHP最经典的组合就是:PHP + MySQL + Apache。非常适合开发中小型的Web应用,开发的速度比较快。而且所有的软件都是开源免费的,可以减少投入。
Java的Web应用服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:Web Sphere和 Web lo
PHP可以做什么
PHP可以做什么
PHP属于后起之秀,吸收了java和c以及perl等语言优点,专注互联网领域。WEB领域PHP拥有得天独厚的优势,WEB领域没有语言可以和他比。将来一定是互联网的天下。互联网离不开WEB,WEB离不开PHP。那么PHP可以做什么?一起来看看PHP的用途吧!
PC端网站开发
60%全球互联网网站采用php技术,80%国内互联网网站使用php开发。这些网站包含购物网站,政府企业网站,QQ空间,论坛博客等等。
移动端微网站开发
移动设备的普及为移动互联网的快速发展奠定了基础!手机淘宝网站,手机京东网站等等, 微信公众号应用中的微网站。 将来微网站和公众号肯定会取代APP的地位!
APP后台开发
APP后台开发也是移动互联网发展的一个产物。大多数网站为了让用户在手机上能够得到更好体验效果,都加入开发APP的开发行列中。而PHP后端技术将会作为他们的不二选择。
PHP主要用来做网站开发,许多小型网站都用PHP开发,PHP是开源的,这是使得PHP经久不衰的原因。在电商、社区等方面,PHP具备非常成熟的开源代码和模板,因此使得PHP应用极为广泛。
php-fpm的安装目录
下面是我的平时的环境搭建php的各种安装目录,大家的基本也差不多。
centos等linux平台
1./usr/local/php/php
2./usr/local/php/etc/php.ini
3./usr/local/php/sbin/php-fpm
4./usr/local/php/etc/php-fpm.conf
mac平台
1./usr/bin/php
2./etc/php.ini
3./usr/bin/php-fpm
4./etc/php-fpm.conf
由于我开发以Mac为主,所以就用Mac的环境配置来学习。
php-fpm配置详解
这是搜索的一份还算算比较详细的php-fpm.conf配置详解,我会针对性的修改下,当然php手册上也有详细的讲解:http://php.net/manual/zh/install.fpm.configuration.php
1.pid = /usr/local/var/run/php-fpm.pid
2.#pid设置,一定要开启,上面是Mac平台的。默认在php安装目录中的var/run/php-fpm.pid。比如centos的在: /usr/local/php/var/run/php-fpm.pid
3.
4.error_log = /usr/local/var/log/php-fpm.log
5.#错误日志,上面是Mac平台的,默认在php安装目录中的var/log/php-fpm.log,比如centos的在: /usr/local/php/var/log/php-fpm.log
6.
7.log_level = notice
8.#错误级别. 上面的php-fpm.log纪录的登记。可用级别为: alert(必须立即处理), error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice.
9.
10.emergency_restart_threshold = 60
11.emergency_restart_interval = 60s
12.#表示在emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过 emergency_restart_threshold个,php-fpm就会优雅重启。这两个选项一般保持默认值。0 表示 '关闭该功能'. 默认值: 0 (关闭).
13.
14.process_control_timeout = 0
15.#设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位: s(秒). 默认值: 0.
16.
17.daemonize = yes
18.#后台执行fpm,默认值为yes,如果为了调试可以改为no。在FPM中,可以使用不同的设置来运行多个进程池。 这些设置可以针对每个进程池单独设置。
19.
20.listen = 127.0.0.1:9000
21.#fpm监听端口,即nginx中php处理的地址,一般默认值即可。可用格式为: 'ip:port', 'port', '/path/to/unix/socket'. 每个进程池都需要设置。如果nginx和php在不同的机器上,分布式处理,就设置ip这里就可以了。
22.
23.listen.backlog = -1
24.#backlog数,设置 listen 的半连接队列长度,-1表示无限制,由操作系统决定,此行注释掉就行。backlog含义参考:http://www.3gyou.cc/?p=41
25.
26.listen.allowed_clients = 127.0.0.1
27.#允许访问FastCGI进程的IP白名单,设置any为不限制IP,如果要设置其他主机的nginx也能访问这台FPM进程,listen处要设置成本地可被访问的IP。默认值是any。每个地址是用逗号分隔. 如果没有设置或者为空,则允许任何服务器请求连接。
28.
29.listen.owner = www
30.listen.group = www
31.listen.mode = 0666
32.#unix socket设置选项,如果使用tcp方式访问,这里注释即可。
33.
34.user = www
35.group = www
36.#启动进程的用户和用户组,FPM 进程运行的Unix用户, 必须要设置。用户组,如果没有设置,则默认用户的组被使用。
37.
38.pm = dynamic
39.#php-fpm进程启动模式,pm可以设置为static和dynamic和ondemand
40.#如果选择static,则进程数就数固定的,由pm.max_children指定固定的子进程数。
41.
42.#如果选择dynamic,则进程数是动态变化的,由以下参数决定:
43.pm.max_children = 50 #子进程最大数
44.pm.start_servers = 2 #启动时的进程数,默认值为: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
45.pm.min_spare_servers = 1 #保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
46.pm.max_spare_servers = 3 #,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
47.
48.pm.max_requests = 500
49.#设置每个子进程重生之前服务的请求数. 对于可能存在内存泄漏的第三方模块来说是非常有用的. 如果设置为 '0' 则一直接受请求. 等同于 PHP_FCGI_MAX_REQUESTS 环境变量. 默认值: 0.
50.
51.pm.status_path = /status
52.#FPM状态页面的网址. 如果没有设置, 则无法访问状态页面. 默认值: none. munin监控会使用到
53.
54.ping.path = /ping
55.#FPM监控页面的ping网址. 如果没有设置, 则无法访问ping页面. 该页面用于外部检测FPM是否存活并且可以响应请求. 请注意必须以斜线开头 (/)。
56.
57.ping.response = pong
58.#用于定义ping请求的返回相应. 返回为 HTTP 200 的 text/plain 格式文本. 默认值: pong.
59.
60.access.log = log/$pool.access.log
61.#每一个请求的访问日志,默认是关闭的。
62.
63.access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
64.#设定访问日志的格式。
65.
66.slowlog = log/$pool.log.slow
67.#慢请求的`记录日志,配合request_slowlog_timeout使用,默认关闭
68.
69.request_slowlog_timeout = 10s
70.#当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中. 设置为 '0' 表示 'Off'
71.
72.request_terminate_timeout = 0
73.#设置单个请求的超时中止时间. 该选项可能会对php.ini设置中的'max_execution_time'因为某些特殊原因没有中止运行的脚本有用. 设置为 '0' 表示 'Off'.当经常出现502错误时可以尝试更改此选项。
74.
75.rlimit_files = 1024
76.#设置文件打开描述符的rlimit限制. 默认值: 系统定义值默认可打开句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。
77.
78.rlimit_core = 0
79.#设置核心rlimit最大限制值. 可用值: 'unlimited' 、0或者正整数. 默认值: 系统定义值.
80.
81.chroot =
82.#启动时的Chroot目录. 所定义的目录需要是绝对路径. 如果没有设置, 则chroot不被使用.
83.
84.chdir =
85.#设置启动目录,启动时会自动Chdir到该目录. 所定义的目录需要是绝对路径. 默认值: 当前目录,或者/目录(chroot时)
86.
87.catch_workers_output = yes
88.#重定向运行过程中的stdout和stderr到主要的错误日志文件中. 如果没有设置, stdout 和 stderr 将会根据FastCGI的规则被重定向到 /dev/null . 默认值: 空.
当然还有一些无关紧要的设置,用到了再说吧。
一些重要的设置
php-fpm进程分配
在之前的文章中就说过了。在fasgcgi模式下,php会启动多个php-fpm进程,来接收nginx发来的请求,那是不是进程越多,速度就越快呢?这可不一定!得根据我们的机器配置和业务量来决定。
我们先来看下,设定进程的配置在哪里?
pm = static | dynamic | ondemand
pm可以设置成这样3种,我们用的最多的就上前面2种。
pm = static 模式
pm = static 表示我们创建的php-fpm子进程数量是固定的,那么就只有pm.max_children = 50这个参数生效。你启动php-fpm的时候就会一起全部启动51(1个主+50个子)个进程,颇为壮观。
pm = dynamic 模式
pm = dynamic模式,表示启动进程是动态分配的,随着请求量动态变化的。他由 pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers 这几个参数共同决定。
上面已经讲过,这里再重申一下吧:
pm.max_children = 50 是最大可创建的子进程的数量。必须设置。这里表示最多只能50个子进程。
pm.start_servers = 20 随着php-fpm一起启动时创建的子进程数目。默认值:min_spare_servers + (max_spare_servers - min_spare_servers) / 2。这里表示,一起启动会有20个子进程。
pm.min_spare_servers = 10
设置服务器空闲时最小php-fpm进程数量。必须设置。如果空闲的时候,会检查如果少于10个,就会启动几个来补上。
pm.max_spare_servers = 30
设置服务器空闲时最大php-fpm进程数量。必须设置。如果空闲时,会检查进程数,多于30个了,就会关闭几个,达到30个的状态。
到底选择static还数dynamic?
很多人恐惧症来袭,不知道选什么好?
一般原则是:动态适合小内存机器,灵活分配进程,省内存。静态适用于大内存机器,动态创建回收进程对服务器资源也是一种消耗。
如果你的内存很大,有8-20G,按照一个php-fpm进程20M算,100个就2G内存了,那就可以开启static模式。如果你的内存很小,比如才256M,那就要小心设置了,因为你的机器里面的其他的进程也算需要占用内存的,所以设置成dynamic是最好的,比如:pm.max_chindren = 8, 占用内存160M左右,而且可以随时变化,对于一半访问量的网站足够了。
慢日志查询
我们有时候会经常饱受500,502问题困扰。当nginx收到如上错误码时,可以确定后端php-fpm解析php出了某种问题,比如,执行错误,执行超时。
这个时候,我们是可以开启慢日志功能的。
slowlog = /usr/local/var/log/php-fpm.log.slow
request_slowlog_timeout = 15s
当一个请求该设置的超时时间15秒后,就会将对应的PHP调用堆栈信息完整写入到慢日志中。
php-fpm慢日志会记录下进程号,脚本名称,具体哪个文件哪行代码的哪个函数执行时间过长:
1.[21-Nov-2013 14:30:38] [pool www] pid 11877
2.script_filename = /usr/local/lnmp/nginx/html/www.quancha.cn/www/fyzb.php
3.[0xb70fb88c] file_get_contents() /usr/local/lnmp/nginx/html/www.quancha.cn/www/fyzb.php:2
通过日志,我们就可以知道第2行的file_get_contents 函数有点问题,这样我们就能追踪问题了。
;
PHP的发展前景怎么样?
说道IT行业,你可能首先就先想到Java、UI...其实现在PHP的前景也非常好,学习的人越来越多了。
在最近几年来某些学校的招聘单位中,我们可以看到企业对PHP使用更加广泛,与此同时对PHP相关的Web开发人才需求更是急速升温;昌平镇计算机学校分析中国不同行业的网站,我们可以看到国内,包括Google、百度、网易、新浪、搜狐、阿里巴巴、奇虎、eBay、腾讯、Yahoo、金山等的各大网站都在寻求PHP高手。PHP其实已经从刚出道时的“草根”时代成为现在“巨人”中的成员,去年PHP更是在计算机语言排行榜上位居榜首。现在如果做网站就用PHP。
今年各类企业发布招聘PHP人才信息,对人才的需求量极大,但是因为国内PHP人才贮备的不足、培训体系的不健全以及国内Web开发人员对PHP的价值认识不够,造成PHP人才非常稀缺。结合以上信息,我们做了以下一些分析PHP在中国的发展现状及就业前景。
PHP的发展现状:
1.全球5000万互联网网站中,有60%以上使用着PHP技术;
2.2010年PHP从业人数将增加42%,远超JAVA的13%和.NET的24%;
3.PHP是全球五大最受欢迎的编程语言之一,并且是先进入选的脚本语言;
4.国内80%以上的动态网站使用PHP开发;
5.AlexaTOP500中国网站排名,有394家使用了PHP技术,比例为78.8%。
PHP、C++、java这三种语言都是相当优质的脚本语言,为什么PHP能大行其道,位居榜首呢?从表面上来看,这是就业环境使然。越来越多的新公司或者新项目使用PHP,这使得PHP相关社区越来越活跃,而这又反过来影响到很多项目或公司的选择,形成一个良性的循环。就川软君目前了解到的情况,PHP是国内大部分web项目的优选,而且有很多公司从其它语言(如ASP,JAVA)转到了PHP。合适的就是最好的,PHP的快速,开发成本低,周期短,后期维护费用低,开源产品丰富,这些都是另外两种语言无法比拟的。
PHP的发展前景:
随着Web2.0的升温互联网的发展迎来新一轮的热潮,由于互联网本身的快速发展、不断创新的特点,决定了只有以最快开发速度和最低成本,才能取胜,才能始终保持一个网站的性和吸引更多的网民。互联网的企业生存和竞争的核心在于技术,技术、研发人才永远是这些企业不可或缺的关键人物,只有拥有资深的人才和的技术,才能在最短的时间内创造出优质的网络应用。
PHP技术和相关的人才,正是迎合目前的互联网的发展趋势,PHP作为非常优质的、简便的Web开发语言,和Linux,Apache,MySQL紧密结合,形成LAMP的开源黄金组合,不仅降低使用成本,还提升了开发速度,满足最新的互动式网络开发的应用。
在与其他同类编程语言的比较中,PHP具有开发速度快、运行效率高、安全性好、可扩展性强、开源自由等特点;而回顾PHP近10年来的发展过程、展望未来互联网行业的发展趋势,我们可以得出结论:PHP的发展势头不可阻挡,必将成为未来WEB开发领域的主流技术体系。