백엔드 개발 PHP 튜토리얼 博客小站启用静态化

博客小站启用静态化

Jun 20, 2016 pm 12:30 PM

我本人对网站速度要求不高,通常页面打开耗时只要不超过10秒,我都不会介意。但自己博客最近出了几次事让我有点郁闷,一次是因为攻击导致资源消耗过高,博客被网管强制停机。另一次是因为谷歌字体的某些问题,导致所有页面打开之后迟迟无法加载完毕。虽然之后找了360网站卫士做庇护,但终归不是长久之计,将网站静态化的想法冒了上来。

我以为玩独立博客上了些年头的站长们都应该懂什么叫静态化的,见昨天方室网志的阿福对此还不明所然。我在此解释一下,类似Wordpress的网站(依赖数据库的网站)展现一个页面,需要后台的从收到请求开始——从数据库抽取文章、评论等数据——数据交给服务器的PHP模块合成标准格式网页文件——传网页文件送至客户端渲染。客户端渲染之后才是我们看到的网页。其中影响网站打开速度的环节主要:主机数据库性能、主机PHP模块合成网页文件的速度。带宽也有一定影响,但考虑到个人博客通常都是一些文字信息,文件不多,这点影响不大。

所谓网站静态化,就是提前将网页合成,存在临时仓库。访客有请求的时候直接从仓库拿出传送,不用再到后方数据库、PHP生产车间匆匆忙忙“制造”网页。这极大提高了博客响应速度,缺点是网页上有如文章阅读次数、最新评论留言等动态信息时,静态缓存需要额外的JS才能实现实时更新,好在最新的插件都能给出很好的解决方案。

WordPress静态化之后,与Jekyll等纯静态博客的区别。在我看来纯静态博客完全不需要数据库,是本地生成标准格式网页之后,上传空间就OK了。而Wordpress的静态化是由服务主机生成网页,静态后速度性能对比,Jekyll之类的纯静态网站快是毋庸置疑。而Wordpress则要看具体静态的方式。就我使用的WP Super Cache这个插件来说,如果使用了推荐的mod_rewrite 缓存模式,通过写入htaccess配置,调节好参数,缓存文件生成之后,性能对比来说相差不大。纯静态博客缺点是无法支持评论,要实现评论得依赖第三方服务(这意味着博主无法自由管理访客留言)。而Wordpress静态化之后,有评论提交会自动刷新缓存,两者对比各有千秋。

网上有很多关于Wordpress伪静态的文章,甚至有说WP Super Cache并非真静态,而后又介绍其他可以实现真正静态的插件。在我看来这些都是概念混淆,目的为了推广其他静态化插件罢了。伪静态只不过是修改了文章固定链接,现在主机一般都会支持,但固定链接格式对性能没啥影响,说白了还是等于没有静态。说什么真静态,Wordpress与纯静态博客本来就是两个不同的东西,无法相提并论。但WP Super Cache作为Wordpress官方团队出品的静态化插件,无论是性能、个性配置,支持力度上都毋庸置疑。说它并非真静态的,只能说是那个家伙非但自己不懂,还要混淆视听,对此我只能呵呵!

WP Super Cache也不是没有缺点,总的来说它门槛有点高,故网上很多建议小流量博客不推荐使用。因为配置不好,效果打折不说,卸载起来还会牵扯到htaccess以及wp-config.php。总的来说比较麻烦,说白就是技术不到家的话,用了吃力未必能讨好。倘若用对了,博客速度就能有质的提升,其中利害掂量得看各位自己了。

使用方法,网上教程很多,我只给出提醒要注意的地方。

一、保证wp-content目录有读写权限,同时,保证Wordpress根目录的wp-config.php和.htaccess文件也有写入权限,最好全站程序备份一次。

二、你安装激活之后可以首先启用插件的测试,如果提示:页面不相符!时间戳有差异或者不存在!说明缓存没有生效。这时候就需要检查插件或则主题是否有冲突。检查办法就是排除法。先将其他插件全部停掉再测试,或则换回官方主题再测试。缓存生效的页面源代码底部是有如“Cached page generated by WP-Super-Cache on 2016-05-02 09:42:42”字样标注该静态页面生成时间。

特别提醒:这里换官方主题,指的是未经修改过的默认主题。有些朋友会自己修改主题,但是增加的某些代码可能是导致这个问题的原因。已经确认了是自己之前使用的主题的问题,那需要切换回之前的主题,并仔细检查主题的所有文件。尤其需要注意的是functions.php,header.php等文件。查看文件之中是否包含有压缩功能的函数;或者不正确使用的PHP的ob_start函数。可以通过搜索zip或者ob_start等关键词进行搜索。搜索之后,可以先尝试屏蔽(或者删除,删除之前请做好备份)相应代码,然后重新进行测试缓存功能(记得先删除原来的缓存)。

三、插件能正常启用的话,就是开始下面的配置了。首先是启用推荐的mod_rewrite 缓存模式。如果主机不支持的话启用PHP 缓存模式也可,普通模式就不推荐了。启用之后,在高级选项卡里边,推荐配置是

1、当有新文章或页面的发布或更新时清除之前的缓存文件。(这个选项一定要取消勾选。否则一旦发布新文章,以前的所有的缓存文件都会消失不见,非常影响网站访问速度和SEO效果。)

2、移动设备支持。(使用自适应主题的这个可以取消勾选,否则缓存里会多出大量不必要的mobile.html之类的缓存文件。为手机页面单独设置了主题的就可以勾选。)

3、压缩页面以便让来访者更快浏览。(网站支持压缩的话,就勾选吧。谁不喜欢速度快的网站呢?但要注意,部分主机虽然也支持,但勾选之后,预缓存生成会连续失败,还出现网站首页第一次访问会空白等等,总之就是有点小问题。所以此项必须谨慎)

4、不要为已知用户缓存。(最好不要勾选。因为已知用户也需要生成和读取缓存,总之有缓存最好了!)

5、让已知用户匿名使他们浏览的内容是缓存文件。(勾选。原理同上,一切以缓存为中心。)

6、当某页面有新评论时,只刷新该页面的缓存。(勾选。否则的话,来一个评论就刷新所有页面的缓存,真的太费劲了。)

7、设置对“搜索”页面以及“feed”订阅页面设置排除在外。免得每次搜索都激活一个缓存页面,很浪费空间。

四、开启预缓存,勾选预缓存模式并立即加载预缓存。这样不管有无访问激活,都可以给所有公开网页生成静态页面备用。至于缓存过期时间,对个人博客而言我建议是设置为0,禁用缓存过期。

最后,插件本身也支持CDN,使用了七牛加速服务的可以考虑配置。如果不想让静态网页文件通过七牛的,也请留心排除html等对应的静态化网页文件。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Laravel의 플래시 세션 데이터로 작업합니다 Laravel의 플래시 세션 데이터로 작업합니다 Mar 12, 2025 pm 05:08 PM

Laravel은 직관적 인 플래시 방법을 사용하여 임시 세션 데이터 처리를 단순화합니다. 응용 프로그램에 간단한 메시지, 경고 또는 알림을 표시하는 데 적합합니다. 데이터는 기본적으로 후속 요청에만 지속됩니다. $ 요청-

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법 Mar 14, 2025 am 11:42 AM

PHP 클라이언트 URL (CURL) 확장자는 개발자를위한 강력한 도구이며 원격 서버 및 REST API와의 원활한 상호 작용을 가능하게합니다. PHP CURL은 존경받는 다중 프로모토콜 파일 전송 라이브러리 인 Libcurl을 활용하여 효율적인 execu를 용이하게합니다.

Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Laravel 테스트에서 단순화 된 HTTP 응답 조롱 Mar 12, 2025 pm 05:09 PM

Laravel은 간결한 HTTP 응답 시뮬레이션 구문을 제공하여 HTTP 상호 작용 테스트를 단순화합니다. 이 접근법은 테스트 시뮬레이션을보다 직관적으로 만들면서 코드 중복성을 크게 줄입니다. 기본 구현은 다양한 응답 유형 단축키를 제공합니다. Illuminate \ support \ Facades \ http를 사용하십시오. http :: 가짜 ([ 'google.com'=> ​​'Hello World', 'github.com'=> ​​[ 'foo'=> 'bar'], 'forge.laravel.com'=>

Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Codecanyon에서 12 개의 최고의 PHP 채팅 스크립트 Mar 13, 2025 pm 12:08 PM

고객의 가장 긴급한 문제에 실시간 인스턴트 솔루션을 제공하고 싶습니까? 라이브 채팅을 통해 고객과 실시간 대화를 나누고 문제를 즉시 해결할 수 있습니다. 그것은 당신이 당신의 관습에 더 빠른 서비스를 제공 할 수 있도록합니다.

PHP에서 늦은 정적 결합의 개념을 설명하십시오. PHP에서 늦은 정적 결합의 개념을 설명하십시오. Mar 21, 2025 pm 01:33 PM

기사는 PHP 5.3에 도입 된 PHP의 LSB (Late STATIC BING)에 대해 논의하여 정적 방법의 런타임 해상도가보다 유연한 상속을 요구할 수있게한다. LSB의 실제 응용 프로그램 및 잠재적 성능

프레임 워크 사용자 정의/확장 : 사용자 정의 기능을 추가하는 방법. 프레임 워크 사용자 정의/확장 : 사용자 정의 기능을 추가하는 방법. Mar 28, 2025 pm 05:12 PM

이 기사에서는 프레임 워크에 사용자 정의 기능 추가, 아키텍처 이해, 확장 지점 식별 및 통합 및 디버깅을위한 모범 사례에 중점을 둡니다.

프레임 워크 보안 기능 : 취약점 보호. 프레임 워크 보안 기능 : 취약점 보호. Mar 28, 2025 pm 05:11 PM

기사는 입력 유효성 검사, 인증 및 정기 업데이트를 포함한 취약점을 방지하기 위해 프레임 워크의 필수 보안 기능을 논의합니다.

See all articles