WordPress 4.4中使用 Twenty Fifteen主题的情况下,常用的"Link Manager"插件已经不能正常使用来的,因此只能是手动添加"友情链接"。
使用如下方法,“外观”-“小工具”直接把“链接”模块添加至菜单栏即可:
使用PHP语言开发的博客平台,支持在PHP和MySQL的服务器上架设自己的博客
WordPress 4.4中使用 Twenty Fifteen主题的情况下,常用的"Link Manager"插件已经不能正常使用来的,因此只能是手动添加"友情链接"。
使用如下方法,“外观”-“小工具”直接把“链接”模块添加至菜单栏即可:
WP Super Cache 是 WordPress 官方开发人员 Donncha 开发,是当前最高效也是最灵活的 WordPress 静态缓存插件。它把整个网页直接生成 HTML 文件,这样 Apache 就不用解析 PHP 脚本,通过使用这个插件,能使得你的 WordPress 博客将显著的提速。
WP Super Cache 缓存机制有三种,mod_rewrite 缓存模式 , PHP 缓存模式,传统缓存模式。
WP Cache 缓存时,会在你的“wordpress 安装文件夹/wp-content/cache/”文件夹下生成一系列wp-cache-xxxxxx.html格式的文件;Super Cache 缓存时,则在你的“wordpress 安装文件夹/wp-content/cache/supercache/”文件夹下生成对应每一篇文章或者标签等的目录。名称为xxx.html,取决于你的文章ID是怎么设置。目录下面就是静态的 index.html 文件。
当你一个访问者来的你的站点,他没有登入或者也没有留言,这样他得到是一个在 WordPress cache 文件夹下的 supercache 子文件夹下的纯静态文件,其实你都可以自己到上面的 supercache 目录下去查看同样的永久链接的 HTML 文件的备份。
判断一个页面是否已经被缓存了,查看该页面的源代码,如果访问者已经登陆或者留了言,就会返回 WP Cache 函数生成的页面,并且最后一行会有“Cached page generated by WP-Super-Cache+缓存时间”这行字,就像下面这行代码一样:
1 |
<!-- Cached page generated by WP-Super-Cache on 2016-01-17 17:47:16 --> |
而 Super Cache 缓存会多一行如下代码:
1 |
<!-- super cache --> |
因为 Super Cache 是真正静态的,对搜索引擎和博客的速度非常有好处,而且有效的减轻了 php 和 Mysql 的查询压力。这点对于大型博客来说优势很明显,一般的较小的博客感觉就不怎么明显。
1.在插件页面中查找"WP Super Cache",然后安装即可。
2.在"设置"->"固定链接"中增加固定链接设置,建议如下设置:
注意:不要设置成"?/p=%post_id%
",这样设置之后会导致无法在首页中打开分类目录,导致所有的分类都被重定向到了首页。
3.在插件页面中启用"WP Super Cache"。
4.页面中原有的链接,如果原来没有设置过"固定链接"的话,类似如下"http://www.mobibrw.com/?p=2969"的样子(比如站内的相互引用链接),不需要进行任何修改,只是这样访问不会缓存而已。
5.开启Apache2的mod_rewrite
模块
1 |
$ sudo a2enmod rewrite |
重启Apache2
1 |
$ sudo service apache2 restart |
修改Apache2配置文件:
1 |
$ sudo vim /etc/apache2/sites-available/default |
修改其中的:
AllowOverride None
为AllowOverride All
参考下面的修改:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
DocumentRoot /var/www/wordpress <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/wordpress> #Options Indexes FollowSymLinks MultiViews Options FollowSymLinks MultiViews AllowOverride All FCGIWrapper /usr/bin/php5-cgi .php Options ExecCGI SymLinksIfOwnerMatch Order allow,deny allow from all </Directory> |
如果同时启用了Apache2的Https功能,则需要同时修改相同目录下面的default-ssl
文件。
需要在当前主题的 functions.php
中添加自定义代码,才能实现在文章中自定义 CSS
样式表,插件内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
/* 为特定文章添加特定css最简单的方式. */ /*添加自定义CSS的meta box*/ add_action('admin_menu', 'cwp_add_my_custom_css_meta_box'); /*保存自定义CSS的内容*/ add_action('save_post', 'cwp_save_my_custom_css'); /*将自定义CSS添加到特定文章(适用于Wordpress中文章、页面、自定义文章类型等)的头部*/ add_action('wp_head','cwp_insert_my_custom_css'); function cwp_add_my_custom_css_meta_box() { add_meta_box('my_custom_css', '自定义CSS', 'cwp_output_my_custom_css_input_fields', 'post', 'normal', 'high'); add_meta_box('my_custom_css', '自定义CSS', 'cwp_output_my_custom_css_input_fields', 'page', 'normal', 'high'); } function cwp_output_my_custom_css_input_fields() { global $post; echo '<input type="hidden" name="my_custom_css_noncename" id="my_custom_css_noncename" value="'.wp_create_nonce('custom-css').'" />'; echo '<textarea name="my_custom_css" id="my_custom_css" rows="5" cols="30" style="width:100%;">'.get_post_meta($post->ID,'_my_custom_css',true).'</textarea>'; } function cwp_save_my_custom_css($post_id) { if (!wp_verify_nonce($_POST['my_custom_css_noncename'], 'custom-css')) return $post_id; if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id; $my_custom_css = $_POST['my_custom_css']; update_post_meta($post_id, '_my_custom_css', $my_custom_css); } function cwp_insert_my_custom_css() { if (is_page() || is_single()) { if (have_posts()) : while (have_posts()) : the_post(); echo '<style type="text/css">'.get_post_meta(get_the_ID(), '_my_custom_css', true).'</style>'; endwhile; endif; rewind_posts(); } } |
添加完成之后,会在文章编辑页面的最下面,出现 CSS
编辑窗口,之后在这个窗口中添加 CSS
会被自动保存。
链入外部样式表是把样式表保存为一个样式表文件,然后在页面中link
标记链接到这个样式表文件,这个标记必须放到页面的区内,如下:
1 2 3 |
<head> <link rel="stylesheet" type="text/css" href="mystyle.css"> </head> |
上面这个例子表示浏览器从mystyle.css
文件中以文档格式读出定义的样式表。rel="stylesheet"
是指在页面中使用这个外部的样式表。 type="text/css"
是指文件的类型是样式表文本。href="mystyle.css"
是文件所在的位置。
一个外部样式表文件可以应用于多个页面。当你改变这个样式表文件时,所有页面的样式都随之而改变。在制作大量相同样式页面的网站时,非常有用,不仅减少了重复的工作量,而且有利于以后的修改、编辑,浏览时也减少了重复下载代码。
样式表文件可以用任何文本编辑器(例如:记事本)打开并编辑,一般样式表文件扩展名为.css
。内容是定义的样式表,不包含HTML标记,mystyle.css
这个文件的内容如下:
1 2 3 |
hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} |
(定义水平线的颜色为土黄;段落左边的空白边距为20象素;页面的背景图片为images目录下的back40.gif文件)
内部样式表是把样式表放到页面head
区里,这些定义的样式就应用到页面中了,样式表是用style
标记插入的,从下例中可以看出style
标记的用法:
1 2 3 4 5 6 7 |
<head> <style type="text/css"> hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} </style> </head> |
注意:有些低版本的浏览器不能识别style
标记,这意味着低版本的浏览器会忽略style
标记里的内容,并把style
标记里的内容以文本直接显示到页面上。为了避免这样的情况发生,我们用加HTML注释的方式(<!--注释-->)隐藏内容而不让它显示:
1 2 3 4 5 |
<head> <style type="text/css"> <!-- hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} --> </style> </head> |
导入外部样式表是指在内部样式表的style
里导入一个外部样式表,导入时用@import
,看下面这个实例:
1 2 3 4 5 |
<head> <style type=”text/css”> <!-- @import “mystyle.css” 其他样式表的声明 --> </style> </head> |
例中@import "mystyle.css"
表示导入mystyle.css
样式表,注意使用时外部样式表的路径。方法和链入样式表的方法很相似,但导入外部样式表输入方式更有优势。实质上它相当于存在内部样式表中的。 注意:导入外部样式表必须在样式表的开始部分,在其他内部样式表上面。
内嵌样式是混合在HTML标记里使用的,用这种方法,可以很简单的对某个元素单独定义样式。内嵌样式的使用是直接将在HTML标记里加入style
参数。而style
参数的内容就是CSS的属性和值,如下例:
1 |
<div style="color: sienna; margin-left: 20px">这是一个段落</div> |
(这个段落颜色为土黄色,左边距为20象素) 在style
参数后面的引号里的内容相当于在样式表大括号里的内容。 注意:style
参数可以应用于任意BODY
内的元素(包括BODY
本身),除了BASEFONT
、PARAM
和SCRIPT
。
上一章里我们已经提到样式表的层叠顺序,这里我们讨论插入样式表的这几种方法的叠加,如果在同一个选择器上使用几个不同的样式表时,这个属性值将会叠加几个样式表,遇到冲突的地方会以最后定义的为准。例如,我们首先链入一个外部样式表,其中定义了h3
选择符的color
、text-alig
和font-size
属性:
1 |
h3 { color: red; text-align: left; font-size: 8pt } |
(标题3的文字颜色为红色;向左对齐;文字尺寸为8号字) 然后在内部样式表里也定义了h3选择符的text-align和font-size属性:
1 |
h3 { text-align: right; font-size: 20pt } |
(标题3文字向右对齐;尺寸为20号字) 那么这个页面叠加后的样式就是:
1 |
color: red; text-align: right; font-size: 20pt |
(文字颜色为红色;向右对齐;尺寸为20号字) 字体颜色从外部样式表里保留下来,而对齐方式和字体尺寸都有定义时,按照后定义的优先而依照内部样式表。 注意:依照后定义的优先,所以优先级最高的是内嵌样式,内部样式表高于导入外部样式表,链入的外部样式表和内部样式表之间是最后定义的优先级高。
WordPress的使用很方便,但是文章的点击浏览量默认是没有的,本文介绍用WP-PostViews实现网站上显示文章的浏览量的功能。效果如下图所示:
在插件界面中安装WP-PostViews插件,并且启用插件。
修改content.php,找到如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<div class="entry-meta"> <?php if ( 'post' == get_post_type() ) twentyfourteen_posted_on(); if ( ! post_password_required() && ( comments_open() || get_comments_number() ) ) : ?> <span class="comments-link"><?php comments_popup_link( __( 'Leave a comment', 'twentyfourteen' ), __( '1 Comment', 'twentyfourteen' ), __( '% Comments', 'twentyfourteen' ) ); ?></span> <?php endif; edit_post_link( __( 'Edit', 'twentyfourteen' ), '<span class="edit-link">', '</span>' ); ?> </div><!-- .entry-meta --> |
在后面添加:
1 2 3 4 |
<?php /*View Counter for wp-postviews*/ if(function_exists('the_views')) { the_views(); } ?> |
修改后的结果如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<div class="entry-meta"> <?php if ( 'post' == get_post_type() ) twentyfourteen_posted_on(); if ( ! post_password_required() && ( comments_open() || get_comments_number() ) ) : ?> <span class="comments-link"><?php comments_popup_link( __( 'Leave a comment', 'twentyfourteen' ), __( '1 Comment', 'twentyfourteen' ), __( '% Comments', 'twentyfourteen' ) ); ?></span> <?php endif; edit_post_link( __( 'Edit', 'twentyfourteen' ), '<span class="edit-link">', '</span>' ); ?> <?php /*View Counter for wp-postviews*/ if(function_exists('the_views')) { the_views(); } ?> </div><!-- .entry-meta --> |
修改content.php,找到如下代码:
1 2 3 4 |
<footer class="entry-footer"> <?php twentyfifteen_entry_meta(); ?> <?php edit_post_link( __( 'Edit', 'twentyfifteen' ), '<span class="edit-link">', '</span>' ); ?> </footer><!-- .entry-footer --> |
在后面添加:
1 2 3 4 |
<?php /*View Counter for wp-postviews*/ if(function_exists('the_views')) { the_views(); } ?> |
修改后的结果如下:
1 2 3 4 5 6 7 8 |
<footer class="entry-footer"> <?php twentyfifteen_entry_meta(); ?> <?php edit_post_link( __( 'Edit', 'twentyfifteen' ), '<span class="edit-link">', '</span>' ); ?> <?php /*View Counter for wp-postviews*/ if(function_exists('the_views')) { the_views(); } ?> </footer><!-- .entry-footer --> |
1 |
$ expect backup.sh |
hostback.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
#!/bin/sh LogFile=~/backup/backup-`date +%Y%m%d`.log #指定日志的名字 BakDir=~/backup #备份文件存放的路径 MD5File=~/backup/md5-`date +%Y%m%d`.txt Sha1File=~/backup/sha1-`date +%Y%m%d`.txt #create backup directory if [ -d $BakDir ] then cd $BakDir touch $LogFile else mkdir -p $BakDir cd $BakDir touch $LogFile fi #backup wordpress datadump=`which mysqldump` wordpressdb="wordpress" #wordpress数据库的名字 wordpresspath=/var/www #wordpress程序文件的位置 mysqluser="root" #数据库的用户名 userpass="password" #用户密码 backupwordpress_tar_gz=$wordpressdb.`date +%Y%m%d`.tar.gz backupwordpress_sql=$wordpressdb.`date +%Y%m%d`.sql if $datadump -u $mysqluser --password=$userpass -h localhost --opt $wordpressdb > $backupwordpress_sql 2>&1 then echo " backup $wordpressdb success" >> $LogFile else echo " backup $wordpressdb error" >> $LogFile exit 1 fi #检验文件尾部是否存在 “-- Dump completed on”,如果存在不存在,则说明备份出错了。 if [ 0 -eq "$(sed '/^$/!h;$!d;g' $backupwordpress_sql | grep -c "Dump completed on")" ]; then echo " backup $wordpressdb error" >> $LogFile exit 1 fi #使用h参数的目的在于把软连接指向的实际内容打包进入,而不是仅仅打包一个软连接 if tar czpfh $backupwordpress_tar_gz $wordpresspath $backupwordpress_sql >/dev/null 2>&1 then echo " backup wordpress success" >> $LogFile rm -f $wordpressdb.`date +%Y%m%d`.sql else echo " backup wordperss error" >> $LogFile exit 1 fi md5sum $backupwordpress_tar_gz >> $MD5File sha1sum $backupwordpress_tar_gz >> $Sha1File |
backup.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
#!/usr/bin/expect -f #开启内部动作调试输出,观察是否正确执行 1 代表打开调试,0代表关闭调试 exp_internal 0 set HostAddr "www.mobibrw.com" set HostPort 22 set UserName "user" set BackupShell "hostback.sh" set Password "password" set BakDir "backup" set timeout -1 #由于通过FTP传输的文件格式可能\n被替换为\r\n 的情况,因此需要执行一下 dos2unix 转化到 \n spawn dos2unix $BackupShell expect eof spawn ssh $HostAddr -p $HostPort -l $UserName rm -rf ~/$BackupShell expect -re ".*assword:" send "$Password\r" expect eof spawn scp $BackupShell $UserName@$HostAddr:~/$BackupShell expect -re ".*assword:" send "$Password\r" expect eof spawn ssh $HostAddr -p $HostPort -l $UserName chmod +x ~/$BackupShell expect -re ".*assword:" send "$Password\r" expect eof #解决在群晖NAS系统上TCP超时问题,增加心跳保持参数 #同时注意,远端语言有可能不是英文,因此需要增加LC_ALL=C强制切换到英文,否则后续匹配可能无法完成 spawn ssh $HostAddr -o TCPKeepAlive=yes -o ServerAliveInterval=30 -p $HostPort -l $UserName "LC_ALL=C sudo -E bash ~/$BackupShell" expect -re ".*assword:" send "$Password\r" expect eof spawn scp -r $UserName@$HostAddr:~/$BakDir ./ expect -re ".*assword:" send "$Password\r" expect eof #backup-20151227.log\nbash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.utf8) 这种情况要注意 proc getFilterFile { host port user bakdir password filter regx} { spawn ssh $host -p $port -l $user ls ~/$bakdir | grep $filter expect -re ".*assword:" send "$password\r" expect -re "$regx" expect eof return [string trimright $expect_out(0,string)] } cd ./$BakDir #校验MD5,SHA1 set MD5File [getFilterFile $HostAddr $HostPort $UserName $BakDir $Password "md5" "md5(.*).txt"] puts stdout $MD5File #修改语言环境,否则md5sum,sha1sum返回的结果中可能不会出现"OK",而是会出现“确定” #“失败” if {[info exists ::env(LANG)]==1} { set ORG_LANG "$env(LANG)" puts stdout "$env(LANG)" set env(LANG) "C" puts stdout "$env(LANG)" } if {[info exists ::env(LC_ALL)]==1} { set ORG_LC_ALL "$env(LC_ALL)" puts stdout "$env(LC_ALL)" set env(LC_ALL) "C" puts stdout "$env(LC_ALL)" } spawn md5sum -c $MD5File expect -re ".*OK" expect eof set Sha1File [getFilterFile $HostAddr $HostPort $UserName $BakDir $Password "sha1" "sha1(.*).txt"] puts stdout $Sha1File spawn sha1sum -c $Sha1File expect -re ".*OK" expect eof #还原语言设置 if {[info exists ::env(LANG)]==1} { puts stdout "$env(LANG)" set env(LANG) "$ORG_LANG" puts stdout "$env(LANG)" } if {[info exists ::env(LC_ALL)]==1} { puts stdout "$env(LC_ALL)" set env(LC_ALL) "$ORG_LC_ALL" puts stdout "$env(LC_ALL)" } #打印本次的备份日志出来 set LogFile [getFilterFile $HostAddr $HostPort $UserName $BakDir $Password "backup" "backup(.*).log"] puts stdout $LogFile set f [ open $LogFile r] while { [ gets $f line ] >= 0 } { puts stdout $line;} #删除远端的备份脚本 spawn ssh $HostAddr -p $HostPort -l $UserName sudo rm -rf ~/$BackupShell expect -re ".*assword:" send "$Password\r" expect eof #删除远端的备份目录 spawn ssh $HostAddr -p $HostPort -l $UserName sudo rm -rf ~/$BakDir expect -re ".*assword:" send "$Password\r" expect eof |
WordPress 4.3正式版于今天(19日)凌晨开始推送。不过这里提醒中文用户请暂缓升级到WordPress 4.3,目前发现当语言切换到简体中文后,文章编辑器无法在可视化与文本模式之间切换,已严重影响正常使用。
另外,如果你的主题使用 wp_trim_words 函数用于截断文字,在WP4.3中文版本中也将失效。
加上4.2版菜单设置页面无法打开显示选项,WordPress 中文版BUG越来越多....
经测试,WordPress 4.3所有BUG,并非是WP程序本身有什么问题,完全是制作中文汉化版的人不负责任造成的,因为切换到日文及其它语言,一切正常,无语.....
已 升级至WordPress 4.3版的用户,可以用WordPress 4.2+版的程序文件覆盖一下,降回之前的版本,或者删除之前版本wp-content目录的languages文件夹(因为之前版本的中文语言文件与 4.3版有冲突),然后重新安装中文语言,可以解决编辑器无法切换模式的BUG,但WordPress集成的文字截断函数 wp_trim_words 在选择中文语言后还是失效。
如果你之前转优酷等站点的视频,使用的是直接在文章中插入视频地址的方法,也将完全失效,因为目前的中文版,并没有针对中国用户作出优化,貌似从WP4.0之后就是如此了,看来以后也不会有了,相关插件可能会大行其道。
目前的应急解决方法为 : 切换语言到英语,然后编辑文章,编辑完成后,修改回简体中文,然后默默等待更新。
注意 22号的版本更新已经修正该问题!!!
最近使用 WordPress 自动升级的时候,只要更新包稍微大一点就会报告500错误。观察Apache2的日志,提示如下信息:
1 2 3 4 5 6 |
$tail -f /var/log/apache2/error.log ................................... [Thu Aug 06 10:51:54 2015] [warn] [client 42.120.74.98] (110)Connection timed out: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: http://www.mobibrw.com/wp-admin/update-core.php?action=do-core-upgrade [Thu Aug 06 10:52:02 2015] [warn] mod_fcgid: process 11192 graceful kill fail, sending SIGKILL [Thu Aug 06 10:53:06 2015] [warn] [client 42.120.74.98] mod_fcgid: read data timeout in 40 seconds, referer: http://www.mobibrw.com/wp-admin/update-core.php?action=do-core-upgrade ................................... |
网站配置的PHP是通过FastCGI模块来加载,也就是mod_fcgid。
这个说明fcgid模块在读取数据的时候超时了。经过多次测试,证明500错误的时候会产生这条记录,看来罪魁祸首就是这个模块了。立马输入命令:
1 2 3 4 5 6 7 8 |
$vim /etc/apache2/mods-available/fcgid.conf <IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi .php FcgidConnectTimeout 120 DefaultMaxClassProcessCount 10 MaxRequestLen 15728640 </IfModule> |
上网仔细一查,这个模块下可用的参数还真不少。 另外一个叫做“IPCCommTimeout”的参数吸引了我的注意力,这是FastCGI模块在与程序通讯的时候的超时时间。不管三七二十一,死马当活 马医,将这个参数添加后,也设置为300,这样一来文件的内容就如下了:
1 2 3 4 5 6 7 |
<IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi .php FcgidConnectTimeout 120 DefaultMaxClassProcessCount 10 MaxRequestLen 15728640 IPCCommTimeout 300 </IfModule> |
再次重启apache,运行出错的php脚本测试,成功得到结果,没有再出现500错误,问题解决。
一般来说你使用的主机会限制你上传文件的大小,在WordPress的媒体文件上传可以看到,大多数都是2MB。如果是图片的话可能会还够用,但是如果是其他文件就不一定够用了。
增大可以上传的文件大小的话,则执行如下命令
1 |
sudo vim /etc/php5/apache2/php.ini |
搜索 “upload_max_filesize ”,把默认的 2M修改为需要的大小。
如果这个时候,重启了Apache,会发现上传的大小被限制在了8M,这个时候需要继续修改 “post_max_size = 8M”到指定的大小才可以。然后,重启Apache2。
如果你使用了CGI或者FastCGI ,这么修改可能没有效果。
如果用到了CGI,则需要修改 “/etc/php5/cgi/php.ini”。
如果用到了CLI则需要修改 “/etc/php5/cli/php.ini”。
如果用到了Apache2 PHP FPM模块,需要修改 “/etc/php5/fpm/php.ini”。
如果实在不知道,那么就都修改一下好了。
对于使用FastCGI的情况,按照上面的修改完成后,WordPress的界面上应该已经显示为正确的大小了,但是当你真的上传一个比较大的文件的时候,却可能一直失败,抓包分析之后,发现HTTP返回了500错误。这个时候如果你去看Apache2的日志,却发现没什么太明显的错误信息。主要这么一条比较可疑
1 |
[warn] [client x.x.x.x] mod_fcgid: HTTP request length 139072 (so far) exceeds MaxRequestLen (131072), referer ... |
这个被标记为警告,实际上,这就是返回500错误的原因。产生这个错误的原因在于FastCGI限制默认的请求大小为131072字节,而我们上传文件如果超过这个大小的现在,就直接返回异常了。
修改FastCGI的配置文件即可
1 |
sudo vim /etc/apache2/mods-enabled/fcgid.conf |
可以看到里面内容大致如下:
1 2 3 4 5 6 7 |
<IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi .php FcgidConnectTimeout 120 DefaultMaxClassProcessCount 10 MaxRequestLen 131072 IPCCommTimeout 300 </IfModule> |
此时应该修改MaxRequestLen 到一个比较大的数字即可,注意这个数字的单位是字节,要自己换算一下,要比自己设置的上传文件的大小要大一些才可以。
WordPress大概从wp-3.8开始会自动加载Open Sans字体,并引用Google上面的CSS样式。Open Sans字体主要用于WP站点管理员登陆后顶部功能条的字体样式,而对于国内用户来说,Google会出现经常打不开或者访问速度过慢的情况,所以会拖延 站点的打开速度。
通过观察代码可以看到,WP是这样加载字体的,在script-loader.php(wp-4.2)的690行代码进行加载。
1 |
$open_sans_font_url = "https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets"; |
可用的方法
名称:Remove Open Sans font Link from WP core
地址:http://wordpress.org/plugins/remove-open-sans-font-from-wp-core/
简介:Installs ‘Remove Open Sans font Link from WP core’ plugin on your wordpress blog, so it will doesn’t load Open Sans font from Google fonts. 移除WP核心的谷歌字体链接.
名称:Disable Google Fonts
地址:http://wordpress.org/plugins/disable-google-fonts/
简介:另一个类似的插件
打开wordpress代码中的文件wp-includes/script-loader.php文件,搜索:fonts.googleapis.com找到这行代码:
1 |
$open_sans_font_url = "//fonts.googleapis.com /css?family1=Open+Sans:300italic,400italic,600italic,300,400,600& subset=$subsets"; |
把fonts.googleapis.com替换为fonts.useso.com
修改完保存,再次刷新,大家就可以发现,自己的网站速度已经比以前快了很多,几乎瞬间就可以拿到Google字体了。