U盘安装Centos[转]

参考:
http://blog.chinaunix.net/uid-27666459-id-3342477.html

所需工具:文件
一、UltraISO(用来制作 U 盘启动)
二、CentOS 6.3 32 位系统镜像(建议下载bin版镜像)
三、U 盘一只
要求:U 盘容量 8G
四、vesamenu.c32 文件——用来替换 CentOS 6.3 默认文件(附件中我提供了哦,解压缩后替换原来的文件)

安装步骤:
一、制作 U 盘启动引导盘
1、电脑插上 U 盘,打开 UltraISO 软件,文件—打开,选择你下载好的CentOS-6.3-i386-bin-DVD1.iso 文件,点启动–写入硬盘镜像,在硬盘驱动器里面选择你的 U 盘(看清楚,千万别选错),写入方式默认为:USB-HDD+,然后点格式化。格式化完成后,关闭对话框,然后再点写入,等几分钟,完成后,点返回,然后关闭 UltraISO。
2、打开 U 盘根目录下面的 syslinux 文件夹,用附件中的 vesamenu.c32 替换里面原有
的文件。
3、删除 U 盘根目录下面的 Packages 文件夹(不删除也可以,如果你U盘空间足够大)
4、把下载好的系统镜像 CentOS-6.3-i386-bin-DVD1.iso和CentOS-6.3-i386-bin-DVD2.iso 复制到 U 盘根目录下面。(不用改名字,安装时会自动识别)
至此,U 盘启动盘制作完成,然后退出 U 盘,这个 U 盘现在已经可以用来安装 CentOS 6.3 了。
二、安装 CentOS 6.3
1、开机设置 U 盘第一启动,重启之后会出来安装界面:
默认选择第一项,回车。
2、出现安装过程中使用的语言界面:
选择 Chinese(Simplified),简体中文,然后回车
3、出现语言确认界面直接回车
4、下面出现键盘模式选择界面:
选择键盘模式,默认
5、定位在 Hard drive 上, directory holding image此项不用填写,系统会自动去填写。(其实这项是搜索image目录下的install.img文件)选择 OK,按回车
6、这里的/dev/sdb4 代表你的 U 盘分区,我们前面已经把系统镜像拷贝到 U 盘根目录下面了,这里系统会自动识别
7、直接点 OK,会出现安装界面:

MySQL触发器

1、触发器定义就不说了,既然能看到我这个文章就肯定明白这个定义了。用途也不多说,来看继续向下看吧!
触发器语法:
CREATE TRIGGER <触发器名称> 触发器必须有名字,最多64个字符,可能后面会附有分隔符.
{ BEFORE | AFTER } 触发器有执行的时间设置:可以设置为事件发生前或后。
{ INSERT | UPDATE | DELETE } 同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。

ON <表名称> 触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活.
注意:我们不能给同一张表的同一个事件安排两个触发器。
FOR EACH ROW 触发器的执行间隔:FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次。
<触发器SQL语句> 触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句, 包括复合语句,但是这里的语句受的限制和函数的一样。

Continue reading

centos搭建svn使用mysql管理认证

1、安装

yum install subversion

安装ssl,mysql认证模块等(如果使用http或者svn访问就不用ssl了)

yum install openssl openssl-devel

yum install mod_ssl mod_auth_mysql mod_dav_svn

检查模块是否安装
/etc/httpd/modules

2、创建项目库父路径

mkdir /var/www/html/svn
授权文件夹归属为apache用户

3、初始化版本库

svnadmin create /var/www/html/svn/web (这样的命令可以创建多个版本库)

4、创建svn认证数据库

mysql -u root -p
create database svn;
use svn;

CREATE TABLE IF NOT EXISTS `user` (
`username` varchar(20) CHARACTER SET utf8 NOT NULL,
`password` varchar(32) CHARACTER SET utf8 NOT NULL,
KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `svn`.`user` (`username`, `password`) VALUES (‘Joyous’, MD5(‘Joyous’));

5、配置权限以及认证方式

vi /etc/httpd/conf/httpd.conf

添加如下

LoadModule mysql_auth_module modules/mod_auth_mysql.so

Include conf/httpd-svn.conf
touch /etc/httpd/conf/httpd-svn.conf

文件内容(这个先配置一下使用普通文件认证)

<Location /svn/web>
DAV svn
SVNPath /var/www/html/svn/web
Authtype Basic
AuthName “Joyous SVN”
AuthMYSQLEnable on
AuthMYSQLHost localhost
AuthMYSQLPort 3306
AuthMYSQLUser root
AuthMYSQLPassword Joyous
AuthMYSQLDB svn
AuthMYSQLUserTable user
AuthMYSQLNameField username
AuthMYSQLPasswordField password
AuthMYSQLPwEncryption md5
Require valid-user
</Location>
这个添加密码需要使用这样的方式添加
重启apache

附:如果有问题可以检查下是否加载了mysql认证模块

Centos搭建svn

PS:先贴出来一个文件认证的,稍后奉献使用数据库认证

1、安装

yum install subversion

yum install mod_dav_svn

检查模块是否安装
/etc/httpd/modules

2、创建项目库父路径

mkdir /var/www/html/svn

3、初始化版本库

svnadmin create /var/www/html/svn/web (这样的命令可以创建多个版本库)

4、配置权限以及认证方式

vi /etc/httpd/conf/httpd.conf

最后面添加
Include conf/httpd-svn.conf
touch /etc/httpd/conf/httpd-svn.conf

文件内容(这个先配置一下使用普通文件认证)

<Location /svn>
DAV svn
SVNPath /var/www/html/svn/web
Authtype Basic
AuthName “SVN”
AuthUserFile /etc/subversion/passwd
Require valid-user
</Location>
修改 vi /var/www/html/svn/web/conf/svnserve.conf

设定没有授权用户无法访问,设定授权用户可以有读写权限(注意前面不能有空格)
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
这个添加密码需要使用这样的方式添加
htppasswd -c /etc/subversion/passwd Joyous

重启apacher然后就可以访问svn地址

当这样svn用户无法写入

因为文件夹权限需要给apache

chown -R apache /var/www/html/svn

QQ互联开发小记

QQ互联登录PHP-SDK,(-1)invalid openid错误—解决方法,问题现象是:部署了PHP-SDK之后,出现有时能登录,有时不能登录的情况,错误提示是:-1 client request’s parameters are invalid, invalid openid

解决参考:http://www.windyland.com/program/php/721.htm

QQ登陆,返回页获取access_token时,显示error: 100020 msg : code is reused error

这个就是说获取token只能获取一次,一个code只能获取一次

最终:

$qc = new QC();
$callback = $qc->qq_callback();
$openid = $qc->get_openid();
$token = $qc->get_access_token();
$arr = $qc->get_user_info();
if (empty($openid) || empty($token) || empty($callback) || count($arr) <= 0) {
echo ‘获取用户信息异常,请重新尝试’;
exit;
}
$qc = new QC($token, $openid);

附:我输出token和callback结果一样~但是callback那个不能省略

PHP5.4配置Xdebug

1、下载Xdebughttp://xdebug.org/download.php(注意下载对应的版本)

2、在php.ini后面加上如下信息(我的xdebug放在ext下面你可以修改对应的目录即可)
[Xdebug]
zend_extension=”F:/wamp/php5.4/ext/php_xdebug-2.2.3-5.4-vc9.dll”
xdebug.auto_trace=On
xdebug.collect_params=On
xdebug.collect_return=On
xdebug.trace_output_dir=”F:/wamp/tmp/xdebug”
xdebug.profiler_enable=On
xdebug.profiler_output_dir=”F:/wamp/tmp/xdebug”

3、xdebug配置说明:http://xdebug.org/docs/all_settings

xdebug.auto_trace = 1

是否允许Xdebug跟踪函数调用,跟踪信息以文件形式存储,默认值为0

collect_params = 1

是否允许Xdebug跟踪函数参数,默认值为0

xdebug.collect_return = 1

是否允许Xdebug跟踪函数返回值,默认值为0

xdebug.profiler_enable = 1

打开xdebug的性能分析器,以文件形式存储,这项配置是不能以ini_set()函数配置的,默认值为0

xdebug.profiler_output_dir

性能分析文件的存放位置,默认值为/tmp

xdebug.profiler_output_name

性能分析文件的命名规则,默认值为cachegrind.out.%p

xdebug.trace_output_dir

函数调用跟踪信息输出文件目录,默认值为/tmp

xdebug.trace_output_name

PHP开发微信公共平台(验证token)ZendFramework

      
        define('TOKEN', '3FC50DEAED1083F162BB3D36FF053709');
        //这个是TOKEN,我用的是一个字符串的MD5
        $signature = $this->_request->getParam('signature', '');
        //微信加密签名,可以用$_GET['signature']
    	$timestamp = $this->_request->getParam('timestamp', '');//时间戳
    	$nonce = $this->_request->getParam('nonce', '');//随机数
    	$echostr = $this->_request->getParam('echostr', '');//随机字符串
    	/*
    	 * 加密/校验流程:
         *  1. 将token、timestamp、nonce三个参数进行字典序排序
	 *  2. 将三个参数字符串拼接成一个字符串进行sha1加密
         *  3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
    	 */
    	 $arr = array(TOKEN, $timestamp, $nonce);//组装参数
    	 sort($arr);//字典排序
    	 $str = implode($arr);//组装字符串
    	 $sha1 = sha1($str);//sha1加密
    	 if ($sha1 == $signature) {
    	 	echo  $echostr;
    	 }

官方接口例子:http://mp.weixin.qq.com/wiki/index.php?title=%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3%E6%8C%87%E5%8D%97#.E6.B3.A8.E6.84.8F.E4.BA.8B.E9.A1.B9

Zend Framework 配置404、500页面

$application->bootstrap()
->run();
修改项目index.php中代码如下

try {
$application->bootstrap()
->run();
} catch (Exception $e) {
switch ($e->getCode()) {
case 500: {
if (!(include_once ‘404.html’))
@header(“HTTP/1.x 500 Internal Server Error”);
@header(‘Status: 500 Internal Server Error’);
exit;
break;
}
default: {
if (!(include_once ‘404.html’)) {
@header(‘HTTP/1.x 404 Not Found’);
@header(‘Status: 404 Not Found’);
}
exit;
break;
}
}
}