服务器和网站类
WordPress“正在执行例行维护”的解决办法
0本文转自 月光博客, 还好我用wordpress一直没有遇到过这个问题.
折腾WordPress的时候,升级了一个主题,结果主题升级失败,WordPress首页也打不开了,所有的页面都一直提示:“正在执行例行维护,请一分钟后回来。”
我等了不止一分钟,系统还是没有恢复正常,只好FTP登录主机看一下,后来发现 WordPress 根目录多了一个 .maintenance 文件,将这个文件删除,之后再刷新一下WordPress首页,显示正常。
这个经验告诉我们,不要在正式环境下随便升级主题模版。
作者:williamlong
修改主题支持两种菜单并存
1在本站升级到Wordpress 3.0后,浏览了一下许久没有看过的themes目录,发现几个我喜欢的主题,经过一番试用,发现Mystique也就是您现在看到的主题最合我心意,后来才发现这也是digitalnature的作品,good job!
美中不足的是,Mystique配置界面中主菜单只能在无、链接、页面、分类目录和自定义菜单中做单选,我希望能把分类目录和自定义菜单并存,一起显示出来。可惜作者没有设计这样的功能。Hacking的真谛就是要自己动手,当然还有无私分享。下面我就贴出我的做法:
先来看看core.php中相关功能实现函数
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 | // print the main navigation menu function mystique_navigation() { $navtype = get_mystique_option('navigation'); if($navtype): ?> <div class="shadow-left"> <div class="shadow-right clearfix"> <?php $nav_extra = apply_filters("mystique_navigation_extra", ''); // check for new icons and output if($nav_extra) echo '<p class="nav-extra">'.$nav_extra.'</p>'; ?> <ul id="navigation" class="clearfix"> <?php if((get_option('show_on_front')<>'page') && get_mystique_option('exclude_home')<>'1'): if(is_home() && !is_paged()): ?> <li class="active home"><a class="home active fadeThis" href="<?php echo get_settings('home'); ?>" title="<?php _e('You are Home','mystique'); ?>"><span class="title"><?php _e('Home','mystique'); ?></span><span class="pointer"></span></a></li> <?php else: ?> <li class="home"><a class="home fadeThis" href="<?php echo get_option('home'); ?>" title="<?php _e('Click for Home','mystique'); ?>"><span class="title"><?php _e('Home','mystique'); ?></span><span class="pointer"></span></a></li> <?php endif; endif; ?> <?php if($navtype=='categories'): mystique_list_categories(array('hide_empty' => false, 'exclude' => get_mystique_option('exclude_categories'))); elseif($navtype=='links'): $links = get_bookmarks(array( 'orderby' => 'name', 'order' => 'ASC', 'limit' => -1, 'category' => null, 'category_name' => get_mystique_option('navigation_links'), 'hide_invisible' => true, 'show_updated' => 0, 'include' => null, 'search' => '.')); foreach ($links as $link): if($link->link_target) $target = ' target="'.wp_specialchars($link->link_target).'"'; else $target = ''; if($link->link_rel) $rel = ' rel="'.wp_specialchars($link->link_rel).'"'; else $rel = ''; if($link->link_description) $title = ' title="'.wp_specialchars($link->link_description).'"'; else $title = ''; echo '<li><a class="fadeThis" href="'.$link->link_url.'"'.$target.$rel.$title.'><span class="title">'.$link->link_name.'</span><span class="pointer"></span></a><li>'; endforeach; else: mystique_list_pages(array('exclude' => get_mystique_option('exclude_pages'), 'sort_column' => 'menu_order')); endif; do_action('mystique_navigation'); ?> </ul> </div> </div> <?php endif; } |
可以看出,作者整体设计的时候,就没有想要让用户做复选,在条件判断中使用了连续的if … elseif… 实现。
我采用了一个偷懒的方法仅把
1 | if($navtype=='categories'): |
注释掉,然后把接下来的
1 | elseif($navtype=='links'): |
改成
1 | if($navtype=='links'): |
就可以啦。
自动备份数据库并发送到电子邮箱的脚本
0将网站数据库备份后留在本地硬盘上,并不是一个可靠的方案。我就把压缩后的文件发送到电子邮件信箱里。Gmail的附件目前最大25兆,QQ邮箱是50兆,所以本方法不适合大型商业网站,个人独立博客比较合适的说。
下面贴出脚本,本方法需要先安装mutt邮件客户端。
请注意,有些老点的文章中给出的示例,在邮件地址前面没有 — 符号,这会造成新版本的mutt提示 No recipients specified. 只要加上 — 符号就可以了。
还有一个注意的地方,如果连续发送很多数据库文件并保存在Sent文件中,很快就会消耗大量的本地硬盘空间。让mutt默认不保存已发送邮件的方法是修改 /etc/Muttrc文件,或者在当前用户home目录下,修改或建立一个隐藏文件 .muttrc (注意这两个M的大小写), 修改或增加这样一行 set record=”/dev/null” (一般默认为 set record=”~/Sent”),就可以让Mutt不保存已发送邮件从而节省空间了。
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 | #!/bin/sh sendfiletogmail () { FilePath=$1 FileName=$2".bz2" mutt -s "Database Backup File ${FileName}" -a${FilePath}"/"${FileName} -- yourMailBox@gmail.com < "/path/to/emailbody.txt" } backup () { DBName=$@ BackupPath="/path/to/"${DBName} BackupName=${DBName}-`date "+[%z%Z]%Y-%m-%d-%H-%M-%S"`".sql" if [[ -d "${BackupPath}" ]] || mkdir ${BackupPath}; then if mysqldump -uroot -pYourPasswd \ --default-character-set=utf8 --opt --master-data=1 \ --single-transaction --flush-logs \ ${DBName} > ${BackupPath}"/"${BackupName}; then echo ${BackupName}"Backup success!" bzip2 -q -s ${BackupPath}"/"${BackupName}; sendfiletogmail ${BackupPath} ${BackupName} else echo ${BackupName}"Backup Failed@@@@@@@@@@@@@@@@@@@@@@@@" fi fi find ${BackupPath}"/" -ctime +7 -exec rm {} \; } #Call the function to backup database assigned below backup yourDBnamd_db |
name.com的whois隐私注册要收费了!?
0今天打开name.com的控制面板,发现所有的Whois Privacy都从域名后面的位置另起一行,并且用红色反现.顿时预感不对.搞什么花样?很快就反应过来,肯定是要收费了.
此前免费的Whois Privacy服务一直都是name.com的特色.喜欢上name.com也是因为这个.但是估计是眼红Godaddy靠这个赚钱吧,name.com耐不住寂寞了.现在也开始收费.而且标价很贵,7.99USD/yr,现在有优惠价格为$1.99/yr.
幸好我的域名都续费了好多年,暂时不用管.但是,是不是需要在找个便宜的注册商把域名都转过去呢? 郁闷….
PS: 经过浏览name.com的官方博客,发现他们现在提供一个优惠码“FREEWHOIS”,可以减掉订单中第一年的1.99$费用,到0.00$(不就是免费一年嘛).
转载一下他们的条款原文
- All domains that currently have Private Whois already turned on will continue to receive it for free.
- The new pricing will begin today and will only apply to domains that don’t already have Private Whois enabled and/or new domain registrations.
- We are running a promotional price of just $1.99/domain per year, which is one of the lowest prices available.
- We’ve created a promo code called “FREEWHOIS” that will discount the current special pricing of $1.99 to $0.00, making this service free for the first year for orders using this promo code.
Hello, IPv6!
0I just moved my sites to a brand new server with IPv6 enabled. You can ping6 zhuwenhao.com or host zhuwenhao.com to test.
My IPv6 address is [2607:f2f8:3340::1eee]
Welcome to my blog via IPv6 network!