wordpressphp7
⑴ 鸟哥:让php7达到最高性能的几个tips
1. Opcache
记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情. 启用Opcache非常简单, 在php.ini配置文件中加入:
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1"
2. 使用新的编译器
使用新一点的编译器, 推荐GCC 4.8以上, 因为只有GCC 4.8以上PHP才会开启Global Register for opline and execute_data支持, 这个会带来5%左右的性能提升(Wordpres的QPS角度衡量)
其实GCC 4.8以前的版本也支持, 但是我们发现它支持的有Bug, 所以必须是4.8以上的版本才会开启这个特性.
3. HugePage
前面文章介绍过
4. Opcache file cache
开启Opcache File Cache(实验性), 通过开启这个, 我们可以让Opcache把opcode缓存缓存到外部文件中, 对于一些脚本, 会有很明显的性能提升.
在php.ini中加入:
opcache.file_cache=/tmp
这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件, 可以跨PHP生命周期存在.
5. PGO
如果你的PHP是专门为一个项目服务, 比如只是为你的Wordpress, 或者drupal, 或者其他什么, 那么你就可以尝试通过PGO, 来提升PHP, 专门为你的这个项目提高性能.
具体的, 以wordpress 4.1为优化场景.. 首先在编译PHP的时候首先:
$ make prof-gen
然后用你的项目训练PHP, 比如对于Wordpress:
$ sapi/cgi/php-cgi -T 100 /home/zk/local/www/htdocs/ wordpress/index.php >/dev/null
也就是让php-cgi跑100遍wordpress的首页, 从而生成一些在这个过程中的profile信息.
最后:
$ make prof-clean$ make prof-use && make install
这个时候你编译得到的PHP7就是为你的项目量身打造的最高性能的编译版本.
⑵ php7中为什么不能用
1. 不要使用 mysql_ 函数
这一天终于来了,从此你不仅仅“不应该”使用mysql_函数。PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数,或者更灵活的 PDO 实现。
2. 不要编写垃圾代码
这一条可能易于理解,但是会变得越来越重要,因为 PHP 7 的速度提升可能会隐藏你的一些问题。不要仅仅满足于你的站点速度,因为迁移到 PHP 7 才让它变快。
为了理解速度有多重要,以及如何把事情做得更好,请看一看我们的文章速度优化入门指南。
作为一名开发者,你应该总是确保按需加载脚本,尽可能连接它们,编写高效的数据库查询,尽可能使用缓存,以及其它。
3. 不要在文件末尾使用 PHP 闭合标签
你可以看一看,当一个文件以 PHP 代码结尾时,WordPress 多数核心代码都把末尾的 PHP 标签去掉了。实际上,Zend 框架特别禁止了它。PHP 并不需要文件末尾的闭合标签,并且我们可以通过去掉它来保证不会在后面添加任何的空白字符。
4. 不要做不必要的引用传递
我个人不喜欢引用传递。我知道有时候它很实用,但是其它情况下它使代码变得难懂,并且更难预测结果。
据说一些人认为它使代码运行更快,但是根据一些 PHP 高级程序员所说,这并不正确。
说明引用为什么不好的一个例子是,PHP 内建了shuffle()和sort()。它们修改原始数组,而不是返回处理后的数组,这很不合逻辑。
5. 不要在循环中执行查询
在循环中执行查询非常浪费。它给你的系统施加不必要的压力,并且可能能够在循环外部更快获得相同结果。当我遇到需要这样的情况时,我通常会使用两个分离的查询来解决问题,我会使用它们来构建数据数组。之后我会遍历数组,并不需要在这个过程中执行查询。
由于 WordPress 适用于这里,它可能有一些例外。虽然get_post_meta() 会从数据库获取大量数据,如果你正在遍历某个特殊博文的元数据你可以在循环中使用它。这是因为当你第一次调用它的时候,WordPress实际上会获取所有元数据并缓存它们。后续的调用使用这些缓存数据,没有数据库的调用。
弄懂这些的最佳方式是阅读函数文档,以及使用类似 Query Monitor 的工具。
6. 不要在 SQL 查询中使用 *
当然,这个更像 MySQL 的问题,但是我们习惯在 PHP 中编写 SQL 代码,所以都差不多。无论如何,如果可以避免的话,不要在 SQL 查询里使用通配符,尤其是数据库有很多列的时候。
你应该明确指定需要哪些行,并且仅仅获取它们。这有助于减少所用资源,保护数据,以及让事情变得尽可能清晰。
对于 SQL,你需要了解所有可用的函数,并且尽可能测试其速度。在计算均值、求和或计算类似数值时,要使用 SQL 函数而不是 PHP 函数。如果你不确定某个查询的速度,测试它并且尝试一些其它的编译 — 之后使用最好的那个。
7. 不要信任用户输入
信任用户输入是不明智的。始终校验、过滤、转义、检查并留好退路。用户数据存在三个问题:我们开发者并没有考虑每种可能性,它通常不正确,以及它可能是蓄意破坏。
经过周密考虑的系统可以防护这些威胁。要确保使用类似filter_var()的内建函数检查适当的值,以及在处理数据库时转义(或预编译)。
WordPress 拥有一些函数来解决问题。详见文章校验、转义和过滤用户数据。
8. 不要故作聪明
你的目标应该是编写优雅的代码,来更清晰地表达你的意图。你可能能够通过将任何东西缩短为一个单词的变量,使用多层的三元逻辑,以及其它手段,从每个页面中优化 0.01 秒。但这只会给你和你周围的人产生大麻烦。
合理命名变量,为代码编写文档,优先选择清晰而不是简洁。甚至还可以更好,使用标准的面向对象代码,它本身或多或少就是文档,不需要一大堆内联数值。
9. 不要重新发明轮子
PHP 到现在为止有很长时间了,网站被造出来的时间更长。很可能无论你需要造出什么,一些人之前早就造出来了。不要害怕向他人寻求支持,Github是你的好朋友,Composer也是,Packagist也是。
从日志工具到调色工具,从性能分析器到单元测试框架,从 Mailchimp API 到 Twitter Bootstrap,每个东西都可以通过按下按键(或者敲下命令)来获取,使用它们吧!
10. 不要忽略其它语言
如果你是个 PHP 程序员,现在有个好机会去至少了解 HTML、CSS、JavaScript 和 MySQL。当你能够更好地处理这些语言时,就是重新学习 JavaScript 的时机了。JavaScript 并不是 jQuery,你应该合理地学习 JavaScript 来更高效地使用它。
我也打算向你推荐学习面向对象的 PHP,它可以节省时间,并且在代码规模更大时会变得更好。对于类似 C# 和 Java 的语言,在你了解 OOP 之后,它们也更易于理解。
通过了解包管理器、构建脚本、CoffeeScript、LESS、SASS、YAML 、脚本引擎和其它强大的工具来扩展你的知识面。我强烈向你推荐看一看其它框架,尤其是 Laravel。
当你使用它们出色完成任务时,学习 Ruby、RoR、Android、iPhone 和 Windows Phone 应用开发如何?你可能会认为这毫无意义,因为它们在你的舒适区和工作所需范围之外,但是这就是它们的意义。每种语言都有一些要学习的实用的东西,以及从没碰到的新知识。所有 PHP 顶级开发者都懂得很多其它编程语言,这并非偶然。
⑶ 刚申请了阿里云服务器,怎么配置怎么弄出和普通电脑一样的操作界面怎么配置wordpress环境
1、登录控制台,然后找到左边云服务器,点击“远程连接”登录至网页管理终端。
⑷ 怎样有效提升WordPress网站速度
1、选择一个好的主机
WordPress主机服务在网站性能中起着重要作用。一个很好的共享托管服务提供商,如BlueHost或Siteground,都会针对WordPress采取额外的措施来优化您的网站的性能。
一般的网站刚起步使用共享主机就可以,但是如果网站内容比较多,使用比较大的主题比较吃内存或者访问量比较大,那么共享主机就比较吃力了。在高流量时段,站点速度非常慢,甚至频繁的停机。
如果你的网站现在访问速度比较慢,看看你用的是什么主机,现有的配置是否够用。
如果不够的话需要升级一下主机,推荐WP Engine管理WordPress主机或者VPS 。
2、使用轻量级主题/框架
网站访问速度过慢很有可能是你的WordPress主题没有经过优化或者包含的功能太多太臃肿导致的。
很多高级主题虽然功能强大,自定义程度比较高,但是不可避免导致主题包过大,耗费资源。
像The7一类的主题,十几M的安装包,一般的虚拟主机跑起来很吃力。
如果非要使用一些高级主题推荐使用Divi 一类轻量级优化过的WordPress主题。使用一些比较有名大公司开发的主题,尽量少用一些不知名的主题。
3、调整优化图像
网站优化中最常被忽视的方面之一是网站图片优化,我见过很多人图片不经过处理十几M的图片直接上传。WordPress图像优化可以对页面加载时间产生最大的影响。
虽然使用高清的图片可以使我们的网站看起来很好,博客上的一些好的照片真的可以带来很多的分享和评论。
但缺点是未优化的图像通常会很大,几M甚至十几M,严重拖慢网站的访问速度。图像很大也会占用大量HTTP请求。一般虚拟主机是有流量限制的。
如果您的网站上有很多图片,这可能意味着更慢的页面加载时间。因为们不是摄影网站,所以网站的内容和加载速度比图片美观更为重要。
图片的大小对网站的加速速度影响非常大,很多网站加载不完整,都是因为图片太大最后才加载出来。
我们可以在图片上传前优化调整图片尺寸,尽量不要超过1M,100-500kb最合适。
我们可以通过两种方式对图片进行优化。
第一种手动缩放和裁剪图像或者压缩
我们还可以使用无损或有损图像压缩使图片变得更小,大多数人寻找无损压缩,以确保他们的图像在他们的网站上仍然看起来效果仍然很好,即使是被压缩。
有一些工具像Photoshop一样将图片尺寸裁剪将,仍可以使用更简单的方法来完成此操作。
首先选择正确的主题 ,大部分高级主题都是“支持移动响应式设计”,它们内置的图像缩放器或图像缩放器,可以为不同的设备和屏幕尺寸创建不同的图像上传的缩略图。
第二种也是推荐使用的一种方法,使用插件自动缩放和压缩图像
我测试了5种不同的图像优化插件和服务。让我的页面加载时间缩短了一些。特别是与移动端。
以下是我测试过的一些但是效果都不怎么好
●EWWW Image Optimzation Plugin(免费工具,但是每次发布新的博客文章时,会拖慢网站的速度)。
●WP Smushit(现在有免费和高级插件选项,但是免费效果不怎么明显,付费的感觉又不值这个价)。
●Kraken.io(发现没有什么效果)。
●ShortPixel(还是没什么效果)。
所有上述产品都有其优点,但是我需要一种可以压缩图像,还可以创建的缩放,裁剪和调整大小的图像的工具,这是一个非常关键的元素。
最后,经过广泛的研究,终于找到一个插件,可以满足我所有的需求。
这是一个非常强大的WordPress插件名叫Imagify,由WP Rocket研发,他们应该是最懂网站速度优化的。
用WordPress的Imagify插件连接到Imagify API服务,用于图像缩放和优化。
对于大多数博客,您可以使用完全免费Imagify,它们允许您每个月免费使用该服务多达25 MB的图像。
更重要的是,它可以非常好地优化图像。Imagify允许您在整个网站进行批量优化,然后在加载新图像时进行单独优化。 它优化每个图像,甚至是您的主题为您创建的图像。
4.使用缓存插件
WordPress缓存插件显然是非常有用的,可以减少服务器的压力,也可以让网站的访问速度更快,所以,WordPress网站安装缓存插件是必须的
WP Super Cache是 WordPress 官方开发人员 Donncha 开发的,是目前最高效也是最灵活的 WordPress 静态缓存插件。它把整个网页直接生成 HTML 文件,这样 Apache 就不用解析 PHP 脚本,通过使用这个插件,能使得你的网站速度将显着的提速。
还有一个类似的插件W3 Total Cache,WP Fastest Cache也有同样的功能,选择一个使用就可以。
还有一款付费的最强大的缓存插件Wp-Rocket,如果对速度比较在意使用这款插件吧,绝对不会让你失望,价格也不贵每年39美金。
5、使用内容传送网络(CDN)
你过你网站受众是国外各个国家客户,那么建议使用CDN全球加速服务,保证各个国家都能顺利访问。
CDN通过复制您的网站并将其托管在世界各地的服务器上来提高您的网站速度。 比如你的网站是托管在美国,但是来自日本的人想要访问它。 如果您不使用CDN,那么来自日本的访客将不得不等待美国的服务器加载您的网站。 但是,如果您使用CDN,日本的服务器将加载您的网站,使日本访客更快地加载。 这样,无论访问者在哪里,都可以确保您的站点从附近的服务器加载。
推荐的CDN服务是Max CDN,价格比较便宜,效果显着,而且操作界面使用起来非常简单只需要几分钟就可以设置完成。
6、优化主页以快速加载
虽然听起来好像是一件事,但是需要做很多事情以确保您的主页快速加载,这可能是您的网站最重要的部分,因为人们将最常访问网站的主页。
包括一下几点事情:
显示摘录而不是完整的帖子
减少页面上的帖子数(控制在5-7个之间显示)
从主页删除不必要的社交分享小部件(仅在帖子中包含它们)
删除不需要不经常使用的插件和小工具
总体而言,网站的主页不要太复杂,中国人就喜欢在网站上放大量 的内容和杂七杂八的东西。
7.优化WordPress数据库
因为 WordPress 网站的页面都是动态网页,所以对数据库的读取很频繁,数据库优化与否对于网站的访问速度影响很大,因此我们需要经常清理和优化 WordPress 数据库,手动太麻烦,大多数人也不会。
WP-Optimize可以自动清理优化数据库,这个插件可以让您做一个简单的任务:优化数据库(垃圾邮件,修订版本,草稿,表格等),以减少开销。
我还会推荐WP-DB Manager插件,它可以安排数据库优化的日期。
8、合并压缩代码
Autoptimize这个插件能够自动的合并 CSS 和 JS,并对其压缩,非常的方便,还可以压缩HTML而且一些主题会有大量的 inline CSS,当开启了合并 CSS 后,这些 inline CSS 会自动添加到文件中。支持CDN,可以选择去除Google字体,使用这个插件需要测试下主题是否兼容,有的主题压缩代码可能会出现问题。
9.使用GZip页面压缩
协议上的GZIP编码是一种用来改进应用程序性能的技术。大流量的站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容可压缩到原大小的40%.这样传输就快了,效果就是你点击网址后会很快的显示出来.当然这也会增加服务器的负载. 一般服务器中都安装有这个功能模块的。
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip 是在 Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
我们可以使用这个工具来检查我们的 网站是否启用了GZIPCheck GZIP Compression
很多插件都支持GZIP压缩Check and Enable GZIP compression,WP Fastest Cache。
10.调整Gravatar图像
Gravatar头像需要调取第三方服务,这样也会拖慢我们网站速度,如果你不建议没有头像或者不需要使用
可以在WordPress仪表板的讨论选项卡中在中找到,设置为空白即可,而不是默认图像,这样会有助于您的网站速度。
如果需要使用的话可以使用wp-user-avatars插件把头像设置为本地。
11.将LazyLoad添加到您的图像
图片懒加载也就是图片延时加载,简单点说就是只加载页面上能看到的图片,从而减短页面的等待时间,当访客需要看其他的图片的时候再加载相应的图片。
这不仅可以加快页面加载速度,还可以通过为不在页面上滚动的用户加载较少的数据来节省带宽。
推荐的插件是Lazy Load安装好以后默认就已经开启,如果你需要特别的设置可以仔细研究下各个设置项。
12.控制存储的修订版本数量
所谓的文章修订版就是你每次修改一次文章,它都会自动帮你保存修改之前的文章版本,专业术语叫做版本控制,这样保证了在误修改的情况下可以还原之前的内容,这种功能对我们这种小博客来说并没有太大的意义,而且会在数据库产生很多无用的数据,使你的数据库越来越臃肿。
第一种方法,定期清理修订版
WP Cleaner插件的功能很简单,就是为了快速删除自动保存的文章冗余修订版和草稿的,节省空间,提高速度。界面也很简单,直接安装后可以使用,WP Cleaner插件有保护机制,无论怎么操作都不会影响已发布的文章。
第二种方法,修改WP安装根目录下的 wp-config.php 文件
// 不保存任何版本(除了自动保存的版本)
define(‘WP_POST_REVISIONS’,false);
//保存所有修订版本
define(‘WP_POST_REVISIONS’,true);
// 保存 n 个修订版本
define(‘WP_POST_REVISIONS’,3);
保存修订版本数设置为2或3,所以有些保存误删可以撤回,但不要太多。
13.关闭pingbacks和trackbacks
默认情况下,WordPress与配备pingback和trackback服务。
每当另一个博客提到您时,它会通知您的网站,从而更新该帖子上的数据。关闭此功能不会破坏您的网站的反向链接,可以禁用掉。
14.WordPress主题和插件更新到最新版本
WordPress,WordPress主题和插件更新的非常频繁,每次更新都会添加一些功能,优化性能,修复一些Bug,所以把这些都更新到最新版本,还可以保证网站更安全。
15、使用CloudFlare
这类似于上面关于使用CDN的部分,但是我很喜欢CloudFlare,因为我在我最好的网络分析帖子中讨论过,我已经决定在这里分开列出。
坦白说,CloudFlare以及上面讨论的W3 Total Cache插件是一个非常有效的组合(他们相互整合),这将大大提高您的网站的速度,但是不仅可以提高安全性。
两个都是免费的!
⑸ php7中为什么不能用
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
php7
1. 不要使用 mysql_ 函数
这一天终于来了,从此你不仅仅“不应该”使用mysql_函数。PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数,或者更灵活的 PDO 实现。
2. 不要编写垃圾代码
这一条可能易于理解,但是会变得越来越重要,因为 PHP 7 的速度提升可能会隐藏你的一些问题。不要仅仅满足于你的站点速度,因为迁移到 PHP 7 才让它变快。
为了理解速度有多重要,以及如何把事情做得更好,请看一看我们的文章速度优化入门指南。
作为一名开发者,你应该总是确保按需加载脚本,尽可能连接它们,编写高效的数据库查询,尽可能使用缓存,以及其它。
3. 不要在文件末尾使用 PHP 闭合标签
你可以看一看,当一个文件以 PHP 代码结尾时,WordPress 多数核心代码都把末尾的 PHP 标签去掉了。实际上,Zend 框架特别禁止了它。PHP 并不需要文件末尾的闭合标签,并且我们可以通过去掉它来保证不会在后面添加任何的空白字符。
4. 不要做不必要的引用传递
我个人不喜欢引用传递。我知道有时候它很实用,但是其它情况下它使代码变得难懂,并且更难预测结果。
据说一些人认为它使代码运行更快,但是根据一些 PHP 高级程序员所说,这并不正确。
说明引用为什么不好的一个例子是,PHP 内建了shuffle()和sort()。它们修改原始数组,而不是返回处理后的数组,这很不合逻辑。
5. 不要在循环中执行查询
在循环中执行查询非常浪费。它给你的系统施加不必要的压力,并且可能能够在循环外部更快获得相同结果。当我遇到需要这样的情况时,我通常会使用两个分离的查询来解决问题,我会使用它们来构建数据数组。之后我会遍历数组,并不需要在这个过程中执行查询。
由于 WordPress 适用于这里,它可能有一些例外。虽然get_post_meta() 会从数据库获取大量数据,如果你正在遍历某个特殊博文的元数据你可以在循环中使用它。这是因为当你第一次调用它的时候,WordPress实际上会获取所有元数据并缓存它们。后续的调用使用这些缓存数据,没有数据库的调用。
弄懂这些的最佳方式是阅读函数文档,以及使用类似 Query Monitor 的工具。
6. 不要在 SQL 查询中使用 *
当然,这个更像 MySQL 的问题,但是我们习惯在 PHP 中编写 SQL 代码,所以都差不多。无论如何,如果可以避免的话,不要在SQL 查询里使用通配符,尤其是数据库有很多列的时候。
你应该明确指定需要哪些行,并且仅仅获取它们。这有助于减少所用资源,保护数据,以及让事情变得尽可能清晰。
对于 SQL,你需要了解所有可用的函数,并且尽可能测试其速度。在计算均值、求和或计算类似数值时,要使用 SQL 函数而不是PHP 函数。如果你不确定某个查询的速度,测试它并且尝试一些其它的编译 — 之后使用最好的那个。
7. 不要信任用户输入
信任用户输入是不明智的。始终校验、过滤、转义、检查并留好退路。用户数据存在三个问题:我们开发者并没有考虑每种可能性,它通常不正确,以及它可能是蓄意破坏。
经过周密考虑的系统可以防护这些威胁。要确保使用类似filter_var()的内建函数检查适当的值,以及在处理数据库时转义(或预编译)。
WordPress 拥有一些函数来解决问题。详见文章校验、转义和过滤用户数据。
8. 不要故作聪明
你的目标应该是编写优雅的代码,来更清晰地表达你的意图。你可能能够通过将任何东西缩短为一个单词的变量,使用多层的三元逻辑,以及其它手段,从每个页面中优化 0.01 秒。但这只会给你和你周围的人产生大麻烦。
合理命名变量,为代码编写文档,优先选择清晰而不是简洁。甚至还可以更好,使用标准的面向对象代码,它本身或多或少就是文档,不需要一大堆内联数值。
9. 不要重新发明轮子
PHP 到现在为止有很长时间了,网站被造出来的时间更长。很可能无论你需要造出什么,一些人之前早就造出来了。不要害怕向他人寻求支持,Github是你的好朋友,Composer也是,Packagist也是。
从日志工具到调色工具,从性能分析器到单元测试框架,从 Mailchimp API 到 Twitter Bootstrap,每个东西都可以通过按下按键(或者敲下命令)来获取,使用它们吧!
10. 不要忽略其它语言
如果你是个 PHP 程序员,现在有个好机会去至少了解 HTML、CSS、JavaScript 和 MySQL。当你能够更好地处理这些语言时,就是重新学习 JavaScript 的时机了。JavaScript 并不是 jQuery,你应该合理地学习 JavaScript 来更高效地使用它。
我也打算向你推荐学习面向对象的 PHP,它可以节省时间,并且在代码规模更大时会变得更好。对于类似 C# 和 Java 的语言,在你了解 OOP 之后,它们也更易于理解。
通过了解包管理器、构建脚本、CoffeeScript、LESS、SASS、YAML 、脚本引擎和其它强大的工具来扩展你的知识面。我强烈向你推荐看一看其它框架,尤其是 Laravel。
当你使用它们出色完成任务时,学习 Ruby、RoR、Android、iPhone 和 Windows Phone 应用开发如何?你可能会认为这毫无意义,因为它们在你的舒适区和工作所需范围之外,但是这就是它们的意义。每种语言都有一些要学习的实用的东西,以及从没碰到的新知识。所有 PHP 顶级开发者都懂得很多其它编程语言,这并非偶然。