centOS 6下通过yum安装php-mssql以使php支持microsoft sql server连接

centos 6下,安装fedoraproject的epel-release源,即可以安装php的mssql模块。

注:epel是fedora开发组为centos开发的附加软件yum源,可以弥补centos上游redhat里缺少的软件包。epel的质量还是相当之高的。

[root@c12 html]# rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
[root@c12 html]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
[root@c12 html]# yum install php-mssql
[root@c12 html]# /etc/init.d/httpd graceful

完成。

phpinfo中可以看到mssql的信息

mssql模块实际还是FreeTDS,其功能主要是在Liunx下能够访问Sybase及MS SQL,官方网站是:http://www.freetds.org/ 。当然也可以手工编译mssql模块到php中,不过通过yum更简单一点。

关于epel源,参看这里 http://fedoraproject.org/wiki/EPEL/zh-cn

本方法来源于centOS 6更新yum以便可裝php-mssql (http://blog.hubin411.com/2011/10/13/centos-6%e6%9b%b4%e6%96%b0yum%e4%bb%a5%e4%be%bf%e5%8f%af%e8%a3%9dphp-mssql/) 阅读该页面请自备梯子。或参看如下转录的核心部分:

tep 1:
# wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm    //取得rpm檔案

step 2:
# rpm -ivh epel-release-6-5.noarch.rpm    //安裝取得的rpm檔案

step 3:
# yum update    //更新yum的資源庫

step 4:
# yum install php-mssql    //安裝php-mssql

step 5:
# service httpd restart    //重啟apache伺服器

mysql多表join联查语句错误:#1241 - Operand should contain 1 column(s)

对ecshop系统做一些改造,需要一个三表join的查询,但写出语句却报错了

#1241 - Operand should contain 1 column(s)

语句如下:

SELECT a . * , IFNULL( g.goods_thumb, '' ) AS goods_thumb, g.goods_name AS goods_name_from_goods, g.brand_id, b.brand_name
FROM `eb`.`ec_goods_activity` AS a
LEFT JOIN (`eb`.`ec_goods` AS g , `eb`.`ec_brand` AS b )
ON (a.goods_id = g.goods_id , b.brand_id = g.brand_id)
WHERE a.act_type = '5'
AND a.start_time <= '1333010119'
AND a.end_time >= '1333010119'
AND a.is_finished <2
ORDER BY a.act_id DESC
LIMIT 20

起初死活找不到错误,突然发现ON子句里把条件and错写成逗号了,改正后执行正确,问题解决。

SELECT a. * , IFNULL( g.goods_thumb, '' ) AS goods_thumb, g.goods_name AS goods_name_from_goods, g.brand_id, b.brand_name
FROM `eb`.`ec_goods_activity` AS a
LEFT JOIN (
`eb`.`ec_goods` AS g, `eb`.`ec_brand` AS b
) ON ( a.goods_id = g.goods_id AND b.brand_id = g.brand_id )
WHERE a.act_type = '5'
AND a.start_time = '1333010119'
AND a.is_finished ORDER BY a.act_id DESC
LIMIT 20

网络科普:教你识别钓鱼网站

本文是一篇很久以前只写了个标题的文章。在草稿箱里放了4年多,最近整理博客看其更新时间为 2012年3月19日 @ 22:00,这么久都没有继续写,大概以后也不会续写了,直接发出来算了(2016-10-10 17:20)

(【补记】事实上,本文被当作临时粘贴板用过一次,用来把一个网页上的表格复制成html格式,而帖在编辑器里,并且保存了草稿,应该是wordpress自动保存的,该草稿直到写这个后记之前还是;当然现在已经删除了)

centos 6.2 yum 升级时提示no module named yum

很怪的问题,同一个iso镜像,昨天安装好好的,这次安装后,运行yum update时,报错了 no module named yum

消息内容说是python的问题,看网上别人是使用过程中突然出现了 no module named yum 这样问题,而我是刚安装就被报 no module named yum,难道是人品问题?

参考网上的说法,把iso镜像挂上,到里面的rpm目录里,把rpm-xxxxxx.rpm的几个包重新安装一遍,rpm -ivh xxxxxxx,然后再运行yum update 就好了。

很是怪异的问题。

从最小化centos6.2下安装centos桌面系统gnome

一台旧电脑,比较老了一点,拿来用来做linux测试用,硬件有点问题,不能从U盘启动;也没有CentOS安装光盘,以前下载的centos6.0的DVD安装镜像似乎也有问题,于是整个安装过程相当麻烦;要先最小安装,然后在线安装gnome桌面环境。

从网易镜像站点http://mirrors.163.com/centos/6.2/isos/i386/上下载了一个minial的centos6.2安装上了,自然是没有图形界面的。接下来是安装图形界面等,直接在线yum安装,大概半个小时基本安装成功,这得益于10M的光纤,不然这个安装过程不知道要花多久。

下面是minial centos6.2安装后安装gnome桌面环境的主要过程:

1.添加一个普通用户,设置密码

useradd -Um feng
passwd feng

2. 查看网络状态并启用有线网络eth0,通过dhcp获取地址,并检查获取到的ip地址

ifconfig eth0
dhclient eth0
ifconfig eth0

3. 进行一次在线升级

yum update

4. 导出并查看yum组 grouplist (可选,只是为了方便查看需要哪些包/组)

yum grouplist > group.txt
less group.txt

5. 安装桌面系统

yum groupinstall Desktop
yum groupinstall "X Window System"

5. 安装中文支持

yum groupinstall "Chinese Support [zh]"
yum groupinstall chinese-support

6. 进入图形化桌面

[注意] 安装minial centos时,是使用的默认语言为中文,如果默认选择的是英文,则

修改/etc/sysconfig/i18n,将LANG修改为LANG="zh_CN.UTF-8" (网上说法,个人未证实)

init 5

7. 登录,设置用户家目录标准文件标准夹名

登录后,将出现用户家目录文件名改名的提示界面,推荐“不再问我” “保留旧名称”;当然看个人习惯,改成中文也可以。个人是习惯使用英文文件名。

8. 去掉一些gnome自动启用项

进入 系统 - 启用应用程序,取消对“用户文件夹更新”的勾选。另外的一些启用项目,也酌情取消。

9. 下面就可以在gnome终端里操作了。根据实际需要安装一些有用的组,当然也可以一个一个包的安装。

yum groupinstall "Desktop Platform"
yum groupinstall "Development tools"
yum groupinstall "Base" "Fonts" "Emacs" .....

按下来,加个第三方yum源吧,不然是没有多媒体应用程序的,推荐RPMforge, 很不错的centos RPM/yum源(参看 http://blog.path8.net/archives/4707.html)

enjoy your gnu/linux

bash shell下按文件夹快速合并文件

要求:很N个文件夹,每个文件夹下都是N个文本文件,要把每个文件夹下文件合并成一个文件。

如果windows下,除非使用第三方工具,否则这是个无法想像的工作。更不要说使用文本编辑工具打开、然后手工拼合了。在linux下,简单的使用命令,那是一件相当优雅的事情:如下

$ for f in `ls`; do cd $f; cat `ls` >../${f}.txt ;cd .. ; done

(注:行首的美元符$是bash命令提示符)

这条命令执行完,就把每个文件夹下的文件合并起来,文件名就是 文件夹的名字+.txt

 

centos6.x下安装libreOffice最新版本/替代openoffice

centos6.2自带的openoffice,实在差劲,版本太老;没办法,centos为了稳定,没有新软件;尤其是openoffice被oracle捣腾得...

不多说,放弃openoffice,安装libreoffice,是一个正确的选择。首先下载:http://www.libreoffice.org/download/

libreoffice下载

libreoffice下载

选择 Linux x80(rpm), zh-CN-中文(简体),下载下面列出的三个包,第一个是程序包,后面是中文语言包及中文帮助包。

文件有140+M, 耐心等待。写本文时(2012-02-14)最新版本是3.4.5.

先解压缩140+M的软件包,里面有两个目录readmes,RPMS,  在终端下进入RPMS,su切换为root身份,这里文件比较多,rpm包都是lib开头的; 全部安装

# rpm -ivh lib*

当前RPM目录下还有一个目录desktop-integration 进入,这是在主菜单里加入liberoffice启用项的包,不安装就没有libreoffice的启动项目,centos属于redhat系列,安装

# rpm -ivh libreoffice3.4-redhat-menus-3.4-502.noarch.rpm

同法,解压缩语言包LibO_3.4.5_Linux_x86_langpack-rpm_zh-CN.tar.gz及帮助文件LibO_3.4.5_Linux_x86_helppack-rpm_zh-CN.tar.gz,这两个压缩包里也是readmes及RPMS两个子目录,推荐安装RPM目录里的包全部安装。

即可。

[feng@fsc RPMS]$ ls
desktop-integration
libobasis3.4-base-3.4.5-502.i586.rpm
......(略)
libreoffice3.4-writer-3.4.5-502.i586.rpm
[feng@fsc RPMS]$ su
密码:
[root@fsc RPMS]# rpm -ivh lib*
Preparing...                ########################################### [100%]
1:libreoffice3.4-ure     ########################################### [  2%]
2:libobasis3.4-core01    ########################################### [  4%]
.......(略)
52:libobasis3.4-testtool  ########################################### [ 98%]
53:libobasis3.4-xsltfilter########################################### [100%]
[root@fsc RPMS]# cd desktop-integration
[root@fsc desktop-integration]# ls
libreoffice3.4-freedesktop-menus-3.4-502.noarch.rpm
libreoffice3.4-mandriva-menus-3.4-502.noarch.rpm
libreoffice3.4-redhat-menus-3.4-502.noarch.rpm
libreoffice3.4-suse-menus-3.4-502.noarch.rpm
[root@fsc desktop-integration]# rpm -ivh libreoffice3.4-redhat-menus-3.4-502.noarch.rpm
Preparing...                ########################################### [100%]
1:libreoffice3.4-redhat-m########################################### [100%]

几个重要的技术学习/培训点

如何定位错误(现象入手,分析问题,代码折半删除法)

解决问题思路,目的性,拆解,实施进行过程中及时发现问题、反思、返工,

搜索引擎的使用(关键词选取,语法)

常用工具软件使用,ultra edit/ue studio, edit plus, dreamweaver, firefox/add on,

数据库应用

http协议,cookie, session, http header, http server

web相关,bs架构,服务器/客户端、相对性,web server,动态语言解析引擎/php解析器,数据库连接库/bs关系

本文内容原本是很久以前打算在公司里给技术人员做培训而初拟的内容提纲。在草稿箱里放了4年多,最近整理博客看其更新时间为 2011年12月26日 @ 23:05,这么久都没有继续写,大概以后也不会续写,直接发出来算了(2016-10-10 15:29)

【补记】这只是个拟提纲的过程,一直没有完成,后面自然就荒废了。现在来看,果然是非常初级的内容,适用于在草根团队里的草根出身的开发人员。而且很多东西过时了

linux下使用Image Magick批量处理图片

使用Image Magick这个命令行图像处理软件批量处理图片,最有用的是批量缩放照片。举例:

目录photo中放置待缩小的图片,缩小后图片放置于small目录,缩小为原图片的50%。

进入photo目录,执行命令

feng@fscu:~/photo$ for img in `ls`; do convert -resize 50%x50% $img ../small/$img; done

即可。

--------------------------------------------------------------------------------------------------------

下面是转自http://www.5dlinux.com/article/1/2007/linux_7598.html的imagemagick使用说明。

mage MagicK 是一个强大的图象处理工具包。它提供了几个非常方便的命令行命令: display, animate,import, montage,mogrify,identify等,可以进行图象的显示,缩放,旋转,调色,加框,加注释等,还能制作GIF动画,图象索引,能自动生 成图象.

1. 制作索引图和动画

!/bin/bash
montage -bordercolor red -borderwidth 3 -label "%f" -tile 5x3 *.JPG montage.jpg
mogrify -format gif *.JPG
display montage.jpg
animate *.JPG

2. 缩放 convert -sample 80x40 input.jpg output.jpg #注意:缩放后图像保持原来的长宽比例 convert -sample 25%x25% input.jpg output.jpg
3. 为当前目录的所有图像生成缩略图

for img in `ls *.jpg`
do
convert -sample 25%x25% $img thumb-$img
done

4. 获取文件信息 libtiff

tiffinfo filename.tiff
pnginfo filename.png

5. 可以使用 ImageMagick 的 identify

identify -verbose sample.png
identify -format "%wx%h" sample.png

6. 旋转图像

convert -rotate 90 input.jpg output.jpg

7. 更改文件类型

convert input.jpg output.png

8. 为图像增加注释文字

convert -font helvetica -fill white -pointsize 36 \
-draw 'text 10,50 "Floriade 2002, Canberra, Australia"' \
floriade.jpg comment.jpg
convert -font fonts/1900805.ttf -fill white -pointsize 36 \
-draw 'text 10,475 "stillhq.com"' \
floriade.jpg stillhq.jpg

9. 特殊效果

convert -charcoal 2 input.jpg output.jpg #炭笔
convert -colorize 255 input.jpg output.jpg #着色 可以指定三种颜色 red/green/blue
convert -implode 4 input.jpg output.jpg #内爆效果
convert -solarize 42 input.jpg output.jpg #曝光,模拟胶片曝光
convert -spread 5 input.jpg output.jpg #随机移动,参数是位移大小

10. 一次执行多个操作

convert -sample 25%x25% -spread 4 -charcoal 4 input.jpg output.jpg

php函数代码:以表格形式输出二维数组

已于2012-01-16更新:对于元素为数组的,也以表格输出(否则将数组子元素显示为array)

直接上代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>以表格形式输出二维数组</title>
</head>

<body>
<?php
$comment[100]=array('id'=>100,'parent'=>0,'content'=>'AAAAAAAAAA');
$comment[101]=array('id'=>101,'parent'=>100,'content'=>'BBBBBBBBB');
$comment[102]=array('id'=>102,'parent'=>100,'content'=>'CCCCCCCCCC');
$comment[103]=array('id'=>103,'parent'=>0,'content'=>'DDDDDDDDDDd');
$comment[104]=array('id'=>104,'parent'=>102,'content'=>'EEEEEEEE');
$comment[105]=array('id'=>105,'parent'=>101,'content'=>'FFFFFFFFF');
$comment[106]=array('id'=>106,'parent'=>0,'content'=>'GGGGGGGG');
$comment[107]=array('id'=>107,'parent'=>0,'content'=>'HHHHHHHHH');
$comment[108]=array('id'=>108,'parent'=>101,'content'=>'IIIIIIIIIIII');
$comment[109]=array('id'=>109,'parent'=>105,'content'=>'JJJJJJJJJJ');
$comment[110]=array('id'=>110,'parent'=>103,'content'=>'KKKKKKKKKK');
$comment[111]=array('id'=>111,'parent'=>108,'content'=>'LLLLLLLLL');
$comment[112]=array('id'=>112,'parent'=>105,'content'=>'MMMMMMMMMM');

$data=$comment;

array_table_view($data);

function array_table_view($data)
{
?>
<table width="95%" border="1" cellspacing="0" cellpadding="4"><?php 
    if(!sizeof($data)){
?>
  <tr>
    <td>empty array.</td>
  </tr><?php 
    }else{
        foreach($data as $item){
?>
  <tr><?php 
          foreach($item as $key => $val){ ?>
    <th><?php echo $key; ?></th><?php 
            } ?>
  </tr>
<?php 
            break;
        }

        foreach($data as $item){

?>
  <tr><?php 
          foreach($item as $key => $val){ ?>
    <td><?php 
        if(is_array($val)){
            array_table_view($val);
        }else{
            echo $val;
        }
        ?></td><?php 
            } ?>
  </tr>
<?php
        }
    } ?>
</table>
<?php
}
?>
</body>
</html>

代码下载 array_table_view

代码下载 (请“复制-粘贴-保存”以上代码)

Pages: Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 Next