QQ登录
当前位置:首页 » 网站相关 » 正文

      经常有人问火端,为什么同样的PHP程序在火端的服务器上运行那么快,而在自己的服务器上运行那么慢?其实影响因素很多,这里说下提升PHP运行速度的几个方法。

1、服务器使用Linux系统

      Linux系统做服务器在很多方面都比windows优秀,很多地方性能相差很大,如果你的服务器上没有ASP、ASP.net等程序,强烈建议使用Linux系统,Centos、Ubuntu、Debian等系统都是Linux内核。不仅Linux性能好,而且Linux服务器还便宜,特别是国外的服务器,由于Windows Server是收费的,很多国外Win服务器都比Linux贵。

      虽然Linux系统操作起来会比Windows复杂许多,但是我们可以查资料学,只要学会了基本的服务器安装使用操作,你一定会爱上Linux。后期有时间火端会搞个入门教程,让大家都能轻松用上Linux服务器。

2、使用Nginx或Apache来运行PHP

      很多使用Win服务器的站长,都是用IIS来跑PHP,甚至还有人使用IIS6来跑,这大大影响了PHP的发挥,访问量少的情况下可能不太明显,访问量一大就能感觉到区别了。如果你坚持使用Win服务器,建议使用Nginx或Apache来跑PHP。不会搭建环境,建议使用PHPstudy软件一键搭建,可以随意切换Nginx、Apache、IIS以及PHP版本。

3、开始使用PHP7

      如果你的程序支持PHP7,强烈建议你使用PHP7,PHP7相对PHP5.X有大大的性能提升,在很多算法上会比后者快两三倍!如果你的程序没法兼容PHP7,那也尽量升级到PHP5.6。火端搜索就完美支持PHP7。

4、使用OPcache加速PHP运行

      OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是省去了每次加载和解析 PHP 脚本的开销。PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展。

开启OPcache也很简单

1、打开php.ini文件
2、找到:[opcache],设置为:

[opcache]
; dll地址
zend_extension=php_opcache.dll
; 开关打开
opcache.enable=1
; 开启CLI
opcache.enable_cli=1
; 可用内存, 酌情而定, 单位为:Mb
opcache.memory_consumption=528
; Zend Optimizer + 暂存池中字符串的占内存总量.(单位:MB)
opcache.interned_strings_buffer=8
; 对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值
opcache.max_accelerated_files=10000
; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 定位为秒
opcache.revalidate_freq=1
; 打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高
opcache.fast_shutdown=1

5、避免频繁操作数据库

      大多数网站的瓶颈都是操作数据库这块,很多时候我们并不需要频繁访问数据库,这时候我们可以把数据缓存下来,用Redis、memcache或文件缓存都可以。比如火端网络官方网站,大多数页面的数据都是缓存下来的,都是不需要读数据库的。

6、使用SSD硬盘做服务器

      固态硬盘只是提升文件读写速度,对PHP一般的执行影响不大,但如果需要PHP频繁操作文件,那SSD硬盘就发挥它的作用了。

      以上就是火端给出的几个提升PHP程序运行速度的方案,如果把以上几个都做好了,网站运行速度会大大提升。当然,提升网站访问速度不仅仅如此,还需要很多的前端优化。如果网站都是文章类的展示型网站,可以考虑生成HTML。

本文地址:https://www.huoduan.com/phpjiasu.html
本文作者:火端网络,转载请务必以超链接形式注明出处。
本文标签:PHP,服务器
 关键词: PHP加速  PHP7性能  Linux服务器  
发表评论

昵称 (必填)

邮箱 (选填,可收到作者回复信息)

网址 (选填)

  • 天下正好
    天下正好 01月31日 回复

    强烈建议博主售卖空间、制作wordpress主题出售。。。

  • 火端网络 02月01日 回复

    感谢支持,近期比较忙,做不来那么多

  • 秋风早落叶
    秋风早落叶 01月14日 回复

    博主,请教个问题,你TP5的404页面是怎么实现的呢,我用miss路由的话状态码是200,用http_exception_template的话只能是静态页面。

  • 火端网络 01月17日 回复

    需要返回404的控制器前面加上 header(\'HTTP/1.1 404 Not Found\'); header("status: 404 Not Found"); 即可,这样就返回404状态了

  • 秋风早落叶 01月24日 回复

    @火端网络 多谢,我试试看。

站内搜索