centos 6下通过yum安装apache模块mod_h264_streaming, mod_flvx, mod_xsendfile等

centos因为上游redhat ep的原因,自带的包相对少一些,centos官方也建议可以安装一些第三方的yum源,如rpmfusion,epel等,本文所说的apache模块,rpmfusion,epel是支持的。

安装epel, rpmfusion源。

参看rpmfusion官方的“重要提示” (http://rpmfusion.org/Configuration) 说,安装rpmfusion前要先启用epel源

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

yum makecache

rpm -ivh http://download1.rpmfusion.org/free/el/updates/6/i386/rpmfusion-free-release-6-1.noarch.rpm

rpm -ivh http://download1.rpmfusion.org/nonfree/el/updates/6/i386/rpmfusion-nonfree-release-6-1.noarch.rpm

h264模块是非自由(nonefree)软件,要启用nonefree源才可以。不是“非免费”,不收钱的~~

上面的rpm文件,可能会随着新版本的出现而有所改变,因此,请参看其官方的安装说明操作。

装过上述两个yum源后,然后直接yum install即可

yum install mod_xsendfile

yum install mod_h264_streaming

yum install mod_flvx

 

 

 

 

linux初学者简明指导手册

linux是什么

如何学习

选择发行版

安装,虚拟机环境,硬盘、光盘、U盘

目录结构,挂载

认识终端命令行,基本命令:cd, ls, mkdir, cat, less

yum

三板斧:yum update, yum install, yum erase

yum进阶:yum provides, yum list, yum grouplist(groupinstall)

vim生存技能:模式,移动光标,保存搜索

bash进阶:多任务,jobs, &, bg, fg, kill

 

使用linode clone功能把一个vps整机迁移到另一vps上

前些天linode九周年促销活动时,抢买了一512的vps,想把原vps上的数据全部迁移过去,然后把旧vps撤销掉,这样可以省三个月的费用,还是很值的。买过后却懒得迁移数据,因为配置环境还是一件麻烦的事情,虽然没有多高技术含量。一个多月时间,也只配置了个最基本的环境,当时把配置过程实录下来,写了篇新手教程,然后就完全搁置了。其实环境还没有真正配置好。

今天偶然间看到linode后台里的clone功能,上网查了下,果然就是vps整机迁移的,这简直太方便了,跟linode迁移数据中心/机房一样简单,甚至更简单,不用给客服发ticket,完全自助!

于是在仔细确认后关掉新vps,把原vps clone过来。clone时,源vps不关机,直接迁移,理论上这样会造成一些问题,但考虑到vps工作负载并不高,其实只是个人wordpress博客,访问量很少,所以数据一致性问题应该可以忽略。

clone时,选中启动配置,而不是下面的硬盘,因为我需要的是整个服务器迁移,而不是只迁移某个硬盘。但是报错说“空间不足”,于是去把硬盘删掉,这样再操作,就通过了。因为两个vps在同一个机房(Fremont),所以速度很快,十几分钟就完成了。

启动vps,但失败了,发现是用的原来的启动配置,注意到在 Select Configuration Profiles 里有两个配置,默认选中的是原来的配置,改选中用另一个,再启动,成功。把前一个启动配置删掉,只保留可用的这个。

ssh连接,提示WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

因为RSA host key变了,所以ssh警告。

$ vim ~/.ssh/known_hosts

把旧的rsa key删掉,保存,再ssh连接,正常进入。

因为在vps上没有使用本机静态ip地址的配置,所以不需要做任何设置修改,直接运行了。

nginx编译后写入/etc/rc.local,所以自动启动了。

测试clone迁移后的vps上的站点是否正常运行,把浏览器的代理设置成vps ip地址80端口,然后通过域名访问,但wordpress提示“无法连接数据库”,难道是迁移后mysql挂了?ssh上检查没有mysqld的进程,想起好像当时没有把mysqld 设置为自动启动,于是到setup里查看,果然。设置自动启动,然后/etc/init.d/mysqld start ,然后再次访问网站,完全正常!

再检查了一下其它站点、备份数据之类,确认没有问题,到dnspod上把域名解析到新的vps上,然后两边都运行着,这样dns解析没有生效的用户,访问旧vps还是可以正常打开的,不至于造成流量丢失,或者被se蜘蛛“反感”。

几个小时后,把旧vps关掉,再次确认没有问题,这下就可以撤销掉旧vps了,今天8月1号,或许这一个月的费用就可以不付了。撤销掉vps后,看到账单里有个0.64刀的账单,看来这个月还是算用了一天吧。不过也还好,至省下了8-9月两个月的vps费用,好歹也两百多RMB。接着给客服发了个ticket,问问是remove掉vps后否还有其它事情要做,客服说要付掉那0.64的账单,别的没有。

于是付款,然后,没事了。写下这篇文章记念一下。

简单命令对mysql数据库的备份与还原

使用phpMyAdmin备份mysql数据库

备份mysql的最简单方法是的使用phpMyAdmin的“导出”功能,导出成sql文件,不用管其它选项,只管导出就可以,这就是mysql标准的备份文件。

导出时,一般不要勾选压缩选项。因为如果备份文件大到一定程度,就会因为php分配不到足够内存而死掉;经验是50M以上的表,就不要压缩了。这是个蛋疼的事情:小文件不值得压缩,大了反而压缩不动。所以不压缩就是了。

还原mysql数据库

要还原mysql数据库时,使用phpMyAdmin是个简单的方法,但更容易因为备份文件过大而超过php内存限制而死掉,这时你会有种痛不欲生的感觉。

推荐使用命令行连接mysql,以source命令导入还原,这个导入过程是件愉悦的事情。

不幸的是如果你在windows下,会比较啰嗦:

把你的mysql备份文件放到一个比较浅的目录里,比如放在 E:\120507.sql ,你要还原的数据库叫mydata

找到你的mysql安装在哪里,假如你的mysql安装在D:\Program Files\MySQL\MySQL Server 5.0 ,那么你的mysql命令行客户端将位于D:\Program Files\MySQL\MySQL Server 5.0\bin ,按着按下面的步骤来:

  • 1. 开始-运行,输入cmd,确定,你将进入命令行界面
  • 2. 输入 d: 然后回车,进入D盘
  • 3. 输入cd "D:\Program Files\MySQL\MySQL Server 5.0\bin" 再回车(注意,如果路径中有空格,那引号是必须的)
  • 4. 输入mysql -uroot -p123456 --default-character-set=utf8 --max_allowed_packet=16777216 --net_buffer_length=16384 回车(假设你的mysql的root用户密码是123456, 注意,这里u与p后面带不带空格都可以,我习惯不带; 你只需改这行命令里的密码部分,其它不需要改变,照用即可)
  • 你将看到

    注意到光标闪烁处的mysql> ,这就说明已经成功连接到本机的mysql数据库。
  • 输入use mydata 回车 ,进入mydata数据库
  • 输入source E:\120507.sql 回车,你将看到一行行快速滚动的信息。滚动完毕就导入完成了。
  • 输入exit驾车即可。回到phpmyadmin里看导入的结果吧.

核心回顾

mysql备份,使用phpMyAdmin,导出需要的表,或整个数据库,注意最好不要勾选压缩

还原,使用命令行客户端连上mysql服务器,mysql -uroot -p123456 --default-character-set=utf8 --max_allowed_packet=16777216 --net_buffer_length=16384,然后use mydata进入需要还原的数据库,运行source x:\bakup_file.sql 导入备份。

excel表格导入mysql方法(手工导入)

这不是最好的办法,但对于只导一次的数据,却是一个有效的方法,虽然非常麻烦。

microsoft office/excel 在日常的应用中,还是相当广泛,但它不是个好工具。把excel导入mysql表,是一个无法忍受的麻烦工作;尤其是表格里带大字段的列,使用phpMyAdmin导入经常是失败的。如果你也遇到这种问题,可以尝试以下方法。

1. 在excel里选中所有数据列,执行替换,把 ' 替换成 \' (把单引号替换成斜杠加单引号,即mysql中的单引号转义)

2. 在excel表格里插入一列,根据mysql表结构,写个excel公式,其实只是个字符串拼接操作,目的是构造一个mysql插入语句,形式大至如下

="insert into `article`(cat_id,title,content,add_time) values('"&D3&"','"&A3&"','"&B3&"',1330516016);"

3. 复制该列,并作为新列粘贴值到旁边(选择性粘贴);或者粘贴到新表格里也可以。

4. 除了刚才的新数据列,把其它列全部删掉,另存为unicode文本格式(实际是utf-16的csv)。

5. 使用记事本打/或其它纯文本编辑工具打开该文件,另存为utf-8编码。(windows下所谓的unicode格式实际是utf-16,这是M$在误导大家)

6. 使用editplus等文本编辑工具,打开该utf-8格式的文件,查找替换,把 ""  替换成 " (两个连续单引号替换成一个单引号); 因为M$的CSV使用两个双引号来转义双引号,这是个非常愚蠢的约定!MS/windows很多地方都是这样愚蠢的做双字符转义!而标准的csv使用斜杠做特殊字符转义的。

7. 把 "\n\" (行尾双引号与下一行的双引号) 替换成 \n (亦即把行首及行尾的双引号删掉)

8. 把文件最开头及文件最末尾的双引号删掉。

9. 现在就是可以在mysql里执行的insert插入语句了,拿到mysql里执行吧。如果数据量大,推荐使用mysql命令行下导入,连接时最好加上参数 --default-character-set=utf8 ,这样不容易出现乱码。

mysql -uroot -p --default-character-set=utf8

php 通过mssql_xx函数读mssql 2005记录, text/ntext字段非常速度慢

使用php写的web程序,从mssql 2005读取一个文章列表,要读取出文章内容,在列表页面里显示出一部分,起先使用:

SELECT top 20 [id],[title],[content], FROM [news] where xxx

这是很自然直接的写法,但是发现运行速度非常的慢,浏览器访问经常要花费好几秒到几十秒才打开页面,慢的时候还会php脚本执行的超时;该表建有必要的索引,数据量只有几万条而已。通过定时追踪发现问题就出在这个语句上,改成如下的形式:

 $sql="SELECT top $pagesize * from 
    (
        SELECT top $top [id],[title]
         ,convert(varchar(30),[updatetime],120) as [updatetime] ,[keyword]
         ,[picture],convert(varchar(500),content) as concent
        FROM [news] ";
 $sql = $sql.$sql_where." 
        order by updatetime desc
    ) as bb order by updatetime asc";

目的是方便分页,不读取出没用的记录。但事实上并没有起色,还是非常慢(这个写法读出来的记录集其实是倒序的,要在读出到数组里后使用array_reverse来反转一下)。而当把sql语句里的content字段去掉不读,就会快如飞一般。就算是改换$sql_where 里的条件也一样的快(这样mssql就不会使用其内部缓存,方便比较语句效率)。

这么看,text型字段实在是mssql里sql语句效率的杀手;可悲的是,这个内容字段是一定要读取的,这是web系统的功能要求,使用缓存是一个方法,但就算使用缓存,在生成缓存时,也一样会非常慢,甚至超时。

几乎是异想天开的念头:拆成多个语句,先读出不带text字段的记录集,再通过php程序遍历id号,然后一条一条的读出text字段,并拼到结果数组里,没想到,居然速度快多了,打开速度维持在0.5秒内,虽然并不够理想。

实在是无法想像,无法理解为什么是这样子!

代码大致如下:

function get_content($id)
{
	global $conn;
	$content='';
	$sql='select convert(varchar(max),content) as content FROM [news] where id='.(int)$id;
	$rs=mssql_query($sql,$conn);
	if($row=mssql_fetch_assoc($rs)){
		$content=$row['content'];
	}
	$content=substr(strip_tags($content),0,500);
	return $content;
}

$top=($page +1)*$pagesize ;
 $sql="SELECT top $pagesize * from (SELECT top $top [id],[title] ,convert(varchar(30),[updatetime],120) as [updatetime] ,[keyword],[picture] FROM [news] "; $sql = $sql.$sql_where." order by updatetime desc) as bb order by updatetime asc";
$rs=mssql_query($sql,$conn) or die($sql);
$data=array();
while($row=mssql_fetch_assoc($rs)){
	$row=$row+array(
		'content' => get_content($row['id'])
		);

	$data[]=$row;
}
$data=array_reverse($data);

关于流氓

http://comment.tech.163.com/tech_bbs/78JBAHK5000915BF.html
最新跟贴 (跟贴6条 有6人参与)

网易网友网易网友 ip:*.*.*.* 2011-07-10 11:19:53 发表

网易广东省深圳市网友(112.95.*.*)的原贴: 1

TABLE(Tencent、Alibaba、Baidu、Leijun、Zhouhongyi)
求解 zhouhongyi? 是谁

网易北京市网友 [姜义铮]: 2

就是那个流氓360

如果你网龄超过6年的话,应该知道有个叫“3721上网助手”的软件,几乎就是是“流氓软件”这个概念的代名词,就是现在360老板的作品。昔日的流氓换了身衣服、戴了个领章,称自己是公共保安。

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

如果你网龄超过6年的话,应该知道有个叫“3721上网助手”的软件,几乎就是是“流氓软件”这个概念的代名词,就是现在360老板的作品。昔日的流氓换了身衣服、戴了个领章,称自己是公共保安。

不引用外部图片文件,实现往网页html里插入图片

看这是一张图片,但并没有文件引用任何外部图片文件而是直接写在html里的base64代码!

形式大致如下

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnoAAAHfCAIAAABI8eKbAAAgAElEQVR4nOydd3wTR/r/1+buUn65S7+7XL6XS3I50i+FJHQwSYAkdEyH0EMgGEwH021sg42pNsWYZooLxr1X2ZYsd8tW79XqXe5F3t8faxRFWq3WnXDzvN4vv1azz8w8M7szH83uag3R

今天实然发现的,windows下prt src 抓屏,直接在wordpress后台编辑器里ctrl+v粘贴即可。

vps参考资料/收集供个人参考

【Tips】这篇文章没什么价值,请忽略吧。本站右侧栏靠上位置有VPS推荐,可以参考。

https://www.diahosting.com/index.html   中国人在美国搞的,DiaHosting旨在为广大中国站长提供自主管理的美国优质VPS,我们的所有VPS均采用Xen虚拟技术,保证了VPS的质量,同时我们也是国内首 家提供Xen-Shell管理平台的VPS供应商,加上我们二次开发的重装系统功能,Xen-Shell完全可以满足用户需求,我们也会根据客户的需要加 入更多功能。

 

国外域名主机商推荐-大海推荐

我个人推荐的域名主机服务商

 

比较便宜的3$/mo http://virpus.com/budget-vps/

http://www.yardvps.com/openvz.php  电信访问速度一般,网通超快,支付宝

http://www.burst.net/linvps.shtml  Memory: 512MB GUARANTEED IP Addresses: 2 (IPv4) + IPv6 $5.95/MONTH