好得很程序员自学网
  • 首页
  • 后端语言
    • 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、 PHP可以做什么 2、 网站建设用哪种语言来开发,有何优势 3、 php做网站好么 有什么优势 4、 .PHP和.NET的优缺点是什么? 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手册上也有详细的讲解:

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含义参考:

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/

3.[0xb70fb88c] file_get_contents() /usr/local/lnmp/nginx/html/

通过日志,我们就可以知道第2行的file_get_contents 函数有点问题,这样我们就能追踪问题了。

;

网站建设用哪种语言来开发,有何优势

建议PHP,PHP开源系统比较多,容易维护,而且人才也好招。

以下是同个语言的介绍,你可以了解一下。

JSP只是JAVA语言用于WEB开发的技术中的一种,网站开发语言应该说是JAVA本身。它语言性能很好,技术繁多,方案丰富,开源技术多,应用最广泛,功能全面,结构严谨,开发速度较慢,学习比较困难。

Java的Web应用服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:Web Sphere和Web logic。Java开发的程序,最后用户拿到的是只是一些编译好的class类,无法看到完整的源代码,安全性高较高。

.NET是微软的WEB开发平台,ASP.NET是其中的一个应用实现框架,是个子集,主要用于前台开发技术,C#则是门完整的语言,和JAVA类似,也可用于.NET平台的后台开发,做.NET开发这几个你都得会。.NET做网站性能也很不错,而且完全由微软一家支持,标准和工具都很统一,省了很多整合麻烦。无论性能功能还是开发效率学习难度,在JAVA和PHP之间都是个折中的选择。

.net适合中小项目,开发快,适合windows平台,维护成本低。ASP.NET 的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有 ASP 应用程序中逐渐添加 ASP.NET 功能,随时增强 ASP 应用程序的功能。ASP.NET 是一个已编译的、基于 .NET 的环境,可以用任何与 .NET 兼容的语言(包括 Visual Basic .NET、C# 和 JScript .NET.)创作应用程序。

PHP是大众级技术,学习容易,开发迅速,性能足够满足大部分要求,相关开发和使用成本低,但是由于先天不足,做大型项目时无论开发难度和性能调优都没有优势,必要时还得借助其他的语言做后台支持。但是对普通的中小网站来说,它是目前最合理的选择。

在几个语言当中,PHP最经典的组合就是:PHP+MySQL+Apache。非常适合开发中小型的Web应用,开发的速度比较快,而且所有的软件都是开源免费的,可以减少投入。

PHP开发的程序的源代码都是公开的,别人拿到php开发的程序后都可以进行修改。PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。

PHP的源代码完全公开,在 Open Source 意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得 PHP 无论在 UNIX 或是 Win32 的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。

好了,以上比较详细的讲解。

php做网站好么 有什么优势

php扩展性比较强,网站的功能可以自己拓展。

开源源码比较多,选择性广

.net不好学额。

.PHP和.NET的优缺点是什么?

php有点是移植性好,在windows、linux都可以使用,专门用于开发网站的。缺点嘛就是太多配置的地方,不同的程序可能需要单独配置下php.ini,这样一台服务器放很多站点就可能存在不兼容。

.net可以用于做网站,也可以做软件,仅支持windows,优点是有很多模块,开发速度很快,缺点就是和系统过度集成,安全性不是很好。

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

查看更多关于php做网站的优势 php做网站的优势有哪些的详细内容...

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

上一篇: php返回500 php返回上一页

下一篇:php的市场现状 php市场份额

最新资料更新

  • 1.链式作用域php php 链式调用
  • 2.web安全php Web安全原理分析与实践
  • 3.php换文字颜色 php文字颜色代码
  • 4.php数据抓取实例 php采集数据
  • 5.有没有php扩展 php扩展怎么安装
  • 6.php时间戳转换字符串 php 时间戳转日期
  • 7.php变下载文件 php 下载文件
  • 8.php显示字段内容 php限制显示字数
  • 9.php文章发布系统 php发布网站
  • 10.phpurl链接解析 php解析url
  • 11.php获取数组坐标 php获取数组的值
  • 12.php多条件动态筛选 php实现数据筛选
  • 13.php比较运算符价格 php中用于比较字符串的函数
  • 14.iPad上装php iPad上装修建模app
  • 15.php技术都有什么 php技术
  • 16.php变量获取图片 php调用图片
  • 17.php资源扫描教程 php识别二维码内容源码
  • 18.php人员查询系统 php信息查询系统
  • 19.郑州php业余培训 郑州php业余培训机构
  • 20.php空间景安 php 免费空间

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

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