用YUM升级CentOS系统中PHP和MySQL

用上umVPS后,很多时候在虚拟主机不用自己动手的事情都要自己搞定了,例如:PHP和MySQL的升级。因为不用自己动手,也动不了,所以冰古不太清楚虚拟主机的PHP和MySQL是不是会及时地更新。但用VPS,可以动手玩一下也保证安全,冰古是很乐意进行更新的。以下就是用YUM升级CentOS系统中PHP和MySQL的过程:

yum是CentOS系统自带的用于方便地添加/删除/更新RPM包的工具,它能自动解决包的倚赖性问题。
用yum更新PHP,只需用一条命令就可以搞定:

#yum update php


但问题来了,使用此命令后,系统告诉我,没有发现可更新的包。而当前的PHP版本只是5.2.1,PHP官方已经更新到5.2.6了。
经过一番询问,才知道原来CentOS系统的源里PHP仍旧是5.2.1,需要额外的源才能升级PHP。
根据外国网友的介绍,冰古添加了额外的源
登录SSH后依次运行下列命令:

#rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

#vi /etc/yum.repos.d/utterramblings.repo #文中这里是使用nano,但VPS不能启动nano,用vi代替也是可以的


在打开的文档中加入下面内容:

[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka


保存。
再次运行下面的命令就可以完成php的升级了

#yum update php


同理,运行下面命令,升级mysql

#yum update mysql

用PHP得到访问者的真实IP

在php中,通常我们用$_SERVER['REMOTE_ADDR']得到访问者的ip。但当访问者使用了代理,它只能得到代理的ip。这时使用下面的函数就能得到访问者的真实ip:

function getRealIpAddr(){
  if (!empty($_SERVER['HTTP_CLIENT_IP'])){//check ip from share internet
    $ip=$_SERVER['HTTP_CLIENT_IP'];
  }
  elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){//to check ip is pass from proxy
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
  }else{
    $ip=$_SERVER['REMOTE_ADDR'];
  }
  return $ip;
}

事实上这个函数也不是万能,众所周知,头信息是可以伪造的。

修正一种特殊的乱码问题

最近在使用sNews的过程中遇到一种特殊的乱码显示问题,表现为:用firefox浏览网页,该网页中的中文字符显示为乱码,但查看它的源代码却发现其中的中文字符是正常的,而且还有正确的meta指定其编码为’utf8′(<meta http-equiv="Content-Type" content="text/html;charset=utf8" />),如果在浏览器中选择编码’utf8′,网页显示正常,但刷新后,网页再次显示为乱码。

很显然,这个乱码显示问题是由于浏览器没有正确指定编码导致的。看了一下代码,发现<meta http-equiv="Content-Type" content="text/html;charset=utf8" />是由title()函数添加到模板中的,可能在此前,浏览器已为网页分配编码,但不能找到meta指定的编码,只能为该网页分配为GB2312,因此页面显示出现乱码,而源代码却是正常的。

解决的方法很简单,只需在程序开始后马上为其指定编码就行了,也即是在index.php的第二行加入<php header('content-type:text/html;charset=utf8'); ?>一句后保存即可。此时再刷新,网页已不会显示乱码了。

还是关于总结2006年的SQL

最近在看关于SQL的资料,这里再来几条SQL语句练习一下。

2006年度最多comment(&trackback&pingback)的posts

SELECT ID, Count( comment_ID ) , post_title
FROM `wp_comments` , `wp_posts`
WHERE comment_post_ID = ID
AND comment_approved = '1'
AND post_date >= '2006-01-01'
AND post_date < '2007-01-01'
GROUP BY ID
ORDER BY 2 DESC

1、更新blogbus to wordpress转换程序 (43 comments)
2、从blogbus跳转到WordPress (31 comments)
3、wordpress2.0 rss import文件分析及oblog导入 (18 comments)
4、我使用的plugins (17 comments)
5、怎样将wordpress从盘古搬到DreamHost (16 comments)

暂时还没想到更多的SQL,想好了再加吧。

用phpmyadmin备份和导入mysql数据

PHP搭配Mysql是一种流行的网页编程语言,很多的Blog和Bbs程序都是采用这种搭配,例如:Blog中的wordpress、o-blog、exblog……,BBS中discuz、phpwind……
有了空间,大家都喜欢或装个discuz跟大家聊聊喜欢的东西,或装个blog玩玩。这时候就必然需要涉及到mysql数据的备份和导入。而这个小常识,众大虾是不屑去写个教程的了,那就让我来说一下吧。
查看更多精彩内容»

Page 1 of 212»