分类: 沉思录

  • 这才是真正的-北京特产

    忽见装13的文章一篇:《谁稀罕什么帝都,我只是回不去了》(想看的童鞋自己搜索),一向不喜欢这种带有浓重酸腐气息的很犹豫的文艺青年。

  • WordPress3+的自定义内容类型功能详解

    WordPress3+进一步完善了自定义内容类型功能,也算是向CMS迈进了一大步。网络上关于这个功能的介绍少之又少,来来回回就那么几篇转来转去的,那我就来总结一下吧。

    实现方式一:辅助插件

    这里的插件只是辅助你利用这个功能的插件,并不是传统意义上的装上就完事ok的插件,关于插件的介绍大家可参见 wordpress.la的文章《如何在WordPress 3.0中使用自定义内容类型》 我就不多做介绍了

    实现方式二:functions.php中添加自定义代码

    对于完美主义者或者不喜欢插来插去的童鞋可以参考这个方法,废话不多说直接上例子;
    首先打开你的主题的functions.php文件,然后添加代码如下

    [php]
    add_action( ‘init’, ‘create_events’ );
    function create_events() {
    $labels = array(
    ‘name’ => _x(‘Events’, ‘post type general name’),
    ‘singular_name’ => _x(‘Event’, ‘post type singular name’),
    ‘add_new’ => _x(‘Add New’, ‘Event’),
    ‘add_new_item’ => __(‘Add New Event’),
    ‘edit_item’ => __(‘Edit Event’),
    ‘new_item’ => __(‘New Event’),
    ‘view_item’ => __(‘View Event’),
    ‘search_items’ => __(‘Search Events’),
    ‘not_found’ => __(‘No Events found’),
    ‘not_found_in_trash’ => __(‘No Events found in Trash’),
    ‘parent_item_colon’ => ”
    );

    $supports = array(‘title’, ‘editor’, ‘custom-fields’, ‘revisions’, ‘excerpt’);

    register_post_type( ‘event’,
    array(
    ‘labels’ => $labels,
    ‘public’ => true,
    ‘supports’ => $supports
    )
    );
    }
    [/php]

    参数详解:

    add_action告诉wordpress初始化时调用函数create_events

    $label数组告诉wordpress如何显示这个文章类型的相关信息

    $supports数组告诉wordpress这个文章类型可以支持什么(比如文章摘要excerpt)

    register_post_type就是在wordpress注册这个新的文章类型,这个函数有很多选项可用,具体可以参阅相关文章。

    一旦我们把代码添加到function.php后,我们可以在后台管理页面看到如下页面:

    wordpress-自定义文章类型

    点击添加新事件(Add New)你可以像发表一般文章一样来添加新的事情,如下图:

    wordpress-自定义文章类型

    显示自定义内容类型的文章

    为了显示自定义内容类型的文章,请添加下面的代码到循环(loop)中。将“name”用你的内容类型名称替换。 注意: 你不需要在index.php文件中添加自定义的内容类型。你可以创建一个自定义WordPress页面并循环(Loop)里运行下面的查询。
    query_posts( 'post_type=name');
    要显示来自多个内容类型下的文章,将上面的代码改成下面这样,并记得将“movie”改成自定义内容类型的名称。
    query_posts(array('post_type' => array('post', 'movies')));
    使用上面的代码将会显示所有来自普通的内容类型的文章以及其他自定义内容类型下的内容。

  • 服务器架设:Debian/Ubuntu搭建LAMP教程

    本文是在独立服务器或VPS中使用Debian/Ubuntu操作系统搭建LAMP完整教程,适合初学者,本文会保持更新。

    第一部分

    LAMP 是Linux、Apache、MySQL、PHP的首字母缩写,也就是在一台Linux服务器上安装带有PHP和Mysql支持的Apache网站服务器。

    UAMP 是Ubuntu Linux、Apache、MySQL、PHP的首字母缩写,是指在一台Ubuntu Linux服务器上安装带有MySQL和PHP支持的Apache网站服务器。

    1. 说明

    本文以BurstNET VPS主机为例,操作系统是Debian 5 / Ubuntu 10.04,独立服务器操作方法与VPS相同。域名请做好DNS指向。

    安装前,用这个命令升级必要的软件包:

    apt-get install update

    2. 安装 Apache2 和 PHP5

    Apache2 和 PHP5已经包含在 Debian/Ubuntu 软件包中了,一般来说,系统已经默认安装完毕。如果没有,你可以使用下面的命令轻松安装它:

    apt-get install apache2 php5 libapache2-mod-php5 php5-gd php-pear php5-suhosin

    系统会提示已需要安装的版本并自动安装,如有更新,系统会显示需要更新的版本。

    安装 Apache 后,你可以启动:

    /etc/init.d/apache2 start

    重新启动Apache命令为:

    /etc/init.d/apache2 restart

    Apache 的配置文件位于: /etc/apache2/apache2.conf
    Apache 的默认web文件夹在: /var/www
    PHP的配置文件位于:/etc/php.ini

    3. 安装 MySQL5

    执行下面的命令来安装 MySQL:

    apt-get install mysql-server mysql-client php5-mysql

    然后启动 MySQL 服务器:

    /etc/init.d/mysql start

    安装完毕后我建议运行一下mysql_secure_installation来做一些基本的安全设置,它会检查root密码、移除anonymous帐号、禁止root远程登录、移除test数据库。

    运行下面的命令来为 root 用户设置一个密码(否则的话任何人都可以访问你的MySQL数据库!):

    mysqladmin -u root -p password 12345678

    Enter password: 输入root密码以确认修改,一般root初始密码为空(上面的12345678为你想要的密码)

    使用root帐号进入mysql:

    mysql -u root -p

    创建数据库:

    create database site1dbname;

    给新创建的数据库制定一个用户和密码:

    grant all on site1dbname.* to ‘site1dbuser’ identified by ‘site1dbpwd’;

    重新启动 MySQL:

    /etc/init.d/mysql restart

    mysql的配置文件位于:/etc/mysql/my.cnf

    好了,一个LAMP 服务器搭建完成。

    第二部分

    增加虚拟站点配置:

    vim /etc/apache2/sites-available/mysite

    添加内容如下:

    <VirtualHost *:80>
    ServerName www.mysite.com
    ServerAlias mysite.com www2.mysite.com
    DocumentRoot /var/www/mysite/
    </VirtualHost>

    激活这个虚拟站点:

    a2ensite mysite

    apache2重新加载配置:

    /etc/init.d/apache2 reload

    如果需要添加多个虚拟机,重复上述步骤即可。

    如果想启动rewrite,需要在终端运行:

    a2enmod rewrite

    然后重启Apache:

    /etc/init.d/apache2 restart

    实例:安装WordPress设置固定链接教程
    1.安装Wget

    apt-get install wget

    2.进入虚拟机所在目录

    cd /var/www

    3.下载WordPress到服务器并解压

    wget http://wordpress.org/latest.tar.gz
    tar zxvf latest.tar.gz

    4.修改WordPress目录属性

    chmod -R 777 /var/www/wordpress
    chgrp -R ftp /var/www/wordpress
    chown -R www /var/www/wordpress

    5.修改apache2的虚拟机配置文件(位于/etc/apache2/sites-enabled/),在<VirtualHost *:80>和</VirtualHost>中间加入下面代码

    <Directory “/var/www”>
    Options FollowSymLinks IncludesNOEXEC Indexes
    DirectoryIndex index.html index.htm index.php
    AllowOverride all
    Order Deny,Allow
    Allow from all
    </Directory>

    6.apache2重新加载配置:

    /etc/init.d/apache2 reload

    第三部分

    1.安装phpMyAdmin

    如果你觉得使用命令行管理MySQL很不方便,可以安装phpMyAdmin。

    phpMyAdmin是一个基于web的数据库管理软件,在apache下很容易安装和配置。

    你所需要做的就是:

    apt-get install phpmyadmin

    phpmyadmin配置文件在/etc/phpmyadmin目录。
    在apache下安装phpmyadmin,你仅需要在/etc/apache2/apache2.conf中加入以下这行:

    Include /etc/phpmyadmin/apache.conf

    现在重新启动 Apache:

    /etc/init.d/apache2 restart

    用浏览器打开:http://domain/phpmyadmin 输入用户名密码就可以管理MySQL数据库了。

    2.用vsftpd配置FTP服务

    一般用户都会选择用FTP上传的方式来管理自己的网站,所以需要配置FTP服务。

    安装vsftpd:

    apt-get install vsftpd

    安装好之后,编辑配置文件/etc/vsftpd.conf:

    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022

    以上每行解释如下:
    1.禁止匿名用户访问ftp
    2.允许本地用户访问ftp
    3.允许写操作
    4.上载文件的时候,使用的掩码是022

    重新启动 vsftpd:

    /etc/init.d/vsftpd restart

    设定FTP目录属性,如/var/www 目录属性:

    chmod -R 777 /var/www

    递归地给此目录下所有文件和子目录的读、写、执行权限

    chgrp -R ftp /var/www

    递归地把此目录及该目录下所有文件和子目录的组属性设置成ftp组

    增加FTP用户

    adduser 用户名

    设定用户密码

    passwd 用户名

    添加用户到指定组

    adduser 用户名 组名

    修改FTP用户的上传目录可以修改/etc/passwd

    安装配置完毕,重新启动 vsftpd即可:

    /etc/init.d/vsftpd restart

    常用参数意义,视具体情况配置:

    #anonymous_enable 是否允许匿名ftp,如否则选择NO,默认允许匿名访问,
    注意当允许是所有用户均视为匿名登录。
    #local_enable 是否允许本地用户访问,是指VSFTP所在机器上的注册用户。
    #local_umask=022 默认的umask码
    #write_enable 是否允许本地用户修改和删除
    #local_umask=022 FTP上传文件权限 ,默认是077
    #anon_upload_enable=YES 是否允许匿名用户上传
    #anon_mkdir_write_enable=YES 是否允许匿名用户的写和创建目录的权限
    #dirmessage_enable=YES 当切换目录时,是否显示该目录下message隐藏文件的内容
    #xferlog_enable=YES 是否激活上传和下载的日志
    #connect_from_port_20=YES 是否启动FTP数据端口20的连接请求
    #chown_uploads=YES 是否改变上传文件的所有者
    #chown_username=whoever 改变上传文件的所有着为whoever
    #xferlog_file=/var/log/vsftpd.log 上传/下载日志文件所默认的路径
    #xferlog_std_format=YES 是否使用标准的ftpd xferlog日志格式
    #idle_session_timeout=600 是否将在用户会话空闲10分钟后被中断
    #data_connection_timeout=120 是否将在数据连接空闲2分钟后被中断
    #nopriv_user=ftpsecure 是否运行vsftpd需要的非特殊系统用户默认nobody
    #async_abor_enable=YES 是否是否允许运行特殊的FTP命令async
    #ascii_upload_enable=YES 是否启用上传的ascii传输方式
    #ascii_download_enable=YES 是否启用下载的ascii传输方式
    #ftpd_banner=Welcome to blah FTP service. 用户连接服务器后显示信息
    #deny_email_enable=YES 是否允许某些匿名用户使用邮件地址(默认的)
    chroot_local_user=NO
    chroot_list_enable=YES

    VSFTPD的文件结构是很简洁的,主要包括:
    /usr/sbin/vsftpd —- VSFTPD的主程序
    /etc/init.d/vsftpd —- 启动脚本
    /etc/vsftpd.conf —- 主配置文件
    /etc/pam.d/vsftpd —- PAM认证文件
    /etc/ftpusers —-记录不允许访问FTP服务器的用户名单
    /home/ftp —-Vsftpd的根目录
    此外VSFTPD的日志文件为/var/log/vsftpd.log。

    Vsftpd的管理控制:
    /etc/init.d/vsftpd start //启动vsftpd
    /etc/init.d/vsftpd stop //停止vsftpd
    /etc/init.d/vsftpd restart //重新启动vsftpd
    /etc/init.d/vsftpd reload //重新导入vsftpd

    更多的配置内容请访问vsftpd的官方网站查看:

    http://vsftpd.beasts.org/vsftpd_conf.html

  • 现在主题存在的问题(持续更新)

    1.每篇文章的标题没有明显标志,不容易区分哪一段是一篇文章的开始
    2.为了精简CSS文章内容页面 <h1>…<h6>没有仔细定义,H1 有时候比标题还要大(—_—! 为了性能牺牲了功能,不值得啊)
    3.代码引用 样式实在有点难看。
    目前就这么多~~~2011.1.24

  • 由促销邮件说起

    年关临近,不可避免的收到无数的促销邮件,京东、新蛋、当当、凡客……等等,有的没得都会每周给你发几封。

    然后问题就来了,我大部分时间肯定是在公司上班,而有很多公司的网络是直接屏蔽掉这个电子商城的,所以你懂了吧:有很多促销邮件发过来之后都是红叉叉,比如凡客、比如京东。

    到了这个时候就体现出网站的专业性和人性化了,目前为止我这里只能打开新蛋的促销邮件,话说人家新蛋在邮件中的图片全部都是来自newegg.dmdelivery.com这个网站的。dmdelivery.com这个网站是专门做邮件营销的网站,客户涉及范围非常广:比如WOW、比如THE9,比如nikon……等等。

  • 告别2010

    本不想写什么总结,但是常言说得好,好记性不如烂笔头,那就姑且总结一小下,一来为了以后有个念想,二来也免得一直浑浑噩噩的过下去。

  • 奇怪的小红伞

    奇怪的小红伞,明明设置了手动升级,却还是在后台偷偷地自动升级,弄得我网速奇慢无比。得了,我裸奔还不行吗~~~

  • 写在工作与工作之间

    转眼毕业四年时间,工作之后才真正知道学校的圈子与社会的圈子差别原来如此之大,唏嘘感叹的同时,心底也着实多了一些沉淀。为了不至于忘掉,索性记录下来,也为后来人引以为戒。

    一是关于Manager这个级别的管理者到底需不需要技术背景的问题。无数次的听说对于一个管理者来说技术能力不是最重要,个人也无数次的感慨技术型领导的无奈与辛劳,但后来仔细想想,技术实力还真的是一个重要的条件,或许不是决定因素,但至少会给你加分,这里说的技术,不单指IT行业,无论你是车间主任也好,还是某大型跨国公司的CIO也罢,你都必须对工作流程与团队的人员配比无比熟悉,否则就极容易出现整个团队终日手忙脚乱,但是最终项目惨败的局面。

    二是对于精英型的小团队来说,便捷快速的沟通协调方式是必须的。大概现在除了互联网项目之外,小团队负责的项目大抵都是中小型项目了,这一类项目要求实施迅速,对回馈反应敏捷,那就要求负责项目的团队成员必须都是精英,必须各个所擅长的领域,最好互补, 然后领导者必须镇得住整个团队,必须懂得合理的分工配合。这种团队对领导者的个人素质要求较高,但是这种团队却不会凸显领导者。

    三就是所谓的“凝聚力”了,说白了就是培养感情。一个好的Leader或者Manager 必然是会培养团队感情的,或许不必亲力亲为但是这个环节不可或缺,团队成员的感情培养也不是一朝一夕的事情,但是积极乐观向上的气氛是一个领导者每天应该制造的。

    唠叨了半天,其实适合的管理方法都是你自己摸索。言不能尽其详,正如托尔斯泰所说:幸福的家庭都是相似的,不幸福的家庭各有各的不幸。所以,成功的团队都有相似的特质,而失败的团队却各有不同。

  • IT Manager们,请注意控制产品复杂度。

    最近几天一直在恶补Java,然后正赶上有一个网站需要用“戴总”的Discuz X1.5重新架设(以下简称DX),几天下来感触良多,立字存据 。

    直到现在才明白DX本质还是个论坛,只是这个论坛的复杂度无比的高。而且官方没有一个严谨的说明页面,想要完全了解?可以,要么泡坛子问一些高手们看了之后会会心一笑的问题;要么付钱,戴总给你提供完整的技术支持。但是不得不承认DX算是目前最好的论坛程序了,基本操作很便捷,UE做的也不错。

    程序的复杂程度……至少我这种Level的PG是基本看不懂了。在使用上,唉,我这个level的ITER也花了整整三天才大体弄明白是怎么个情况,但是使用起来还是不能得心应手。难道是我OUT了不成?咱好歹也是死扛在IT第一线,软硬兼施混了五六年了,虽说现在年龄大了点,但也不至于啊。当年在“XX传媒”的时候我也是从IT Manager一路走到了“C” Level的级别,现在想想看,原来那时候我们做的那些产品也个个是复杂无比的,以至于我现在已经记不清构架和脉络了。

    So, Mark一下,提醒自己也提醒所有的PG和IT Manager们请时刻注意控制你们产品的复杂度!