分类: 电脑技巧

  • Directadmin 用户出现internal server error错误解决办法

    出现这个问题是由于服务器安全权限升级导致的,可以说是更加安全,不过安全的基础之上带来了一些比较烦人的问题,一些老用户在未升级之前已经存在,服务器升级之后可能由于某些原因,用户的权限没有得到相应的提升,所以导致这种错误的出现。
    解决方法:
    首先先从最简单的方法说起,将所在目录的.htaccess 删除然后重新生成一份,即可得到解决。
    如果第一种方法无法解决,那么开始进入后台重置权限,登陆后台http://IP:2222/

    进入文件管理器,然后进入到你域名网站的目录一般为public_html,管理器看到的地址一般为/domains/xxx.com/public_html/。
    然后选中目录下全部文件 进行权限重置。

    第一次设置文件权限为 755 然后勾选recursive 点击set permission。
    第二次设置用户执行reset owner。

    然后访问网站查看是否恢复正常。
    如有其他问题,请联系的管理员。

  • wordpress 替代 All in One SEO Pack插件

    在寻找All in One SEO Pack插件的替代方案前,首先要弄明白这个问题。下面几个功能是最有价值的,也是wordpress默认无法提供的:

    1、博客的标题(title)应当写成内容 | 博客名的形式;

    2、head部分添加充足的meta说明;

    3、让搜索引擎不要索引存档页面,存档页面都是重复内容,这会降低博客的评分。

    4、为每一篇文章以及博客首页,加上独特的关键词(keywords);

    下面就会针对这些问题,给出解决方案。如果你不大了解php语言,只需要按照说明复制粘贴到自己的wordpress模板中就可以了。

    修正博客的标题

    在模板文件夹中找到header.php文件,打开后修改title标签:

    <title><?php wp_title(‘ | ‘, true, ‘right’); ?><?php bloginfo(‘name’); ?></title>
    /**或者干脆把博客的名字写死,你总不会时常换博客名字吧**/
    <title><?php wp_title(‘ | ‘, true, ‘right’); ?>Cogipard Playground</title>
     

    添加充足的meta说明

    还是修改header.php文件,在head标签中酌情加入如下内容:

    /**博客的描述性内容,你可以像我这样写死,也可以采用wordpress的副标题(用bloginfo(“description”)获得)**/
    <meta name=”description” content=”A personal online home, portfolio and journal.” />
    /**博主的名字**/
    <meta name=”author” content=”dotswing” />
    /**版权信息**/
    <meta name=”copyright” content=”Cogipard Playground” />

     不索引存档页面

    修改header.php文件,紧接着上述的meta标签,加入:

    <?php if (is_single() || is_page() || is_home() ) : ?>
    <meta name=”robots” content=”index,follow” />
    <?php else : ?>
    <meta name=”robots” content=”noindex,follow” />
    <?php endif; ?>

     这样对于存档页面,搜索引擎就不会去索引这些重复的内容了。

    个性化输出页面文章的关键词

    在模板文件夹下的functions.php文件中,加入如下的函数:

    function keywords() {
    $keywords = ”;
    if( is_single() || is_page() ){
    $terms = get_the_terms( get_the_ID(), ‘post_tag’ );
    if ( is_wp_error( $terms ) )
    return $terms;
    if ( empty( $terms ) )
    return false;
    foreach ( $terms as $term ) {
    $keywords .= $term->name;
    $keywords .= ‘, ‘;
    }
    }
    else {
    $tags = get_tags(‘orderby=count&order=DESC’);
    foreach ($tags as $tag){
    $keywords .= $tag->name;
    $keywords .= ‘, ‘;
    }
    }
    $keywords = substr($keywords, 0, strlen($keywords)-2);
    echo $keywords;
    }

    这个函数的作用是,如果访客浏览的是单独的某文章页面,就会把该文章对应的tag提取出来,作为关键词;如果是其它页面,则把博客所有的tag一起输出成关键词。关键词用逗号隔开。

    在header.php中调用这个函数:

    <meta name=”keywords” content=”<?php keywords();?>” />
    functions.php中的代码,可以在模板页中直接使用,wordpress已经为我们做好了include操作,不需要自己来写include_once(‘functions.php’);了。

  • 高效管理Windows Server的三板斧

    拒绝服务器重新启动

    一般情况下,在Windows 2003 Server系统中安装完补丁程序后,系统总会提示要重新启动一下服务器。可是许多朋友往往无法容忍Windows 2003 Server服务器“慢吞吞”的启动操作,于是希望打完安全补丁之后服务器不再重新启动。其实,Windows 2003 Server服务器是否会重新启动,跟当前的系统补丁特性有一定的关系。对于那些强制需要系统启动的安全补丁,一般是无法让服务器拒绝的;但对于那些没有强制要求系统启动特性的补丁来说,可以采取如下办法:

    1.在Windows 2003 Server服务器系统桌面中,依次单击“开始”/“运行”命令,在随后打开的系统运行对话框中,输入字符串命令“cmd”,单击“确定”按钮之后,将系统工作模式切换到MS-DOS状态下;

    2.在DOS命令行中,通过“cd”命令将当前目录切换到补丁程序所在的目录,然后执行“aaa /?”字符串命令(其中aaa就是当前需要安装的系统补丁名称),在其后出现的提示界面中,检查一下当前补丁是否带有“-z”参数,要是带有该参数的话,就表明当前补丁在安装完毕后可以不强制要求系统进行重新启动;

    3.接着在DOS命令行中,再输入字符串命令“aaa -z”,单击回车键后,该补丁程序就会自动安装到系统中,并且不会要求服务器系统进行重新启动。

    取消对服务器的限制访问

    为了提高员工的工作效率,单位最近打算把Windows 2003终端服务器的访问权限向每一个员工进行开放,但考虑到安全性,网络管理人员仅为所有员工提供了相同的一个帐号来登录Windows 2003终端服务器。可是员工们在用该帐号登录终端服务器时,发现同一时间内服务器只能允许一个人登录进服务器,而且后来的员工一登录进服务器后,前一个员工就会“被迫”退出终端服务器的登录。出现这种现象到底是怎么回事呢,那有没有办法让所有员工在同一时间内,使用同一帐号都能顺利登录进行服务器呢?

    其实上述这种现象,主要是由于Windows 2003终端服务器在默认状态下,启用了“限制每一个用户只能使用一个会话”功能造成的,取消其就能解决问题。

    1.“开始”菜单,依次执行其中的“设置”/“控制面板”命令,然后双击其中的“管理工具”图标,进入到终端服务配置窗口;

    2.在该配置窗口中,用鼠标双击一下“服务器设置”处的“限制每一个用户只能使用一个会话”选项,在其后出现的选项设置对话框中,将其的复选框取消选中,“确定”。并重新启动一下服务器系统,这样员工们日后使用相同的帐号,就能同时登录进Windows 2003终端服务器系统中了。

    远程查看服务器日志文件

     网管完全可以利用服务器的日志文件,来实现保护服务器安全的目的。不过,服务器的日志文件通常只能在服务器本地查看到,可是万一网络管理人员出远门,该如何保证远程察看?Windows 2003服务器提供了远程维护功能,不过默认状态下并没有开通,需要手工启动。

  • information_schema数据库表说明

    information_schema数据库表说明:

    SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。

    TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。

    COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。

    STATISTICS表:提供了关于表索引的信息。是show index from schemaname.tablename的结果取之此表。

    USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。该信息源自mysql.user授权表。是非标准表。

    SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表。

    TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。是非标准表。

    COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。是非标准表。

    CHARACTER_SETS(字符集)表:提供了mysql实例可用字符集的信息。是SHOW CHARACTER SET结果集取之此表。

    COLLATIONS表:提供了关于各字符集的对照信息。

    COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校对的字符集。这些列等效于SHOW COLLATION的前两个显示字段。

    TABLE_CONSTRAINTS表:描述了存在约束的表。以及表的约束类型。

    KEY_COLUMN_USAGE表:描述了具有约束的键列。

    ROUTINES表:提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。名为“mysql.proc name”的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。

    VIEWS表:给出了关于数据库中的视图的信息。需要有show views权限,否则无法查看视图信息。

    TRIGGERS表:提供了关于触发程序的信息。必须有super权限才能查看该表

  • 解决mysql Access denied for user

    

    方法一:
    # /etc/init.d/mysql stop
    # mysqld_safe –user=mysql –skip-grant-tables –skip-networking &
    # mysql -u root mysql
    mysql> UPDATE user SET Password=PASSWORD(‘newpassword’) where USER=’root’;
    mysql> FLUSH PRIVILEGES;
    mysql> quit

    # /etc/init.d/mysql restart
    # mysql -uroot -p
    Enter password: <输入新设的密码newpassword>

    mysql>
    方法二:
    直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:
    # mysql -udebian-sys-maint -p
    Enter password: <输入[client]节的密码>
    mysql> UPDATE user SET Password=PASSWORD(‘newpassword’) where USER=’root’;
    mysql> FLUSH PRIVILEGES;
    mysql> quit

    # mysql -uroot -p
    Enter password: <输入新设的密码newpassword>

    mysql>
    方法三:
    这种方法我没有进行过测试,因为我的root用户默认密码已经被我修改过了,那位有空测试一下,把结果告诉我,谢谢!!
    # mysql -uroot -p
    Enter password: <输入/etc/mysql/debian.cnf文件中[client]节提供的密码>

  • 各地ISP的DNS服务器

    (1)google,OpenDNS,香港,台湾的DNS服务器:
    google(8.8.8.8)
    google(8.8.4.4)
    OpenDNS(208.67.222.222)
    OpenDNS(208.67.220.220)
    香港有线宽频i-Cable(61.10.0.130)
    香港和记环球电讯(202.45.84.58)
    香港宽频Hong Kong BroadBand Network(203.80.96.10)
    台湾中华电信(168.95.1.1)
    台湾中华电信(168.95.192.1)

    (2)网通的DNS服务器:
    北京网通(202.106.0.20)
    北京网通(202.106.46.151)
    天津网通(202.99.104.68)
    上海网通(210.22.70.3)
    上海网通(210.22.84.3)
    辽宁网通(202.96.64.38)
    黑龙江网通(202.97.224.68)
    黑龙江网通(202.97.224.69)
    山东网通(202.102.152.3)
    山东网通(202.102.134.68)
    海南网通(221.11.132.2)
    贵州网通(221.13.30.242)
    贵州网通(221.13.28.234)
    甘肃网通(221.7.34.10)
    内蒙古网通(202.99.224.68)

    (3)电信的DNS服务器:
    上海电信(202.96.209.5)
    上海电信(202.96.199.133)
    重庆电信(61.128.128.68)
    吉林电信(219.149.194.55)
    四川电信(202.98.96.68)
    四川电信(61.139.2.69)
    云南电信(202.98.96.68)

    (4)移动的DNS服务器:
    北京移动(211.136.28.237)
    天津移动(211.137.160.5)
    重庆移动(221.130.252.200)
    河北移动(211.138.13.66)
    山西移动(211.138.106.19)
    辽宁移动(211.140.197.58)
    吉林移动(211.141.16.99)
    黑龙江移动(211.137.241.34)
    黑龙江移动(211.137.241.35)
    江苏移动(211.103.55.51)
    江苏移动(221.130.56.242)
    浙江移动(211.140.10.2)
    安徽移动(211.138.180.2)
    安徽移动(211.138.180.3)
    江西移动(211.141.90.68)
    河南移动(211.138.31.4)
    湖北移动(211.137.76.67)
    湖南移动(211.142.210.98)
    广东移动(218.204.254.77)
    海南移动(211.138.164.6)
    四川移动(211.137.96.205)
    贵州移动(211.139.1.3)
    云南移动(211.139.29.68)
    陕西移动(211.137.130.3)
    甘肃移动(218.203.160.194)
    青海移动(211.138.75.123)
    内蒙古移动(211.138.91.1)
    广西移动(211.138.252.30)
    宁夏移动(218.203.101.3)
    新疆移动(218.202.152.130)
    西藏移动(211.139.73.34)

    (5)教育网的DNS服务器:
    中国科技大学教育网(202.38.64.1)
    武汉科技大学教育网(202.114.240.6)
    重庆大学教育网(202.202.0.33)
    北京师范大学教育网(202.112.80.106)
    广东金融学院教育网(218.192.12.6)
    兰州大学教育网(202.201.0.131)
    郑州大学教育网(202.196.64.1)
    深圳大学教育网(218.192.240.2)
    鲁东大学教育网(202.194.48.66)

    (6)国外的DNS服务器:
    美国(208.67.222.222)
    美国(208.67.220.220)
    美国(165.87.13.129)
    美国(165.87.201.244)
    美国(205.171.2.65)
    加拿大(209.166.160.36)
    新西兰(202.27.184.3)
    印度(202.138.103.100)
    印度(202.138.96.2)

  • WordPress 3.1 禁止自动草稿(auto-draft)的方法

    WordPress3.1版本发布有一段时间了。该版本不仅仅有自动保存历史版本的功能(通常都用不着,还会造成一些垃圾数据),还增加了一个自动保存草稿的功能。你每次点击”add new”时都会在post表中保存一条状态为“auto-draft”的后台不可见记录,同样会造成一些垃圾数据以及ID的不连续性。

    为保证尽量减少数据库中的垃圾和保持日志ID的连续性,人们想了很多办法,各显神通。但大部分都是采用插件形式。插件形式仅仅能禁止日志的历史版本,却对自动插入的状态为”auto-draft”的记录无能为力。而且这种记录并不能在wordpress的后台看到。对于追求完美和有洁癖的人来说,这些记录实在是很烦人。

    禁止自动生成 auto-draft 的不可见草稿:
    在wp-admin/includes/post.php中,从第374行开始,有一个if判断,代码如下:
    if ( $create_in_db ) {
    // Cleanup old auto-drafts more than 7 days old
    $old_posts = $wpdb->get_col( “SELECT ID FROM $wpdb->posts WHERE post_status = ‘auto-draft’ AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date” );
    foreach ( (array) $old_posts as $delete )
    wp_delete_post( $delete, true ); // Force delete
    $post_id = wp_insert_post( array( ‘post_title’ => __( ‘Auto Draft’ ), ‘post_type’ => $post_type, ‘post_status’ => ‘auto-draft’ ) );
    $post = get_post( $post_id );
    } else {
    解释一下这段代码的功能,首先,清除七天以前的自动草稿,然后插入一条新草稿,如果你继续写文章并发布,那么这条草稿就被使用了,包括在后台首页有一个快速发布,也用到了这个。但如果你仅仅是点击了new post(添加文章),接下来没有输入任何内容就跳到别的页面去了或关闭了,此时仍然会生成一个自动草稿,而这个草稿,是后台不可见的,是垃圾数据。

    所以修改了一下代码,将这个if判断中的内容替换成以下内容,代码如下:
    if ( $create_in_db ) {
    // modify by akii start
    global $current_user;
    $post_auto_draft = $wpdb->get_row( “SELECT * FROM $wpdb->posts WHERE post_status = ‘auto-draft’ AND post_author = $current_user->ID ORDER BY ID ASC LIMIT 1” );
    if ($post_auto_draft){
    $post = $post_auto_draft;
    } else {
    $post_id = wp_insert_post( array( ‘post_title’ => __( ‘Auto Draft’ ), ‘post_type’ => $post_type, ‘post_status’ => ‘auto-draft’ ) );
    $post = get_post( $post_id );
    }
    // modify by akii end
    } else {
    原理及说明:当数据库中有一条或多条状态为”auto-draft”的自动草稿时,取ID最小的,新文章即使用此条记录。如果没有此种类型的数据,才会新插入一条数据。并且查询数据时是根据当前的用户来判断,不会出现多用户时出错。这样就可以避免了自动草稿(auto-draft)的冗余垃圾数据。保证了日志ID的连续性。但最后我要提醒一句,如果你在日志中添加了附件,如图片,那么该图片也会占用一条数据,即一个连续的ID,所以,如果你以ID形式,发现日志有时候不是连续的ID了,那么,有可能是你日志的附件占用了临近的ID。

  • QQ等级加速方法

    QQ等级加速方法

    1、QQ等级本身每天可以在线两小时 算一天。

    2、QQ输入法聊天可以增加0.1天的时间。

    3、QQ电脑管家在线30分可以额外增加一天。

    4、QQ会员可以让等级加速最高1.8倍。

    5、QQ超级QQ可以让等级加速最快1.8倍。

  • google首选域(www 或非 www)

    首选域是您希望 Google 用来将您的网页编入索引的域(有时也指规范域)。指向您网站的链接也许会使用 www 和非 www 两种网址(例如 http://www.example.com 和 http://example.com)。首选域是您希望您的网站在搜索结果中所显示的格式。

    如果您看到消息,称您的网站未编入索引,可能是因为该网站在另一域下被编入了索引。例如,如果您收到消息,称 http://example.com 未编入索引,则请确保您已将 http://www.example.com 也添加到了自己的帐户中(反之亦然),并检查该网站的数据。

    在您告知我们您网站的首选域名后,我们会在以后抓取您的网站和刷新索引时使用此信息。例如,如果您指定的首选域为 http://www.example.com,而我们发现指向您网站的链接格式为 http://example.com,那么,我们会追踪 http://www.example.com 链接。此外,我们会在显示网址时充分考虑您的使用偏好。如果您未指定首选域,我们会将 www 和非 www 格式的域名视为对不同网页的不同引用。

    您可能需要等待一段时间才能看到所做的更改完全显示在我们的索引中。在我们刷新这些网页的索引之前,当前在索引中显示非首选格式网址的所有网页仍将按照原格式保留在索引中。

    要指定您的首选域,请按以下步骤操作:

    1.在网站站长工具首页上,点击所需的网站。
    2.在网站配置下,点击设置。
    3.在首选域部分中,选择所需选项。
    您可能需要重新验证您网站的所有权。由于设置首选域会同时影响抓取和编制索引,因此,我们需要确保您具有这两种格式的域。通常,这两种格式的域都会指向同一物理位置,但并不总是如此。一般来说,您验证过其中一个版本的域后,我们就可以使用原始的验证方法轻松验证另一版本的域。但是,如果您已将验证文件、元标记或 DNS 记录删除,则需要重复验证步骤。

    注意:设置完首选域后,您需要使用 301 重定向对非首选域的访问进行重定向,这样,其他搜索引擎和访问者就能了解您首选的域版本了。

  • wordpress嵌入视频

    中文视频网站视频自动嵌入 – 允许您以在文章添加视频播放页面网址的方式,简单地插入优酷网、56.com 和土豆网视频。默认开启。
    当前支持的站点、样例 URL 和参数如下:

    •优酷网 – 如 http://v.youku.com/v_show/id_XMjQxMjc1MDIw.html – 宽 480px,高 400px
    •56.com – 如 http://www.56.com/u21/v_NTgxMzE4NDI.html – 宽 480px,高 395px
    •土豆网 – 如 http://www.tudou.com/programs/view/o9tsm_CL5As/ – 宽 480px,高 400px
    您只需在文章另起一段,写入形如上述的播放页面链接。在文章显示时,WordPress 将自动替换这些链接为相应视频播放器。需要您特别注意的是,请不要为 URL 设置超链接,且该 URL 本身必须独立成段。

  • destination host unreachable

    路由表中连到达目标的路由都没有,会出现“Destination Host Unreachable”。
    主要在以下三种情形出现:
    1、 局域网使用DHCP动态分配IP地址时,DHCP出现故障或者失败
    DHCP失效或者出现故障时,客户机无法分配到IP地址,系统只有自设IP地址,而IP地址的自动设置往往会分配到不同的子网,因此会出现“Destination Host Unreachable”。

    2、 子网掩码设置错误
    这种情况一般比较少见,如果子网掩码不是系统自动生成的,则在计算时一定细心。

    3、 路由表返回错误信息
    这种情况一般是在“Destination Host Unreachable”前面加上IP地址,说明本地计算机与外部网络连接没有问题,但与某台主机连接存在问题。

    “Destination Net Unreachable”这个信息表示对方主机不存在或者没有跟对方建立连接。这里要说明一下”destination host unreachable”和”time out”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其它原因不可到达,这时候会出现”time out”,如果路由表中连到达目标的路由都没有,那就会出现”destination host unreachable”。

    把icmp安全策略关闭
    tcp/IP属性——高级——选项——IP安全机制属性——选择”不使用IPSEC”确定,OK了,一切正常

    ping 时出request time out 和destination is unreachable

    request time out 是指icmp包发出后,长时间没有回应,所以会产生request time out。一般是ping 了一台网络中不存在的主机。
    destination is unreachable 或 destination port unreachable 一般是收到了目标主机或中间路由器回应的端口或目标主机不可达icmp包。
    如你ping一台用iptables封了icmp包的主机且用了-j REJECT 就会出现destination port unreachable 的信息,这是目标主机给的回应。
    两者主要的区别是看目标主机或中间路由器是不是给了icmp不可达的回应。 向目标主机发ip数据报,如果协议项是错的,或协议项不可用。目标将返回destination is unreachable的icmp报文。如果有防火墙,可能过滤掉ip数据报,收不到回应报文。如果设置ip头部协议内容为一特别大的数字(至少在今天还没有被使用),应该主机一定会返回unreachable的icmp报文。否则一定有防火墙。也可以变化ip中的协议项来探测主机使用了哪些协议,如果没使用则返回unreachable的icmp报文。

  • wordpress无法上传附件的解决办法

    很多朋友,因为对WordPress主机认识有一个不断变化的过程,所以会经常更换主机,几次转换之后,还有可能出现的一个问题是:博客无法上传附件。

    出现问题的原因:不管是哪种主机,在帐户创建的时候,那Wopus来说,帐户的绝对路径开始一定是:/home/wopus/xxxx。这里wopus就是登陆主机控制面板的用户名,如果把博客放在public_html根目录,那附件上传的绝对路径是:/home/wopus/public_html/wp-content/uploads/month/xxx。

    由于要换空间,新开空间可能会使用不同的用户名,比如新的空间使用qiuzhang这个用户名,那么,在程序上传完毕,数据库也导入完成之后,附件的上传绝对路径还是没有变,还是:/home/wopus/public_html/wp-content/uploads/month/xxx;但正确的上传绝对路径应该是:/home/qiuzhang/public_html/wp-content/uploads/month/xxx。

    于是,我们只要在wp_options数据表的第二页找到:upload_path,点击最前面的修改,把地址修改成正确的绝对地址,然后保存,这样,再上传,问题就解决了。

  • WordPress编辑器全攻略

    为编辑器添加新的HTML标签

    默认情况下WordPress编辑器不允许不符合XHTML 1.0标准的HTML标签出现在编辑器里。例如,iframe就会被编辑器过滤掉。如果你需要在文章或者页面里插入iframe,结果会让你很沮丧。

    下面的代码强制编辑器接受更多HTML标签。你只需要把它们粘贴到主题的functions.php文件里然后保存就可以了。

    function fb_change_mce_options($initArray) {     
    $ext = ‘pre[id|name|class|style],iframe[align|longdesc|
    name|width|height|frameborder|scrolling|marginheight|
    marginwidth|src]’;       
    if ( isset( $initArray[‘extended_valid_elements’] ) ) {         
    $initArray[‘extended_valid_elements’] .= ‘,’ . $ext;     
    } else {         
    $initArray[‘extended_valid_elements’] = $ext;     
    }       
    return $initArray; 

    add_filter(‘tiny_mce_before_init’, ‘fb_change_mce_options’);
    将HTML编辑器设为默认编辑器

    惯于写代码的站长们更习惯编写HTML,所以他们不太喜欢WordPress的可视化编辑器,而且在所见即所得编辑器里更可能生成无效代码或者混乱的代码。

    那么要怎样把HTML编辑器设为WordPress的默认编辑器呢?打开主题的functions.php文件,加入以下代码:

    add_filter(‘wp_default_editor’, create_function(”, ‘return “html”;’));  
    在编辑器里添加默认内容

    在functions.php文件里添加以下代码:

    function insertFootNote($content) {
            if(!is_feed() && !is_home()) {
                    $content.= “<div class=’subscribe’>”;
                    $content.= “<h4>标题</h4>”;
                    $content.= “<p>显示的正文内容<a href=’http://指向的链接’>链接文字</a></p>”;
                    $content.= “</div>”;
            }
            return $content;
    }
    add_filter (‘the_content’, ‘insertFootNote’);
     
    事实上这些内容并不会显示在编辑器里,但你每次发布新文章时,文章结尾会出现你事先设定的内容。

    显示Tiny MCE中的隐藏按钮

    默认情况下,WordPress的TinyMCE编辑器中只给出了最常用的编辑按钮,比如加粗、斜体、标题等。如果你需要更多文字格式选项,可以在functions.php文件里加上下面的代码,让隐藏的按钮统统显示出来:

    function enable_more_buttons($buttons) {   
    $buttons[] = ‘hr’;   
    $buttons[] = ‘fontselect’;   
    $buttons[] = ‘sup’;     

    // etc, etc…     

    return $buttons; 

    add_filter(“mce_buttons”, “enable_more_buttons”);
    可用的编辑按钮包括:加粗、斜体、下划线、删除线、左对齐、居中、右对齐、两端对齐、无序列表、编号列表、减少缩进、缩进、剪切、复制、粘贴、撤销、重做、插入超链接、取消超链接、插入图片、清除、帮助、代码、水平线、删除格式、格式选择、字体选择、字号选择、样式选择、上标、下标、前景色、背景色、特殊符号、视觉辅助、锚文本、新建文本与分隔符。

    添加本地语言的拼写检查

    WordPress默认配置中有一个英文拼写检查工具,那么有没有办法对其它语言进行拼写检查呢?

    同样可以在functions.php里加上下面的代码(以中文为例)以实现拼写检查功能:

    function fb_mce_external_languages($initArray){     
    $initArray[‘spellchecker_languages’] = ‘+Chinese=zh,
    English=en’;       

    return $initArray; 

    add_filter(‘tiny_mce_before_init’, ‘fb_mce_external_languages’);
    虽说WordPress内置的TinyMCE编辑器就是一款所见即所得(WYSIWYG)编辑器,然而我们在后台编辑好的文章和在前台看到的效果,总不十分一致。要让后台编辑结果和前台显示效果实现更高的匹配度,其实也不难。

    给WordPress编辑器添加自定义按钮

    在WordPress编辑器里添加各种按钮,可以给编辑器增加更多功能,让你更方便地编辑文章。

    假设我们需要在HTML编辑器里加上一个Google AdSense广告的插入按钮。首先需要编写一段关于Google AdSense的短代码并加入到funtions.php文件里。下面是一个Google AdSense段代码的示例:

    function do_adsense() {
      $adsense = “你的AdSense代码”;
      return $adsense;
    }
    add_shortcode(‘adsense’, ‘do_adsense’);  
    完成上面的代码后,我们需要在wp-includes/js文件夹下的quicktags.js文件里加入一段代码。不过操作顺序应该是,在quicktags.dev.js文件里加入代码:

    edButtons[edButtons.length] =
    new edButton(‘ed_adsense’
    ,’adsense’
    ,’[adsense]’
    ,’’
    ,’adsense’
    );
    然后将quicktags.dev.js更名为quicktags.js,替换原有的quicktags.js文件。(为防止意外情况发生,请事先备份这两个文件)

    保存并刷新后台的编辑界面,你就会看到新的编辑按钮了,当然你也可以稍微改动其中的代码来添加其他按钮。

  • MySQL十大优化技巧

    1.优化你的MySQL查询缓存

    在MySQL服务器上进行查询,可以启用高速查询缓存。让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一。当同一个查询被执行多次时,如果结果是从缓存中提取,那是相当快的。

    但主要的问题是,它是那么容易被隐藏起来以至于我们大多数程序员会忽略它。在有些处理任务中,我们实际上是可以阻止查询缓存工作的。

    // query cache does NOT work    
    $r = mysql_query(“SELECT username FROM user WHERE signup_date >= CURDATE()”);    
       
    // query cache works!    
    $today = date(“Y-m-d”);    
    $r = mysql_query(“SELECT username FROM user WHERE signup_date >= ‘$today’”);   
    // query cache does NOT work
    $r = mysql_query(“SELECT username FROM user WHERE signup_date >= CURDATE()”); 
    // query cache works! 
    $today = date(“Y-m-d”); 
    $r = mysql_query(“SELECT username FROM user WHERE signup_date >= ‘$today’”);

    2.用EXPLAIN使你的SELECT查询更加清晰

    使用EXPLAIN关键字是另一个MySQL优化技巧,可以让你了解MySQL正在进行什么样的查询操作,这可以帮助你发现瓶颈的所在,并显示出查询或表结构在哪里出了问题。

    EXPLAIN查询的结果,可以告诉你那些索引正在被引用,表是如何被扫描和排序的等等。

    实现一个SELECT查询(最好是比较复杂的一个,带joins方式的),在里面添加上你的关键词解释,在这里我们可以使用phpMyAdmin,他会告诉你表中的结果。举例来说,假如当我在执行joins时,正忘记往一个索引中添加列,EXPLAIN能帮助我找到问题的所在。

    添加索引到group_id field后

    3.利用LIMIT 1取得唯一行

    有时,当你要查询一张表是,你知道自己只需要看一行。你可能会去的一条十分独特的记录,或者只是刚好检查了任何存在的记录数,他们都满足了你的WHERE子句。

    在这种情况下,增加一个LIMIT 1会令你的查询更加有效。这样数据库引擎发现只有1后将停止扫描,而不是去扫描整个表或索引。、

    // do I have any users from Alabama?    
    // what NOT to do:    
    $r = mysql_query(“SELECT * FROM user WHERE state = ‘Alabama’”);    
    if (mysql_num_rows($r) > 0) {    
        // …    
    }      
    // much better:    
    $r = mysql_query(“SELECT 1 FROM user WHERE state = ‘Alabama’ LIMIT 1”);    
    if (mysql_num_rows($r) > 0) {    
        // …    
    }  

    4. 索引中的检索字段

    索引不仅是主键或唯一键。如果你想搜索表中的任何列,你应该一直指向索引。

    5.保证连接的索引是相同的类型

    如果应用程序中包含多个连接查询,你需要确保你链接的列在两边的表上都被索引。这会影响MySQL如何优化内部联接操作。

    此外,加入的列,必须是同一类型。例如,你加入一个DECIMAL列,而同时加入另一个表中的int列,MySQL将无法使用其中至少一个指标。即使字符编码必须同为字符串类型。

    // looking for companies in my state    
    $r = mysql_query(“SELECT company_name FROM users   
        LEFT JOIN companies ON (users.state = companies.state)   
        WHERE users.id = $user_id”);    
    // both state columns should be indexed    
    // and they both should be the same type and character encoding    
    // or MySQL might do full table scans

    6.不要使用BY RAND()命令

    这是一个令很多新手程序员会掉进去的陷阱。你可能不知不觉中制造了一个可怕的平静。这个陷阱在你是用BY RAND()命令时就开始创建了。

    如果您真的需要随机显示你的结果,有很多更好的途径去实现。诚然这需要写更多的代码,但是能避免性能瓶颈的出现。问题在于,MySQL可能会为表中每一个独立的行执行BY RAND()命令(这会消耗处理器的处理能力),然后给你仅仅返回一行。

    // what NOT to do:    
    $r = mysql_query(“SELECT username FROM user ORDER BY RAND() LIMIT 1”);    
    // much better:    
    $r = mysql_query(“SELECT count(*) FROM user”);    
    $d = mysql_fetch_row($r);    
    $rand = mt_rand(0,$d[0] – 1);    
    $r = mysql_query(“SELECT username FROM user LIMIT $rand, 1”);   

    7.尽量避免SELECT *命令

    从表中读取越多的数据,查询会变得更慢。他增加了磁盘需要操作的时间,还是在数据库服务器与WEB服务器是独立分开的情况下。你将会经历非常漫长的网络延迟,仅仅是因为数据不必要的在服务器之间传输。

    始终指定你需要的列,这是一个非常良好的习惯。

    // not preferred    
    $r = mysql_query(“SELECT * FROM user WHERE user_id = 1”);    
    $d = mysql_fetch_assoc($r);    
    echo “Welcome {$d[‘username’]}”;    
    // better:    
    $r = mysql_query(“SELECT username FROM user WHERE user_id = 1”);    
    $d = mysql_fetch_assoc($r);    
    echo “Welcome {$d[‘username’]}”;     
    // the differences are more significant with bigger result sets  

    8.从PROCEDURE ANALYSE()中获得建议

    PROCEDURE ANALYSE()可让MySQL的柱结构分析和表中的实际数据来给你一些建议。如果你的表中已经存在实际数据了,能为你的重大决策服务。

    9.准备好的语句

    准备好的语句,可以从性能优化和安全两方面对大家有所帮助。

    准备好的语句在过滤已经绑定的变量默认情况下,能给应用程序以有效的保护,防止SQL注入攻击。当然你也可以手动过滤,不过由于大多数程序员健忘的性格,很难达到效果。

    // create a prepared statement    
    if ($stmt = $mysqli->prepare(“SELECT username FROM user WHERE state=?”)) {     
        // bind parameters    
        $stmt->bind_param(“s”, $state);     
        // execute    
        $stmt->execute();     
        // bind result variables    
        $stmt->bind_result($username);      
       // fetch value    
        $stmt->fetch();     
        printf(“%s is from %s\n”, $username, $state);      
        $stmt->close();    
    }  

    10.将IP地址存储为无符号整型

    许多程序员在创建一个VARCHAR(15)时并没有意识到他们可以将IP地址以整数形式来存储。当你有一个INT类型时,你只占用4个字节的空间,这是一个固定大小的领域。

    你必须确定你所操作的列是一个UNSIGNED INT类型的,因为IP地址将使用32位unsigned integer。

    $r = “UPDATE users SET ip = INET_ATON(‘{$_SERVER[‘REMOTE_ADDR’]}’) WHERE user_id = $user_id”;

  • 更改 linux 命令行提示符

    编辑/etc/bashrc 此文件
    修改下面这一行中 PS1=”[\u@\h \W]\\$ ” 这一段

     [ “$PS1” = “\\s-\\v\\\$ ” ] && PS1=”[\u@\h \W]\\$ ”

    具体解释如下:

    \u – 当前用户名( =$LOGNAME)
    \h – 运行shell的计算机名(hostname)
    \H – 完整的计算机名
    \W – 当前的工作目录名
    \w – 当前工作目录全路径名
    \$ – 对于普通用户显示$,对于超级用户显示#
    \! – 当前命令的历史编号
    \# – 当前命令编号(在当前的shell下运行的命令)
    \d – 当前日期
    \t – 当前时间(24小时制)
    \T – 当前时间(12小时制 ,bash 2.0有效
    \@ – 当前时间(AM/PM格式),bash 2.0 有效
    \s – shell的类型
    \a – 告警的声音
    \j – 用户的任务数
    \n – 新行
    \\ – 反斜杠
    \[ – 不可打印字符开始标志
    \] – 不可打印字符结束标志
    \nnn – ASCII字符对应八进制数值
    $(date) – date命令(输出当前日期)或者其它的命令输出

  • WordPress的30个基本操作

    WordPress基础

    1. 新增一个【关于我】的网志分页。

    2.可以找 找一个优秀的付费主题,例如 WooThemes 或 Themeforest。

    3. 为你自己注册一个 Gravatar.com 帐号并上传头像。这有助于你提升品牌形象。

    4. 变更预设的Admin 密码,及妥善管理其他作者帐号。

    5. 更改网志描述。

    6. 删除预设的链结。

    7. 建立一个「联系」页面,让读者能够与你取得联系。

    8. 加入网站统计代码,它有助于你掌握网站情形。你可以使用Google分析、StatCounter或是任何你想用的服务。对我来说,StatCounter是相当可信赖、速度优异的服务。

    (备註:或者你可以安装WordPress.com Stats统计插件,它是个很方便的选择。)

    9. 删除预设文章「Hello World」和预设的回复。

    10. 设计一个Favicon并且将它挂上。

    11. 加入隐私政策或是免责声明页面。

    12. 注册FeedBurner。有很多方式可以提升博客人气,最好提供RSS Feed。

    13. 自订404错误页面,将热门文章、热门讨论等等内容加入404页面,让你的访客能有更多选择。错误页面不该是条死路,至少不要让访客轻易离开。

    WordPress设定

    14. 设定固定链接。在你开始写作或者发布文章以前,最好为文章编辑固定网址。在设定 → 固定网址里,我使用的形式为 /%postname%/ 。

    15. 开启阶层式回复功能。在设定 → 评论 → 其他评论选项,并将层次设定为 5 。

    16. 在站长工具新增你的网站。Google网站管理员工具提供许多功能,可以让你加入网站地图,使搜索引擎能够更快索引你的网站。并提供统计讯息及错误纪录,值得一用。

    17. 再次检查你的域名名称。如果你要做任何变更,最好当机立断,马上去做。

    WordPress插件

    18. Akismet – WordPress预设的插件。在WordPress.com註册帐号并取得API金钥,启用后就能有效阻挡垃圾留言。

    19. Digg Digg – 这是一个集合许多社交网路按钮的插件,其中将 Digg, Reddit, Dzone, Yahoo Buzz, TweetMeme(Twitter), Facebook, Polladium, StumbleUpon, Delicious, Sphinn, Post Comments, Google Buzz, Designbump, Designfloat 等等整合。

    20. W3 Total Cache – 提升博客速度的第一步,我想这不会太困难,与安装一般插件差不多。

    21. Subscribe to Comments – 订阅评论是一个相当强大的功能,让评论者能够在有新评论时收到电子邮件通知。这个插件包含完整的订阅管理器,留言者能够取消订阅、停止通知,甚至变更他们的电子邮件地址。

    22. CommentLuv – 这个插件能访问留言者的网站,显示他们网誌的最新文章、tweets或digg.

    23. All-In-One-SEO – 安装All-In-One-SEO插件,设定你的日志标题、日志描述以及日志关键字。

    24. Nofollow Case by Case – 什么都不用做,插件会自动将留言的nofollow标签移除。

    25. Google XML Sitemap – Google Sitemap插件能够在你发佈文章时自动为网誌产生网站地图。

    26. WordPress Related Posts – 如果读者喜欢你的文章,你可以做的是把更多的文章摆在他们眼前,让他们能不断从你的日志里挖掘内容。

    27. Login Lockdown – 安装此插件以增强日志安全性。

    28. WP-DBManager – 加入此插件,建立备份资料库。

    WordPress SEO

    29. 使用你的关键字词组来建立分类。

    30. 新增日志标题和描述,将你的主要关键字放在设定里。

  • linux sed命令详解

    1. Sed简介
    sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍的是Gnu版本的Sed 3.02。
    2. 定址
    可以通过定址来定位你所希望编辑的行,该地址用数字构成,用逗号分隔的两个行数表示以这两行为起止的行的范围(包括行数表示的那两行)。如1,3表示1,2,3行,美元符号($)表示最后一行。范围可以通过数据,正则表达式或者二者结合的方式确定 。

    3. Sed命令
    调用sed命令有两种形式:
    *
    sed [options] ‘command’ file(s)
    *
    sed [options] -f scriptfile file(s)
    a\
    在当前行后面加入一行文本。
    b lable
    分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。
    c\
    用新的文本改变本行的文本。
    d
    从模板块(Pattern space)位置删除行。
    D
    删除模板块的第一行。
    i\
    在当前行上面插入文本。
    h
    拷贝模板块的内容到内存中的缓冲区。
    H
    追加模板块的内容到内存中的缓冲区
    g
    获得内存缓冲区的内容,并替代当前模板块中的文本。
    G
    获得内存缓冲区的内容,并追加到当前模板块文本的后面。
    l
    列表不能打印字符的清单。
    n
    读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
    N
    追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。
    p
    打印模板块的行。
    P(大写)
    打印模板块的第一行。
    q
    退出Sed。
    r file
    从file中读行。
    t label
    if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
    T label
    错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
    w file
    写并追加模板块到file末尾。
    W file
    写并追加模板块的第一行到file末尾。
    !
    表示后面的命令对所有没有被选定的行发生作用。
    s/re/string
    用string替换正则表达式re。
    =
    打印当前行号码。
    #
    把注释扩展到下一个换行符以前。
    以下的是替换标记
    *
    g表示行内全面替换。
    *
    p表示打印行。
    *
    w表示把行写入一个文件。
    *
    x表示互换模板块中的文本和缓冲区中的文本。
    *
    y表示把一个字符翻译为另外的字符(但是不用于正则表达式)

    4. 选项
    -e command, –expression=command
    允许多台编辑。
    -h, –help
    打印帮助,并显示bug列表的地址。
    -n, –quiet, –silent

    取消默认输出。
    -f, –filer=script-file
    引导sed脚本文件名。
    -V, –version
    打印版本和版权信息。 (更多…)

  • apache configure选项

    `configure’ configures this package to adapt to many kinds of systems.

    Usage: ./configure [OPTION]… [VAR=VALUE]…

    To assign environment variables (e.g., CC, CFLAGS…), specify them as
    VAR=VALUE.  See below for descriptions of some of the useful variables.

    Defaults for the options are specified in brackets.

    Configuration:
      -h, –help              display this help and exit
          –help=short        display options specific to this package
          –help=recursive    display the short help of all the included packages
      -V, –version           display version information and exit
      -q, –quiet, –silent   do not print `checking…’ messages
          –cache-file=FILE   cache test results in FILE [disabled]
      -C, –config-cache      alias for `–cache-file=config.cache’
      -n, –no-create         do not create output files
          –srcdir=DIR        find the sources in DIR [configure dir or `..’]

    Installation directories:
      –prefix=PREFIX         install architecture-independent files in PREFIX
                              [/usr/local/apache2]
      –exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                              [PREFIX]

    By default, `make install’ will install all the files in
    `/usr/local/apache2/bin’, `/usr/local/apache2/lib’ etc.  You can specify
    an installation prefix other than `/usr/local/apache2′ using `–prefix’,
    for instance `–prefix=$HOME’.

    For better control, use the options below.

    Fine tuning of the installation directories:
      –bindir=DIR            user executables [EPREFIX/bin]
      –sbindir=DIR           system admin executables [EPREFIX/sbin]
      –libexecdir=DIR        program executables [EPREFIX/libexec]
      –sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
      –sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
      –localstatedir=DIR     modifiable single-machine data [PREFIX/var]
      –libdir=DIR            object code libraries [EPREFIX/lib]
      –includedir=DIR        C header files [PREFIX/include]
      –oldincludedir=DIR     C header files for non-gcc [/usr/include]
      –datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
      –datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
      –infodir=DIR           info documentation [DATAROOTDIR/info]
      –localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
      –mandir=DIR            man documentation [DATAROOTDIR/man]
      –docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
      –htmldir=DIR           html documentation [DOCDIR]
      –dvidir=DIR            dvi documentation [DOCDIR]
      –pdfdir=DIR            pdf documentation [DOCDIR]
      –psdir=DIR             ps documentation [DOCDIR]

    System types:
      –build=BUILD     configure for building on BUILD [guessed]
      –host=HOST       cross-compile to build programs to run on HOST [BUILD]
      –target=TARGET   configure for building compilers for TARGET [HOST]

    Optional Features:
      –disable-option-checking  ignore unrecognized –enable/–with options
      –disable-FEATURE       do not include FEATURE (same as –enable-FEATURE=no)
      –enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
      –enable-layout=LAYOUT
      –enable-v4-mapped      Allow IPv6 sockets to handle IPv4 connections
      –enable-exception-hook Enable fatal exception hook
      –enable-maintainer-mode
                              Turn on debugging and compile time warnings
      –enable-pie            Build httpd as a Position Independent Executable
      –enable-modules=MODULE-LIST
                              Space-separated list of modules to enable | “all” |
                              “most”
      –enable-mods-shared=MODULE-LIST
                              Space-separated list of shared modules to enable |
                              “all” | “most”
      –disable-authn-file    file-based authentication control
      –enable-authn-dbm      DBM-based authentication control
      –enable-authn-anon     anonymous user authentication control
      –enable-authn-dbd      SQL-based authentication control
      –disable-authn-default authentication backstopper
      –enable-authn-alias    auth provider alias
      –disable-authz-host    host-based authorization control
      –disable-authz-groupfile
                              ‘require group’ authorization control
      –disable-authz-user    ‘require user’ authorization control
      –enable-authz-dbm      DBM-based authorization control
      –enable-authz-owner    ‘require file-owner’ authorization control
      –enable-authnz-ldap    LDAP based authentication
      –disable-authz-default authorization control backstopper
      –disable-auth-basic    basic authentication
      –enable-auth-digest    RFC2617 Digest authentication
      –enable-isapi          isapi extension support
      –enable-file-cache     File cache
      –enable-cache          dynamic file caching
      –enable-disk-cache     disk caching module
      –enable-mem-cache      memory caching module
      –enable-dbd            Apache DBD Framework
      –enable-bucketeer      buckets manipulation filter
      –enable-dumpio         I/O dump filter
      –enable-echo           ECHO server
      –enable-example        example and demo module
      –enable-case-filter    example uppercase conversion filter
      –enable-case-filter-in example uppercase conversion input filter
      –enable-reqtimeout     Limit time waiting for request from client
      –enable-ext-filter     external filter module
      –disable-include       Server Side Includes
      –disable-filter        Smart Filtering
      –enable-substitute     response content rewrite-like filtering
      –disable-charset-lite  character set translation
      –enable-charset-lite   character set translation
      –enable-deflate        Deflate transfer encoding support
      –enable-ldap           LDAP caching and connection pooling services
      –disable-log-config    logging configuration
      –enable-log-forensic   forensic logging
      –enable-logio          input and output logging
      –disable-env           clearing/setting of ENV vars
      –enable-mime-magic     automagically determining MIME type
      –enable-cern-meta      CERN-type meta files
      –enable-expires        Expires header control
      –enable-headers        HTTP header control
      –enable-ident          RFC 1413 identity check
      –enable-usertrack      user-session tracking
      –enable-unique-id      per-request unique ids
      –disable-setenvif      basing ENV vars on headers
      –disable-version       determining httpd version in config files
      –enable-proxy          Apache proxy module
      –enable-proxy-connect  Apache proxy CONNECT module
      –enable-proxy-ftp      Apache proxy FTP module
      –enable-proxy-http     Apache proxy HTTP module
      –enable-proxy-scgi     Apache proxy SCGI module
      –enable-proxy-ajp      Apache proxy AJP module
      –enable-proxy-balancer Apache proxy BALANCER module
      –enable-ssl            SSL/TLS support (mod_ssl)
      –enable-distcache      Select distcache support in mod_ssl
      –enable-optional-hook-export
                              example optional hook exporter
      –enable-optional-hook-import
                              example optional hook importer
      –enable-optional-fn-import
                              example optional function importer
      –enable-optional-fn-export
                              example optional function exporter
      –enable-static-support Build a statically linked version of the support
                              binaries
      –enable-static-htpasswd
                              Build a statically linked version of htpasswd
      –enable-static-htdigest
                              Build a statically linked version of htdigest
      –enable-static-rotatelogs
                              Build a statically linked version of rotatelogs
      –enable-static-logresolve
                              Build a statically linked version of logresolve
      –enable-static-htdbm   Build a statically linked version of htdbm
      –enable-static-ab      Build a statically linked version of ab
      –enable-static-checkgid
                              Build a statically linked version of checkgid
      –enable-static-htcacheclean
                              Build a statically linked version of htcacheclean
      –enable-static-httxt2dbm
                              Build a statically linked version of httxt2dbm
      –enable-http           HTTP protocol handling
      –disable-mime          mapping of file-extension to MIME
      –enable-dav            WebDAV protocol handling
      –disable-status        process/thread monitoring
      –disable-autoindex     directory listing
      –disable-asis          as-is filetypes
      –enable-info           server information
      –enable-suexec         set uid and gid for spawned processes
      –disable-cgid          CGI scripts
      –enable-cgi            CGI scripts
      –disable-cgi           CGI scripts
      –enable-cgid           CGI scripts
      –enable-dav-fs         DAV provider for the filesystem
      –enable-dav-lock       DAV provider for generic locking
      –enable-vhost-alias    mass virtual hosting module
      –disable-negotiation   content negotiation
      –disable-dir           directory request handling
      –enable-imagemap       server-side imagemaps
      –disable-actions       Action triggering on requests
      –enable-speling        correct common URL misspellings
      –disable-userdir       mapping of requests to user-specific directories
      –disable-alias         mapping of requests to different filesystem parts
      –enable-rewrite        rule based URL manipulation
      –enable-so             DSO capability

    Optional Packages:
      –with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
      –without-PACKAGE       do not use PACKAGE (same as –with-PACKAGE=no)
      –with-included-apr     Use bundled copies of APR/APR-Util
      –with-apr=PATH         prefix for installed APR or the full path to
                                 apr-config
      –with-apr-util=PATH    prefix for installed APU or the full path to
                                 apu-config
      –with-pcre=PATH        Use external PCRE library
      –with-port=PORT        Port on which to listen (default is 80)
      –with-sslport=SSLPORT  Port on which to securelisten (default is 443)
      –with-z=DIR            use a specific zlib library
      –with-sslc=DIR         RSA SSL-C SSL/TLS toolkit
      –with-ssl=DIR          OpenSSL SSL/TLS toolkit
      –with-mpm=MPM          Choose the process model for Apache to use.
                              MPM={beos|event|worker|prefork|mpmt_os2}
      –with-module=module-type:module-file
                              Enable module-file in the modules/<module-type>
                              directory.
      –with-program-name     alternate executable name
      –with-suexec-bin       Path to suexec binary
      –with-suexec-caller    User allowed to call SuExec
      –with-suexec-userdir   User subdirectory
      –with-suexec-docroot   SuExec root directory
      –with-suexec-uidmin    Minimal allowed UID
      –with-suexec-gidmin    Minimal allowed GID
      –with-suexec-logfile   Set the logfile
      –with-suexec-safepath  Set the safepath
      –with-suexec-umask     umask for suexec’d process

    Some influential environment variables:
      CC          C compiler command
      CFLAGS      C compiler flags
      LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
                  nonstandard directory <lib dir>
      LIBS        libraries to pass to the linker, e.g. -l<library>
      CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
                  you have headers in a nonstandard directory <include dir>
      CPP         C preprocessor

    Use these variables to override the choices made by `configure’ or to help
    it to find libraries and programs with nonstandard names/locations.

    (更多…)

  • Linux VPS一键安装包集合

    LNMP一键安装包
    LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat、Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)生产环境的Shell程序。
    支持系统:CentOS/Debian/Ubuntu
    安装方法:猛击这里

    LNAMP一键安装包
    LNAMP 是指由 Linux(CentOS),Nginx,Apache,Mysql,Php 为主,其他诸如Pure-ftpd,Jailkit为辅的一套生产环境安装包.所有操作均集成在一个Linux Shell脚本文件中,管理员可方便的进行安装,卸载,增设用户虚拟主机(子域),删除用户虚拟主机(子域)等操作.最大限度方便系统管理员,同时不会影 响后续其他软件的安装兼容(有限)。
    支持系统:Linux CentOS 5 (32bit/64bit)
    安装方法:猛击这里

    PPTP VPN一键安装包

    PPTP是最常用的VPN软件
    支持系统:CentOS 5 32bit/64bit
    OpenVZ VPS要启用TUN/TAP
    安装方法:猛击这里

    CentOS OpenVPN一键安装包
    OpenVPN是更安全的开源VPN软件
    支持系统:CentOS
    安装方法:猛击这里

    LLsMP一键安装包
    LLsMP 是 Linux + Litespeed + MySQL + PHP 的一鍵安裝包
    支持系统:CentOS/Debian
    安装方法:猛击这里

    Kloxo一键安装包
    Kloxo是一个优秀的Web控制面板,有商业版本和免费版本。免费版本的Kloxo允许绑定40个域名,对普通客户来讲40个域名也足够用了。
    支持系统:CentOS 5
    安装方法:猛击这里

  • nginx下防止被别人绑定域名

    两种解决方案:
    nginx 的默认虚拟主机在用户通过IP访问 ,或者通过未设置的域名 访问(比如有人把他自己的域名指向了你的ip)的时候生效。
    比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.
    目前国内很多机房都要求网站主关闭空主机头,防止未北岸的域名指向过来造成麻烦。
    就可以这样设置:
    1.直接返回500
    server {
    listen 80 default;
    return 500;
    }
    2. 也可以把这些流量 收集起来,导入到自己的网站,只要做以下跳转设置就可以:
    server {
    listen 80 default;
    rewrite ^(.*) http://pzg.me permanent;
    }
    两种解决方案:nginx 的默认虚拟主机在用户通过IP访问 ,或者通过未设置的域名 访问(比如有人把他自己的域名指向了你的ip)的时候生效。
    比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.   目前国内很多机房都要求网站主关闭空主机头,防止未北岸的域名指向过来造成麻烦。
    就可以这样设置:   1.直接返回500server {listen 80 default;return 500;}

    2. 也可以把这些流量 收集起来,导入到自己的网站,只要做以下跳转设置就可以:
    server {listen 80 default;rewrite ^(.*) http://pzg.me permanent;}