博客

  • 帝国CMS常用标签整理

    调用友情链接:

    [e:loop={‘select * from [!db.pre!]enewslink where checked=1 order by lid’,20,24,0}]

    <a href=”<?=$bqr[lurl]?>”><?=$bqr[lname]?></a>

    [/e:loop]

    ———————————————————————————————————

    调用所有一级栏目:

    [e:loop={‘select classid,classname,classpath,wburl from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by myorder’,0,24,0}]

    <li><a href=”<?php

    if(empty($bqr[wburl]))

    {

    echo $public_r[newsurl].$bqr[classpath];

    } else {

    echo $bqr[wburl];

    }

    ?>” title=”<?=$bqr[classname]?>” target=”_self”><?=$bqr[classname]?></a></li>[/e:loop]

    ———————————————————————————————————

     

    一级二级栏目循环:

    <dl>

    [e:loop={“select classid,classname,islast from {$dbtbpre}enewsclass where bclassid=’0′ order by myorder,classid ASC limit 11″,0,24,0}]

    <?php

    $classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址

    $tbname=$class_r[$bqr[classid]][tbname]; //取得表名

    ?>

    <dt><a href=”<?=$classurl?>” target=”_blank”><b><?=$bqr[classname]?></b></a></dt>

    <dd>

    <?php if(!$bqr[islast]){ ?>

    <?php

    //取得栏目下的子栏目

    $newsclass=$empire->query(“select classid,classname from “.$dbtbpre.”enewsclass where bclassid=”.$bqr[classid].” order by myorder,classid desc limit 10″);

    while($classr=$empire->fetch($newsclass)) {

    $classrurl=sys_ReturnBqClassname($classr,9); //取得子栏目地址

    ?>

    <a href=”<?=$classrurl?>”><?=$classr[classname]?></a>

    <?php

    }

    ?>

     

    <?php

    }else{

    ?>

     

    <?php

    //取得栏目下的信息

    $newsinfo=$empire->query(“select * from “.$dbtbpre.”ecms_”.$tbname.” where classid=”.$bqr[classid].” order by newstime desc limit 10″);

    while($infor=$empire->fetch($newsinfo)) {

    $titleurl=sys_ReturnBqTitleLink($infor);

    ?>

    <a href=”<?=$$titleurl?>”><?=$newsinfo[title]?></a>

    <?php

    }

    ?>

     

    <?

    }

    ?>

    </li>

    [/e:loop]

    </dd>

    </dl>

    ———————————————————————————————————

    调用指定父栏目下的子栏目

    [e:loop={“select classid,classname from {$dbtbpre}enewsclass where bclassid=IDorder by myorder,classid desc”,0,24,0}]

    <?php

    $classurl=sys_ReturnBqClassname($bqr,9);//取得栏目地址

    ?>

    <a href=”<?=$classurl?>”><?=$bqr[classname]?></a>

    [/e:loop]

     

    ———————————————————————————————————

    帝国CMS顶级栏目调用所有顶级栏目的方法

    [e:loop={“select * from phome_enewsclass where bclassid in (0) order by classid asc”,0,24,0}] <li><a href=”/<?=$bqr[classpath]?>”><?=$bqr[classname]?></a></li> [/e:loop]

    ———————————————————————————————————

    列表页面调用 栏目名称+标题 [栏目] 标题

    [<a href=”<?=$class_r[$bqr[classurl]]?> ” target=”_blank”><?=$class_r[$bqr[classid]][classname]?></a>] <a href=”<?=$bqsr[‘titleurl’]?>” target=”_blank”><?=$bqr[‘title’]?></a>

     

    列表页面调用 栏目名称+标题 [栏目] 标题 时间

    [<a href=”<?=$class_r[$bqr[classurl]]?> ” target=”_blank”><?=$class_r[$bqr[classid]][classname]?></a>] <a href=”<?=$bqsr[‘titleurl’]?>” target=”_blank”><?=$bqr[‘title’]?></a><span><?=date(‘Y-m-d’,$bqr[newstime])?></span>

    ——————————————————————————————————–

    调用当前栏目父级栏目下的所以子栏目排除当下栏目

    <?php $tl_thisclassid=$GLOBALS[navclassid];

    $tl_bclassid=$class_r[$tl_thisclassid][bclassid];

    $tl_class_sql=$empire->query(“select classid,classname from {$dbtbpre}enewsclass where bclassid=’”.$tl_bclassid.”‘ and showclass=0 order by myorder,classid desc”);while($tl_class_r=$empire->fetch($tl_class_sql)){ if($tl_class_r[classid]==$tl_thisclassid){continue;}?>

    <li><a href=”<?=sys_ReturnBqClassname($tl_class_r,9)?>”><?=$tl_class_r[classname]?></a></li><?}?>

    —————————————————————-

    调用父级栏目下子栏目

    <?

    $bclassid = $class_r[$GLOBALS[navclassid]][bclassid]; //获取当前父栏目ID

    ?>

    [e:loop={“select classid,classname,classpath from [!db.pre!]enewsclass where bclassid =’$bclassid’ order by classid”,0,24,0}]<!-取得父栏目下的子栏目->

    <ul><li><a href=”<?=$public_r[newsurl].$bqr[classpath]?>/”><?=$bqr[classname]?></a></li></ul>

    [/e:loop]

    ———————————————————————————————–

    调用当前栏目下的子栏目

    [e:loop={“select classid,classname,classpath from [!db.pre!]enewsclass where bclassid =’$GLOBALS[navclassid]’ order by classid”,0,24,0}]<!-取得父栏目下的子栏目->

    <ul><li><a href=”<?=$public_r[newsurl].$bqr[classpath]?>/”><?=$bqr[classname]?></a></li></ul>

    [/e:loop]

  • android用终端安装软件 apk

    cp /sdcard/tflash/test.apk /data/app/

    chmod 644 /data/app/test.apk

    chown system.system /data/app/test.apk

  • FreeBSD6.1学习笔记 很全很初步 收藏

    ++设定网卡

    1)简单点的用sysinstall–>Configure–>networking–>Interfaces

    2)或直接手工配置

    vi /etc/rc.conf #添加如下内容

    ifconfig_lnc0=”inet 192.168.25.37? netmask 255.255.255.0″ #具体网卡名称和IP地址自已调

    defaultrouter=”192.168.25.12″??? #网关

    hostname=”freebsdsrv.zhangjianfeng.com”? #主机名称

    ++多线程下载ports里的包

    cd /usr/ports/ftp/axel

    make

    make install

    make clean

    编辑make.conf文件

    ee /etc/make.conf

    增加以下内容

    FETCH_CMD=axel

    DISABLE_SIZE=yes

    修改配置文件

    ee /usr/local/etc/axelrc

    设置并发线程为10

    num_connections = 10

    默认的设置是4

    ++加速pkg_add 速度

    export? PACKAGEROOT=ftp://ftp.tw.freebsd.org? #bash

    ++设置ports的下载路径

    # added by use.perl 2006-12-21 20:58:26

    PERL_VER=5.8.8

    PERL_VERSION=5.8.8

    MASTER_SITE_OVERRIDE= \

    ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

    ftp://ftp4.tw.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

    ftp://ftp10.tw.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

    ftp://ftp13.tw.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

    ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

    ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

    ftp://ftp5.jp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

    ftp://ftp.jaist.ac.jp/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \

    ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}

    ++配置X11

    Xorg -configure #会在/root/下生成xorg.conf.new

    Xorg -config xorg.conf.new #如果看到黑灰的格子和一个 X 形的指针,那就说明配置成功.退出测试可以按下 Ctrl+Alt+Backspace

    cp /root/xorg.conf.new /etc/X11/xorg.conf #如果测试没问题就把文件放到这里,可以通过startx启动

    ++ 中文gnome环境

    修改/etc/profile文件,在其中添加:LANG=zh_CN.eucCN

    LC_ALL=zh_CN.eucCN

    export LANG LC_ALL? #也可以在启动gnome之前手工运行

    ++安装prozilla

    cd /usr/ports/ftp/prozilla;make;make install

    ++关于 在FreeBSD 下PPPoE拨号上网的方法 以下是一个ppp.conf的例子:

    default:

    set log Phase tun command # you can add more detailed logging if you wish

    set ifaddr 10.0.0.1/0 10.0.0.2/0

    name_of_service_provider:

    set device PPPoE:xl1 # replace xl1 with your Ethernet device

    set authname 你的帐户名

    set authkey 帐户密码

    set dial

    set login

    add default HISADDR

    确认你的 adsl: 后面的代码前面都有缩进,格式必须入上,没有缩进就不可以!

    # ppp -ddial name_of_service_provider

    ++关于 挂载非UFS分区 方法

    1.mount FAT/FAT32分区:(C盘为例)

    mount -t msdos /dev/ad0s5 /mnt

    2.mount NTFS分区:(C盘为例)

    mount_ntfs /dev/ad0s1 /mnt

    mount_msdosfs -L zh_CN.GB18030 /dev/ad0sX /mnt #可以支持FAT32分区上的中文文件名,当然,locale用18030/zh_CN.eucCN/ zh_CN.GBK都可以

    3.mount Linux Ext2fs/Ext3fs:

    在内核里面加入options EXT2FS,编译内核。

    mount 的时候用mount_ext2fs 命令即可,ext3fs的mount也用mount_ext2fs

    4.mount 普通数据光盘:

    mount_cd9660 /dev/acd0 /cdrom? #如果fstab已定义,则 mount /cdrom

    5.mount ISO 文件

    mdconfig -a -t vnode -f abc.iso -u 1

    mount_cd9660 /dev/md1 /cdrom

    umount /mnt

    vnconfig -u /dev/vn0

    6.mount CD、VCD、DVD

    播放CD、VCD、DVD不用先mount上。

    如果你一定要mount上,可以这样:#mount _cd9660 -s 0 /dev/acd0 /cdrom

    7.mount usb

    确保内核中有如下项

    device scbus

    device da

    device cd

    在GENERIC中默认都有,如果没有,请编译内核。

    大多数U盘用的是FAT 文件系统,所以用

    mount -t msdos /dev/da0 /mnt

    ++Packages简单系统

    pkg_add -r lsof

    pkg_delete lsof-version #删除软件包

    pkg_info #显示所有安装的软件包

    pkg_info -L lsof-version| less #查lsof都安装到哪儿了

    pkg_info | grep -i foopackage? #查系统安装了指定包没?

    #找XX软件

    #a)如果你知道软件的准确的名字,比如说wget,则 whereis wget

    #b)如果你不知道准确的名字,那就search一下吧 cd /usr/ports;make search key=???

    ++ADSL拨号

    vim /etc/ppp/ppp.conf

    default:

    set log Phase tun

    enable dns

    adsl:

    set device PPPoE:rl0 #rl0对应网卡名称

    set mru 1492

    set dial

    set login

    set authname 用户名

    set authkey? 密码

    add default HISADDR

    vim /etc/resolv.conf

    nameserver 202.106.196.115

    nameserver 202.106.0.20

    ppp #运行ppp命令

    ppp ON LOCALHOST>dial adsl

    ppp ON LOCALHOST> #注释:假如没设置set mru 1492,系统会有提示的。

    Ppp ON LOCALHOST> #注释:第一个P变大写后又变回小写的话,很可能是你自己的ADSL密码和用户名输入错误

    PPP ON LOCALHOST> #注释:三个p都是大写P后,证明就通了

    ++中文本地化设置

    (1)在/etc/login.conf中加入以下部分

    #Chinese Users Accounts.

    chinese|Chinese Users Accounts:\

    :charset=eucCN:\

    :lang=zh_CN.eucCN:\

    :tc=default:

    (2)执行以下命令

    #cap_mkdb /etc/login.conf

    (3)用vipw修改登入类型,针对相应用用户进行修改,修改格式参照如下内容:

    root1$lOOD78Dm$oSG5u21RGrXoC.TTJ3nCs.:0:0:chinese:0:0:Charlie &:/root:/bin/csh

    关键是在相应位置加入”chinese”,”chinese”是和第1步的设置对应的。

    (4)重新登入后执行startx,进入的Gnome便是全中文的了。

    其实还是英文状态更舒服一些,但习惯了,反正得整出中文桌面来,即使不用,^_^

    ++使用Windows下的Simsun字体进行中文字体美化

    在 /usr/X11R6/lib/X11/fonts/下建立一个”TrueType”目录,将Windows下的simsun.ttc改名为 simsun.ttf后拷贝到 /usr/X11R6/lib/X11/fonts/TrueType下, 然后建立字体缓存 fc-cache -fv

    然后在GNOME中设置字体,在字体细节中调整:“平滑”选无,“微调”选轻微,“次象素顺序”选RGB。

    ++加载声卡

    在文件 /boot/loader.conf 里加入一行,内容如下

    snd_xxx_load=”YES”

    #如果不知道应该使用哪个驱动, 您可以尝试加载 snd_driver module, cat /dev/sndstat

    ++同步时间

    /usr/sbin/ntpdate 210.72.145.44

    ++比较快的cvs服务器

    cvsup5.cn.FreeBSD.org? 50ms以下

    cvsup.tw.FreeBSD.org?? 300ms左右

    http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/cvsup.html

    ++修改passwd

    vipw? #root

    ++编译内核可以用make kernel KERNEL=configfile来编译,比先build后install而言只要一个命令。

    ++编译内核失败后用老内核启动的命令是在启动内核前的等待时俺一下空格键,然后输入boot /boot/old/kernel

    ###################################基本设置#######################################

    setenv PACKAGEROOT “ftp://ftp.tw.freebsd.org” (在FreeBSD默认的c shell 使用此种方法)

    #设置环境变量使pkg_add –r 源代码安装方式选择较快的服务器下载二进制软件安装

    pkg_add -r cvsup-without-gui

    #下载并安装二进制代码程序cvsup-without-gui(cvsup-without-gui无图形支持在文本方式下工作的软件,用来同步代码及ports用。)

    ++FAQ

    +++默认只有wheel组的成员才可以su

    +++如何是启动使Booting [kernet] in 9 seconds …变成0秒解决办法:

    # vim /boot/defaults/loader.conf

    autoboot_delay=”3″

    ++VI中汉字显示成\xc8\xf0字样

    解决办法:用vim即可正常显示中文

    ++ls无颜色

    解决办法: ls -G #可以做个alias

     

     

    尽快消化

  • 密码保护:5年内买车买房-理财篇

    此内容受密码保护。如需查阅,请在下方输入密码。

  • phpmyadmin导入mysql数据库sql文件最大限制2M

    php配置文件php.ini中默认设置允许上传的最大文件数据为2M,因此通过phpmyadmin Web界面管理mysql数据库时,能够导入mysql数据库的最大sql文件或gzip文件大小也是2M (2048K)。如果要导入大于2M的sql数据库文件,有以下几种解决方法。

     

    最直接的解决办法当然就是修改php.ini配置文件的设置,即修改默认的 upload_max_filesize = 2M, memory_limit = 128M; post_max_size = 8M 。 比如我想上传一个27M的sql数据库文件,则可以修改为 upload_max_filesize = 32M, post_max_size = 32M,post_max_size 和 memory_limit 的值至少要大于等于upload_max_filesize的设置值。增加了php.ini中的最大上传设置数据之后,重启Apache数据库,再打开phpmyadmin 就可以上传大的sql数据库文件等等。

     

    另外一种方法适用于没有权限修改网站服务器php.ini文件设置的用户,可以使用phpmyadmin提供的$cfg[‘UploadDir’]方法,$cfg[‘UploadDir’]方法允许我们通过scp、ftp等文件传输方式上传数据库文件到网站服务器,然后phpmyadmin从服务器的临时目录中导入数据库文件。该上传的文件名后缀必须为.sql或者.sql.bz2 或.sql.gz 。具体步骤如下:

     

    在phpMyAdmin的根目录下找到config.inc.php文件(config.sample.inc.php),打开找到$cfg[‘UploadDir’] 和$cfg[‘SaveDir’],注释为“Directories for saving/loading files from server ”,即通过$cfg[‘UploadDir’] 和$cfg[‘SaveDir’]可以导入服务器上的SQL文件到数据库,以及将从数据库导出的SQL文件保存到服务器上的目录中。

     

    修改这个参数为$cfg[‘UploadDir’] = ‘ImportSQLFile’; 和 $cfg[‘SaveDir’] = ‘ExportSQLFile’;

     

    再在phpMyAdmin中建立两个文件夹,ImportSQLFile和ExportSQLFile。也就是将需要导入的sql文件复制到ImportSQLFile文件夹中,上传到服务器上。选择需要导入的数据库名,选择导入(Import),就会发现在文件导入(File to import)的地方多出来一个导入服务器上的SQL文件(web server upload directory)。通过这种方法可以突破php.ini的上传文件限制。导出/备份mysql数据的时候也可以直接保存在服务器上,保存到$cfg[‘SaveDir’] = ‘ExportSQLFile’; 中指定的文件夹中。

     

    另外,如果网站服务器和国外美国主机dreamhost一样支持Shell方式(SSH,SFTP,命令行)传输文件,那么通过shell方式导入Mysql数据库很大的sql文件都不成问题,直接在Mysql中使用命令:source filename.sql。

     

    如果还是不能上传大于2M的数据库数据文件,可以检查一下你的phpmyadmin 版本是不是最新的,据说phpmyadmin低于 2.7.0版本会出现类似memory内存、http错误和timeout超时等各种问题,因此最好安装phpmyadmin升级到最新版本。

  • error: ‘Access denied for user ‘debian-sys-maint’@’localhost’ (using password: YES)

    debian-sys-maint的密码是安装mysql时随时生成的

    停止或重启服务都靠它

    如果你修改了它的密码或覆盖掉密码,就会出现错误

    error: ‘Access denied for user ‘debian-sys-maint’@’localhost’ (using password: YES)’

    查看/etc/mysql/debian.cnf查看内容,可以看到有这个mysql连接用户:[client]

    host = localhost

    user = debian-sys-maint

    password = G1I2JcALeXXvyC50

    socket = /var/run/mysqld/mysqld.sock

    [mysql_upgrade]

    user = debian-sys-maint

    password = G1I2JcALeXXvyC50

    socket = /var/run/mysqld/mysqld.sock

    basedir = /usr

    直接用mysql登录,为debian-sys-maint用户改密:

    mysql>SET PASSWORD FOR ‘debian-sys-maint’@’localhost’ = PASSWORD(‘这里就是上面看到的密码’);

    mysql> flush privileges;

    这样就OK了

    如果删除了改用户,那只有添加了

    mysql> GRANT ALL PRIVILEGES ON *.* TO ‘debian-sys-maint’@’localhost’ IDENTIFIED BY ‘这里就是上面看到的密码” WITH GRANT OPTION;

    mysql> flush privileges;

  • Linux vps修改时间改成北京时间

    1.先登陆你的ssh,命令:date 看下时间是不是北京时间,如果不是我们把他改成北京时间。

    2.命令:

    rm -rf /etc/localtime

    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

     

    3.再用date命令看下,你的vps的时间改变了吗?大部分Linux vps的母鸡是允许每个vps修改时间的!

    如果此时你的vps时间已经改成北京时间就不用看下面了,如果此时你的vps时间还没有修改好。再试下命令:

    ntpdate stdtime.sinica.edu.tw

    使用ntpdate stdtime.sinica.edu.tw 时候如果提示这个命令,先安装 ntpdate就可以了。

     

    centos 系统的vps用命令:

    yum -y install ntpdate ntp

    Ubuntu系统的:

    sudo apt-get install -y ntpdate ntp

  • 关于apache2伪静态问题

    刚把博客搬了一个新家,之前是用一键安装包配置的VPS,虽然配置完了能很正好的运行,但是有很多想地方想修改却不知道从何处下手。这次搬家,全是手动配置的APACHE2环境,其实手运配置还是蛮简单的,只要自己细心点,但是配置完成后发现怎么也无法实现伪静态,开始以为是伪静态规则出了问题,但经过很多次试验,感觉发现不是伪静态规则的问题,看了看PHPINFO信息,原来里面没有mod_rewrite模块,这下犯愁了,因为APACHE2安装是用默认安装的,难道默认安装apache2没有安装mod_rewrite模块?试着用google和百度查看一些如何重新加入mod_rewrite模块的方法,网上有大多数是垃圾文章,还好没试,不然试了又要重新配置VPS。看了一些资料,原来默认安装的apache2是有安装mod_rewrite模块,只是没有启动而已

    a2enmod rewrite 启动

    然后系统会提示你重新加载apache2 ,最后再用phpinfo查看,就已经有mod_rewrite模块了

  • Optimize Apache and MySQL for a 256MB VPS

    sudo nano /etc/mysql/my.cnf

     

    Add the following line into the section [mysqld]:

    skip-innodb

     

    Next locate the line skip-external-locking and add skip-locking below that line.

     

    Now find the section labeled “Fine Tuning”. Change/add the settings in that section to match those below:

     

    key_buffer = 16K

    max_allowed_packet = 1M

    thread_stack = 64K

    thread_cache_size = 4

    sort_buffer = 64K

    net_buffer_length = 2K

     

    Save the file (ctrl+x) and restart MySQL: sudo /etc/init.d/mysql restart

    If you run MySQLtuner again you will see that the “memory” warning is gone, ignore the aother warnings for the moment (you need to run the script after a few days again to get exact test results)

     

    Optimize Apache in prefork mode

    If you followed the Ubuntu tutorial we’ve mentioned in the first paragraph, your Apache setup should run in prefork mode. The default settings are much to high, open the file sudo nano /etc/apache2/apache2.conf andchange the following settings:

     

     

    Timeout 45

    KeepAlive On

    MaxKeepAliveRequests 200

    KeepAliveTimeout 3

     

    StartServers 5

    MinSpareServers 5

    MaxSpareServers 10

    MaxClients 30

    MaxRequestsPerChild 2000

     

    That’s all, restart Apache using sudo /etc/init.d/apache2 restart. If you know more tweaks, please share.

  • 购买VPS后简单测试

    一、CPU信息及性能查看

    cat /proc/cpuinfo

    二、硬盘IO性能测试

    root@h:~# dd if=/dev/zero of=test bs=64k count=4k oflag=dsync && rm test

    4096+0 records in

    4096+0 records out

    268435456 bytes (268 MB) copied, 6.19022 s, 43.4 MB/s

    root@h:~# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync && rm test

    16384+0 records in

    16384+0 records out

    1073741824 bytes (1.1 GB) copied, 6.32504 s, 170 MB/s

    测试结果,如果超过10M,对正常建站就无影响。超过50M,就是非常给力状态。