本篇文章给大家谈谈怎么优化php网站,以及php网页美化对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录:
- 1、如何对低硬件配置的中小型php网站进行性能优化
- 2、如何正确实现PHP网站优化
- 3、php有哪些优化技巧
- 4、网站优化方法有哪些
- 5、上海网站优化:PHP程序网站怎么做优化
- 6、让PHP网站跑的更快 如何优化PHP
如何对低硬件配置的中小型php网站进行性能优化
本人对php不熟悉,现在采用PHP的magento开源项目来做,在尽量少代码修改的情况下让页面加载快些(期望日IP少于2,000,PV少于50,000,首页打开3s以内)。网站是运行在Digital ocean的VPS(1GB 内存,30GB SSD硬盘)上的,不能做负载均衡。
这个站的图片比较多,也比较大,但总体数据量在10GB以下。在chrome下监控了打开速度,发现首页文件等待时间达到了5s,而接收时间为几百毫秒。另外一些静态文件(JS,CSS很大,并且都在head内)也block住了其他页面元素的下载和页面渲染。所以需要对页面和服务器同时进行优化。
我的想法是从以下几个方面来做:
1.首先从架构上使用lanmp(偏向这个)或者lamp。
打算使用网上的一键安装包,不太清楚这几个之间最佳的版本组合是什么样的(都用最新版本?)? 是自己单独编译还是一键安装好?
2.服务端优化,主要使用缓存手段
1)Zend Optimizer优化PHP
2)APC、eaccelerator或者XCache对PHP缓存以及最新出来的Opcache。哪个比较好?
3)Varnish配合Nginx进行缓存静态资源缓存。相对于squid,哪个比较好?
4)memcached进行数据库缓存
1-4项同时使用不知道会不会有没有冲突?或者有没有更好的方案。因为不想对代码进行大改,所以服务端缓存最佳实践这块请重点给出意见。
3. 使用CDN加速静态资源
4. 优化静态资源,使用minify来合并压缩CSS,JS这些静态资源
5. 启用gzip
6. 对图片和JS等静态资源增加Expires头,这条应该算页面优化吧,放到后面来。
参考了一些资料后发现优化方法有很多,用的太多方法(特别是缓存手段)隐患越大,有没有优化的最佳策略或者方法论(而不仅仅从工具上)?
如何正确实现PHP网站优化
1、使用GZip
在每一个PHP页面顶部加入以下代码:
?php ob_start("ob_gzhandler");?
使用该代码后服务器会压缩所有需要传送到客户端的代码,并在浏览器中进行解压,从而使网站运行速度加快。这一功能还可以节省网站空间的流量。
2、不要滥用Javascript和Ajax
只在需要的时候才使用Javascript和Ajax,千万不要滥用它们。有些网站使用了太多不必要的Ajax动画,或使用Ajax来加载无用的部分。这样一来Javascript文件就会变得很大,而实际上却有很多其他方案来实现这些功能。
3、图片、头文件和HTTP请求
网页所引用的图片、外部文件以及CSS样式文件越多,网页就加载得越慢。花些时间把图片文件和其他外部文件缩小一些吧,使它们能更快地被加载。此外,每一次加载图片和外部文件时都会产生一个HTTP请求,这一定会拖延加载时间。
4、限制MySQL查询次数
对数据库的每一次请求都会使网页的加载速度减缓一些。网络开发者允许很难控制这一点,但是在一些细节的地方是可以进行优化的。比如,在选择数据库记录时,不要使用以下代码:
SELECT * FROM database
而是使用:
SELECT id, name, date, author, etc, blah, blah FROM database
这会消耗更少的查询时间并减少服务器的负载。
5、.php扩展名
有些人认为将JS文件保存为filename.js.php以及将CSS文件保存为stylesheet.css.php会让加载的时间减少些,但我并没有察觉到这其中的差别。当然,如果你网站的速度变得很慢,你可以试试这个方法。当然,你需要在每个PHP文件中用include()去载入这些文件。
php有哪些优化技巧
优化的点有很多,看具体使用环境:
1、 用单引号代替双引号来包含字符串,这样做会更快一些。因为 PHP 会在双引号包围的 字符串中搜寻变量,单引号则不会,注意:只有 echo 能这么做,它是一种可以把多个字符 串当作参数的“函数”(译注:PHP 手册中说 echo 是语言结构,不是真正的函数,故把函数 加上了双引号)。
2、如果能将类的方法定义成 static,就尽量定义成 static,它的速度会提升将近 4 倍。
3、$row['id'] 的速度是$row[id]的 7 倍。
4、echo 比 print 快,并且使用 echo 的多重参数(译注:指用逗号而不是句点)代替字符串 连接,比如 echo $str1,$str2。
5、在执行 for 循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用 foreach 代替。
6、注销那些不用的变量尤其是大数组,以便释放内存。
7、尽量避免使用__get,__set,__autoload。
8、require_once()代价昂贵。
9、include 文件时尽量使用绝对路径,因为它避免了 PHP 去 include_path 里查找文件的速 度,解析操作系统路径所需的时间会更少。
10、如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用 $_SERVER['REQUEST_TIME'] 要好于 time()
11、函数代替正则表达式完成相同功能。
12、str_replace 函数比 preg_replace 函数快,但 strtr 函数的效率是 str_replace 函数的四倍。
13、如果一个字符串替换函数,可接受数组或字符作为参数,并且参数长度不太长,那么 可以考虑额外写一段替换代码, 使得每次传递参数是一个字符, 而不是只写一行代码接受数 组作为查询和替换的参数。
14、使用选择分支语句(译注:即 switch case)好于使用多个 if,else if 语句。
15、用@屏蔽错误消息的做法非常低效,极其低效。
16、打开 apache 的 mod_deflate 模块,可以提高网页的浏览速度。
17、数据库连接当使用完毕时应关掉,不要用长连接。
18、错误消息代价昂贵。
19、在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当。
20、递增一个全局变量要比递增一个局部变量慢 2 倍。
21、递增一个对象属性(如:$this-prop++)要比递增一个局部变量慢 3 倍。
22、递增一个未预定义的局部变量要比递增一个预定义的局部变量慢 9 至 10 倍。
23、仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局 部变量)。PHP 大概会检查看是否存在全局变量。
24、方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了 10 个方法,但性能上没有变化。
25、派生类中的方法运行起来要快于在基类中定义的同样的方法。
26、调用带有一个参数的空函数,其花费的时间相当于执行 7 至 8 次的局部变量递增操作。 类似的方法调用所花费的时间接近于 15 次的局部变量递增操作。
27、Apache 解析一个 PHP 脚本的时间要比解析一个静态 HTML 页面慢 2 至 10 倍。尽量 多用静态 HTML 页面,少用脚本。
28、除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套 PHP 缓存机制通常 可以提升 25%至 100%的性能,以免除编译开销。
29、尽量做缓存,可使用 memcached。memcached 是一款高性能的内存对象缓存系统, 可用来加速动态 Web 应用程序,减轻数据库负载。对运算码 (OP code)的缓存很有用,使 得脚本不必为每个请求做重新编译。
30、 当操作字符串并需要检验其长度是否满足某种要求时, 你想当然地会使用 strlen()函数。 此函数执行起来相当快,因为它不做任何计算,只返回在 zval 结构(C 的内置数据结构,用 于存储 PHP 变量)中存储的已知字符串长度。但是,由于 strlen()是函数,多多少少会有些 慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP 不区分函 数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用 isset() 技巧加速执行你的代码。 (举例如下) if (strlen($foo) 5) { echo “Foo is too short”$$ } (与下面的技巧做比较) if (!isset($foo{5})) { echo “Foo is too short”$$ } 调用 isset()恰巧比 strlen()快,因为与后者不同的是,isset()作为一种语言结构,意味着它 的执行不需要函数查找和字母小写化。 也就是说, 实际上在检验字符串长度的顶层代码中你 没有花太多开销。
31、当执行变量$i 的递增或递减时,$i++会比++$i 慢一些。这种差异是 PHP 特有的,并不 适用于其他语言, 所以请不要修改你的 C 或 Java 代码并指望它们能立即变快, 没用的。 ++$i 更快是因为它只需要 3 条指令(opcodes),$i++则需要 4 条指令。后置递增实际上会产生一 个临时变量,这个临时变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的 一种,正如 Zend 的 PHP 优化器所作的那样。牢记这个优化处理不失为一个好主意,因为 并不是所有的指令优化器都会做同样的优化处理, 并且存在大量没有装配指令优化器的互联 网服务提供商(ISPs)和服务器。
32、并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很 多内存。
33、并非要用类实现所有的数据结构,数组也很有用。
34、不要把方法细分得过多,仔细想想你真正打算重用的是哪些代码?
35、当你需要时,你总能把代码分解成方法。
36、尽量采用大量的 PHP 内置函数。
37、如果在代码中存在大量耗时的函数,你可以考虑用 C 扩展的方式实现它们。
38、 评估检验(profile)你的代码。 检验器会告诉你, 代码的哪些部分消耗了多少时间。 Xdebug 调试器包含了检验程序,评估检验总体上可以显示出代码的瓶颈。
39、mod_zip 可作为 Apache 模块,用来即时压缩你的数据,并可让数据传输量降低 80%。
40、在可以用 file_get_contents 替代 file、fopen、feof、fgets 等系列方法的情况下,尽量 用 file_get_contents,因为他的效率高得多!但是要注意 file_get_contents 在打开一个 URL 文件时候的 PHP 版本问题;
41、尽量的少进行文件操作,虽然 PHP 的文件操作效率也不低的;
42、优化 Select SQL 语句,在可能的情况下尽量少的进行 Insert、Update 操作(在 update 上,我被恶批过);
43、尽可能的使用 PHP 内部函数(但是我却为了找个 PHP 里面不存在的函数,浪费了本可 以写出一个自定义函数的时间,经验问题啊!);
44、 循环内部不要声明变量, 尤其是大变量: 对象(这好像不只是 PHP 里面要注意的问题吧?);
45、多维数组尽量不要循环嵌套赋值;
46、在可以用 PHP 内部字符串操作函数的情况下,不要用正则表达式;
47、foreach 效率更高,尽量用 foreach 代替 while 和 for 循环;
48、用单引号替代双引号引用字符串;
49、“用 i+=1 代替 i=i+1。符合 c/c++的习惯,效率还高”
50、对 global 变量,应该用完就 unset()掉;
网站优化方法有哪些
1.网站诊断
从网站定位出发,对网站结构、网页设计、标签设计等各方面进行系统性的评测诊断,给出综合评价报告。
2.关键词分析
根据网站主题,选择出最佳关键词,整站将围绕关键词进行重点优化,获取排名。
3.资料收集
收集网站主题相关的、整个优化过程所需的资料。
4.网站优化
从网站的结构、设计等多方面入手,针对首页、主栏目页、分栏目页、专题及内容网页等提供一个整站优化方案。
5.网站无漏测试和网页内容
对网站的整体进行优化之前,对网站测试无漏链很关键。另外,网页的原创性,也是决定网站整体排名的关键因素。
网站优化的具体过程可概括为以下几步骤。
第一,根据网站主营的业务确定要优化的主关键词和拓展关键词。
第二,对网站的目录结构、链接结构和各页面结构进行全面的分析诊断,作出详细的诊断报告,这样可以有计划、有针对性地开展优化工作。
第三,根据确定的关键词和诊断报告,制定出合理的优化方案。
第四,按照优化方案对各网页的页面结构(对网页各标签进行优化)和链接结构、网站的整体目录结构进行优化。
第五,为网站作有价值的资源链接,使网站活跃起来。
第六,经常更新网站的内容,使网站看起来具有活力,以便更好地留住目标客户。
1、页面关键字与关键字密度优化
很多搜索引擎都是通过页面的关键词密度来决定该页面对关键字的关联度,关联度越高,该页面的相关性就越高,所以应确保关键字在整个网页中的充分利用和合理分布。具体做法有:充分利用所有可以利用的因素,但不要过分重复或简单排列关键字;应遵循必要的语法规则,形成自然流畅的语句,使网页不失吸引力;从页面因素的优化角度出发,可考虑将关键字分布在网页标题元、网页描述/关键字元、正文标题、正文内容、文本链接、ALT标志当中。
2、框架优化
所谓框架型网页就是一个网页的某一边导航菜单是固定的,而页面另一边的信息可以上下移动。框架中的内容是无法在后台代码中体现的,而对于那些主要为搜索引掌的搜索程序来说,其设计思路都是完全忽略某些HTML代码,转而直接锁定网页上的实际内容进行索引。这样,搜索引擎在那些一般性的框架网页上根本找不到要搜索的内容。
3、动态页面优化
所谓动态网页指的是采用ASP、PHP、JSP、CGI等程序动态生成的页面。此类网页中的大部分内容来自于网站相连的数据库,在网络空间中并不存在实际的页面,只有在接到用户的访问要求,即当用户在变量区中输入相应值以后,才自动生成。而搜索引擎只是一个搜索程序,它无法像真实的用户一样选择变量并输入数值。
4、建立网站地图
网站地图包括主要网页的内容链接或者栏目链接。根据网站的大小、页面数量的多少,它可以链接部分主要的或者所有的栏目页面。这样,搜索引擎程序得到了网站地图页面,就可以迅速地访问整个站点上的所有网页及栏目。为了使网站地图吸引搜索引擎与真实访问者,一定要在链接后写上一定的描述性短句,对与此链接相关的关键词进行简单描述,但是不能过度使用关键词。作为网站地图,不仅是为搜索引擎设计的,也是为真实的访问者设计的,如果访问者能感觉到地图好用,搜索引擎也同样能正确地理解地图的意义。
上海网站优化:PHP程序网站怎么做优化
一、PHP网站关键词优化
根据搜索引擎的工作原理,我们知道用户和搜索引擎都是根据关键词对目标网站进行搜索分析。通过分析这些的关键词和搜索流量,我们发现在网站发展前期关键词是影响网站被搜索引擎收录的一个核心因素,关键词给网站带来了大量用户的同时也带来了大量的流量,其流量比例占网站总流量的绝大部分。由此可见,关键词的优化对于网站的流量至关重要。而关键词的确定必须是和网站内容高度相关的,一般网站需要在以下位置设置关键词:
(1)关键词需要出现在标签当中,也就是标题当中需要包含关键词,而且还需要保证不同的页面是不一样的;
(2)关键词应放在网站的标签内的keywords和description里面,并且一般只可出现一次;
(3)网站logo图片的Alt属性中可以设置于网站主题的关键词,其他图片的Alt应放着与图片相符合的ALT属性,否则会被搜索引擎认为在作弊;
(4)网站的目录名和文件名可以设置为关键词,会更好的被搜索引擎抓取;
(5)网页内容的中一般放置一篇文章的标题或者内容提要,这里需要放置关键词,但是整个页面的关键词不易设置过度,一般设置在 标签中,但需与文章内容相关,否则会认为在作弊。
二、PHP网站地图优化
网站地图优化又叫网站导航优化俗称sitemap。首先网站地图为网站访问者指明了访问网站的方向和路径,清晰明了的告诉网站访问者网站的布局和内容,给网站访问者友好的体验。用户的体验感觉不错,那么他下次访问网站的几率就会大大提高;其次搜索引擎蜘蛛也非常喜欢网站地图。因此做好网站地图SEO,对于网站非常重要。
(1)针对PHP网站,一般采用XML格式的网站地图。网站地图保存在根目录下的一个XML文件里,大家在很多网站的底部都会发现有这么一个文件。例如:,它是网站上链接的列表。制作一个简洁明了高效的网站地图,可以为搜索引擎快速浏览整个网站的窗口,并且收录网站的全部内容。
(2)一般在网站的footer下添加一个关键词,并指向相应的内容页面。
三、PHP网站 URL地址优化
URL地址优化包括URL地址静态化(又叫伪静态)和URL地址转向两个方面。根据搜索引擎的搜索原理,静态页面更有利于搜索引擎抓取收录。现在大多数网站都是动态的页面,比如本文所讨论的PHP网站就为动态链接的页面。那么我们就要采取措施把PHP动态生成的页面转化为静态页面。
四、 url地址静态化
(1))把网页上带链接的地方,都换上新的静态化链接。搜索引擎和浏览器将通过该链接来发生请求。
(2)Apache服务器中在httpd.conf或.htaccess使用”/dir/([^./]*)\.html”来实现新的重写规则,告诉Apache服务执行这个重写规则之后的操作。通过这样一个重写规则使得PHP生成的动态页面转化为静态页面展现给搜索引擎。当搜索引擎蜘蛛爬行到这里页面的时候,就会记录下这个新的页面,从而达到URL地址优化的目的。在执行这样的操作后,要保留原链接只需在httpd.conf中使用Alias指令(仅适用于apache服务器)。
让PHP网站跑的更快 如何优化PHP
php(做为现在的主流开发语言)是一种执行起来非常迅速的编程语言,但是比起仅仅优化代码来说仍然值得优化php(做为现在的主流开发语言)本身。
本文我们将根据一些实效阐述为什么优化php(做为现在的主流开发语言)本身要比优化代码来的更贴切,以及为什么需要理解根据php(做为现在的主流开发语言)在你的服务器上其他相关子系统的表现找出瓶颈并修复之。与此同时,我们也提到了如何优化您的php(做为现在的主流开发语言)代码来让他们拥有更快的执行速度。
获得高性能
当我们谈及好的性能,往往不仅仅是指您的php(做为现在的主流开发语言)代码执行起来有多快。性能是一套在可量化评测和速度之间取出的平衡。仅仅依靠使用更少资源的代码执行起来也许比在高速缓存中之行的代码更慢,并且相同的一组(在高速缓冲中执行的)代码可以在同时并发执行在一台Web服务器上。
在下面的例子中,A.php(做为现在的主流开发语言)算作一位尽可能跑得快的赛跑选手,而B.php(做为现在的主流开发语言)是一个几乎可以以同一慢速永远跑下去的马拉松选手。轻负荷情况下,A.php(做为现在的主流开发语言)可以充分的快,但是当流量增加后,B.php(做为现在的主流开发语言)的性能表现将仅仅降低一点点而A.php(做为现在的主流开发语言)会垮掉。
让我们来通过一个事实来验证此说法更深远的本质意义。假设我们需要读取一个250K的文件并生成一个关于此文件的HTML概要。我们写了两个脚本来做同样一件事:hare.php(做为现在的主流开发语言)将一次性读取整个文件到内存中,然后一步执行到位;而tortoise.php(做为现在的主流开发语言)每次只读取文件的一行,并且决不超过内容容量。结果Tortoise.php(做为现在的主流开发语言)因为多次读写需要更多的系统回应而慢得多。"
程序每执行一次,hare.php(做为现在的主流开发语言)需要0.04秒CPU执行时间和10Mb的内存,而tortoise.php(做为现在的主流开发语言)需要0.06秒CPU执行时间和5Mb的内存。服务器共有100Mb实际内存容量并且其CPU有99%是空闲的。我们同时假定执行这样一个简单事件不产生内存碎片。
当有10各程序并发执行时,hare.php(做为现在的主流开发语言)将发生内存溢出(10 ×10 = 100)。与此同时,tortoise.php(做为现在的主流开发语言)仍将有50Mb空余内存可用!11个程序并发执行将使hare.php(做为现在的主流开发语言)彻底“溃败”因为它开始需要使用虚拟内存——执行速度有可能降低到其常规速度的一半以下;而且现在每一个单独程序进程需要0.08秒CPU执行时间。而此期间,tortoise.php(做为现在的主流开发语言)仍旧运行在其常规CPU执行时间——0.06秒!
以下表格中,执行得更快的php(做为现在的主流开发语言)脚本使用粗体区分开来:
------------------------------------------------------------------------------------------
| 连接数 | 每执行1次HTTP请求所需CPU执行时间(秒)| 每执行10次HTTP请求所需CPU执行时间(秒)| 每执行11次HTTP请求所需CPU执行时间(秒)|
------------------------------------------------------------------------------------------
| hare.php(做为现在的主流开发语言) | 0.04 | 0.04 | 0.88(内存溢出) |
------------------------------------------------------------------------------------------
| tortoise.php(做为现在的主流开发语言) | 0.06 | 0.60 | 0.66 |
------------------------------------------------------------------------------------------
如您在上例中看到的,获得更好的性能不再仅仅是写出执行起来更快的php(做为现在的主流开发语言)程序。高性能php(做为现在的主流开发语言)表现需要对底层硬件知识以及操作系统、软件支持如Web服务器、数据库等有一个良好认识和理解。
瓶颈
以上两个例子让我们看到了(性能)下降的瓶颈所在。当拥有无限大容量的内存时,hare.php(做为现在的主流开发语言)的确是始终比tortoise.php(做为现在的主流开发语言)快。但是,仅仅认为内存是php(做为现在的主流开发语言)整体性能的瓶颈所在显得过于单纯——实际上远不止这些:
(a) 网络
你的网络有可能是最大的瓶颈所在。如果你有10M的带宽——最多你只能获得1M/秒的传输速度。如果假设每个php(做为现在的主流开发语言)页为30k,那么每秒仅仅只传输33页就将使你的网络带宽达到饱和。更多导致瓶颈产生的因素包括频繁访问低速DNS,或者网络设备仅能获得十分有限的存储。
(b) CPU
如果你监视一下你的CPU负荷情况,发送一个纯静态HTML页面并不会增加CPU负担——就像我们以上提到的,此时瓶颈在于网络。当然啦,对于由php(做为现在的主流开发语言)生成的复杂动态页面,你的CPU速度自然将成为限制因素之一。拥有包含多个CPU的服务器或者一个服务器阵列将减轻因CPU带来的影响。
怎么优化php网站的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php网页美化、怎么优化php网站的信息别忘了在本站进行查找喔。