优化 WordPress 3.0-4.9 自动草稿功能

Super Switch 是我的必装插件之一,可以去掉烦人的 Revision。可是升级到 3.0 之后,又冒出个自动草稿(auto-draft)功能。当然,如果你点击新建一篇文章,然后接着就写完发表,那么这个问题可能不存在,但是如果你点击了新建文章后,没写东西,或者写了几个字又点击其他页面,不想写了,那么你在数据库中查看,将占用一条记录,被标记为了auto-draft,即自动草稿。

目前好像还没有关闭自动草稿的插件,所以只好自己动手优化一下,让其每次只产生一条 auto-draft,新建文章时自动调用。

找到 /wp-admin/includes/post.php 文件,搜索 $create_in_db ,下面就是产生 auto-draft 的代码:

    if ( $create_in_db ) {
        $post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) );
        $post = get_post( $post_id );
        // Below is added in 3.1
        if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) && get_option( 'default_post_format' ) )
            set_post_format( $post, get_option( 'default_post_format' ) );
    }

继续阅读“优化 WordPress 3.0-4.9 自动草稿功能”

eAccelerator 配置参数详解

eAccelerator 是一个自由开放源码 PHP 加速器,优化和动态内容缓存,提高了 PHP 脚本的缓存性能。

eaccelerator.shm_size = "32"

eAccelerator 可以使用的共享内存的数量(以兆为单位)。"0" 是指操作系统的默认值。默认值是 "0"。可根据服务器的实际情况来调整,16,32,64,128 都是可以的。

eaccelerator.cache_dir = "/tmp/eaccelerator"

这个目录是给磁盘缓存使用。eAccelerator 在这里储存预先编译好的代码,进程数据,内容以及用户的自定义内容。同样的数据也能被储存在共享内存中 (这样可以提高访问速度)。默认的设置是 "/tmp/eaccelerator"。

eaccelerator.enable = "1"

开启或关闭 eAccelerator。"1" 为开启,"0"为关闭。默认值为 "1"。
继续阅读“eAccelerator 配置参数详解”

如何在 Windows 系统编译 PHP5

类 Unix 系统上的编译方式各位基本都很熟悉,网上也有大把的资料可以查询。但是却很少见到 PHP 在 Windows 平台上的编译方法。因此也导致了本文的诞生。你可以将本文当作对 PHP 手册上对 Windows 上编译 PHP 一章的扩充版本。
首先,借用 PHP 手册上的一段话:
开始之前,很值得回答一下这个问题:为什么在 Windows 下编译这么难?
Windows 下还没有愿意免费共享代码的开发人员群体。直接结果就是没有足够的投资去建立支持这种开发方式的体系。大体上,尽量得到的可用资源都是从 Unix 下的工具来的。

环境需求

首先,为了在 Windows 上安编译,我们需要有 Microsoft 开发环境。推荐使用 Mirosoft Visual C++ 6.0,当然 VC++.net 也同样可以。
从 PHP5 开始,支持 Microsoft .NET 的工具链(你需要安装 Windows Platform SDK, Visual C++ Toolkit and .NET Framework SDK)
继续阅读“如何在 Windows 系统编译 PHP5”

Nginx PHP-FPM 502 504 自动重启脚本

网上有很多方法了:增加 php-cgi 进程 增加时间 等等 试了很多都没法完全杜绝 502 和 504 的发生,而且一旦发生了 502 错误,而且我们又不在电脑旁时就可能会损失大量的流量,于是就想让服务器自动检测 php 是否运行正常,若不正常重启之,这样就可以在 php 出现 502 等情况时尽快恢复正常。完全杜绝的方法还在摸索中…

首先新建一个 x.php 文件放入网站根目录:

<?php echo 'onens.com';

然后 编写脚本 内容如下。此脚本并无判断是否是 502 还是 504 还是其他,只要 http 请求返回值不是 200,就重启!

vim restart-php-fpm.sh

#!/bin/sh
wget http://onens.com/x.php --spider

re=$?

if [ $re = "1" ]; then
    echo "##" "502" $(date +"%y-%m-%d %H:%M:%S") "restart php-fpm " | mail -s "Critical Info" 13888888888@139.com
    /etc/init.d/php-fpm restart
    echo "restart php-fpm"
fi

继续阅读“Nginx PHP-FPM 502 504 自动重启脚本”

Nginx PHP-FPM 服务脚本

nginxphp-fpm 添加到系统服务:

vim /etc/init.d/nginx
# Copy the "nginx" into "/etc/init.d/nginx"
chmod 755 /etc/init.d/nginx
chkconfig --level 345 nginx on
vim /etc/init.d/php-fpm
# Copy the "php-fpm" into "/etc/init.d/nginx"
chmod 755 /etc/init.d/php-fpm
chkconfig --level 345 php-fpm on
# Or simply:
echo "/usr/sbin/nginx" >> /etc/rc.local
# Stop
pkill -9 nginx
# Reload
/usr/sbin/nginx -s reload
echo "/usr/sbin/php-fpm -y /etc/php-fpm.conf" >> /etc/rc.local
# Stop
pkill -9 php-fpm

继续阅读“Nginx PHP-FPM 服务脚本”

PHP 5.3 版本选择

最近在 PHP 官网上看到又有新版的 PHP 下载了,于是上去找找 For Windows 的版本,可是一看确傻眼了,一共给了四个版本,VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先。

一、如何选择 PHP 5.3 的 VC9 版本和 VC6 版本

VC6 版本是使用 Visual Studio 6 编译器编译的,如果你的 PHP 是用 Apache 来架设的,那你就选择 VC6 版本。

VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你的 PHP 是用 IIS 来架设的,那你就选择 VC9 版本。

二、如何选择 PHP 5.3 的 Thread Safe 和 Non Thread Safe 版本

先从字面意思上理解,Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查。
继续阅读“PHP 5.3 版本选择”

[分享] 一些 PHP tips

先说几个比较重要的:

数据变量在用foreach前一定要先验证是否是数组类型,否则是个Error!

所有的返回值都要判断,不要认为它一定会如你所愿返回正确的值。

1.如果在写PHP的一个方法的时候能被静态,那就声明他为静态的,速度可提高1/4; //但要注意,static变量是文件被引用的时候就分配内存,而不是被调用时;
2.在PHP的输出语句中,echo的效率高于 print,因为echo没有返回值,print返回一个整型;
3.在循环之前设置循环的最大次数,而非在在循环中;
4.销毁变量去释放 内存,特别是大的数组;
5.避免使用像__get, _set, __autoload等魔术方法;
6.requiere_once() 比较耗资源;
7.在includes和requires中使用绝对路径,这样在分析路径花的时间更少;
8.如果你需要得sexinsex 到脚本执行时的时间,$_SERVER[‘REQUSET_TIME’]优于time();
9.能使用字符处理函数的,尽量用他们,因为效率高于 正则;
10.str_replace字符替换比正则替换preg_replace快,但strtr比str_replace又快1/4;
继续阅读“[分享] 一些 PHP tips”

Coolcode 3.4 Gesion 修改版

WordPress 代码高亮插件,国人制作,不过 3.4 中有几个 Bug 存在,而且原作者好像已不再更新。于是就整合了一个修改版。

更新内容:

  1. 修复 HTML 代码被执行的问题(CFC4N);
  2. 修改 coolcode 标签为 code;
  3. CSS 样式稍作修改。

下载地址:coolcode-gesion