Nov
16
早上用proxy_ajp的时候,总是出现
刚刚翻了一下apache的error log
发现有这么一句话:
然后上网搜了一下,原来是这个原因:
zz from http://rimuhosting.com/mod_jk2_and_mod_proxy_ajp.jsp
也就是说只要打开 /etc/apache2/mods-enabled/proxy.conf,然后修改Deny From all为 Deny From none 就OK了!!!
天。。。。。。。。
引用
403 Forbidden
You don't have permission to ooxx/ooxx
You don't have permission to ooxx/ooxx
刚刚翻了一下apache的error log
发现有这么一句话:
引用
[Sun Nov 16 08:44:13 2008] [error] [client 127.0.0.1] client denied by server configuration: proxy:ajp://localhost:8009/oak/
然后上网搜了一下,原来是这个原因:
zz from http://rimuhosting.com/mod_jk2_and_mod_proxy_ajp.jsp
引用
If you get an error in the Apache error log like
client denied by server configuration: proxy:ajp://127.0.0.1:8009/tomcat
then you may need to enable Proxying. e.g. on Ubuntu/Debian systems change the Proxy * setting from Deny all to Deny none in /etc/apache2/mods-enabled/proxy.conf
client denied by server configuration: proxy:ajp://127.0.0.1:8009/tomcat
then you may need to enable Proxying. e.g. on Ubuntu/Debian systems change the Proxy * setting from Deny all to Deny none in /etc/apache2/mods-enabled/proxy.conf
也就是说只要打开 /etc/apache2/mods-enabled/proxy.conf,然后修改Deny From all为 Deny From none 就OK了!!!
天。。。。。。。。
Nov
15
#include<iostream>
#include<vector>
#include<iterator>
#include<algorithm>
using namespace std;
int main(){
vector<int>a;
copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(a));
sort(a.begin(), a.end());
copy(a.begin(), a.end(), ostream_iterator<int>(cout, " "));
return 0;
}
#include<vector>
#include<iterator>
#include<algorithm>
using namespace std;
int main(){
vector<int>a;
copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(a));
sort(a.begin(), a.end());
copy(a.begin(), a.end(), ostream_iterator<int>(cout, " "));
return 0;
}
Nov
15
----
20081117补注:不对头。。每天的数据就根本没有存进去了,囧啊。。
---
一年的时间过去了,Felix's Blog的访问量从0涨到了23w,很不错。
不过里面恐怕大部分是来自于baidu和google,还有微软的spider
所以一直很想把它们的访问屏蔽了,不记录到访问量里面去。
前些天试了一下,发现bo-blog代码比较乱,找不到是什么地方进行的修改
今天详细看了一下find的用法,终于找到了源码
$ cd blog
$ find ./ -type f -name "*.php" -exec grep "\{\$blog_prefix\}history" "{}" \; -print
于是就找到了这个文件: global.php
大概在280行有个函数 savehistory
我在里面添加了如下一段代码:
不知道效果怎么样,看看今天的访问量吧^^
20081117补注:不对头。。每天的数据就根本没有存进去了,囧啊。。
---
一年的时间过去了,Felix's Blog的访问量从0涨到了23w,很不错。
不过里面恐怕大部分是来自于baidu和google,还有微软的spider
所以一直很想把它们的访问屏蔽了,不记录到访问量里面去。
前些天试了一下,发现bo-blog代码比较乱,找不到是什么地方进行的修改
今天详细看了一下find的用法,终于找到了源码
$ cd blog
$ find ./ -type f -name "*.php" -exec grep "\{\$blog_prefix\}history" "{}" \; -print
于是就找到了这个文件: global.php
大概在280行有个函数 savehistory
我在里面添加了如下一段代码:
//对搜索引擎不增加visit的数量 By Felix021
$UA = strtolower($_SERVER['HTTP_USER_AGENT']);
if(!(strpos($UA, 'baidu') === false && strpos($UA, 'google') === false
&& strpos($UA, 'yahoo') === false && strpos($UA, 'microsoft') === false
&& strpos($UA, 'msnbot') === false && strpos($UA, 'yodao') === false))
return;
$UA = strtolower($_SERVER['HTTP_USER_AGENT']);
if(!(strpos($UA, 'baidu') === false && strpos($UA, 'google') === false
&& strpos($UA, 'yahoo') === false && strpos($UA, 'microsoft') === false
&& strpos($UA, 'msnbot') === false && strpos($UA, 'yodao') === false))
return;
不知道效果怎么样,看看今天的访问量吧^^
Nov
6
详细说一下feli遇到的问题。
首先需要了解一下,硬盘的0柱面0磁道1扇区保存了一个512Bytes的结构信息,叫做MBR(Main Boot Record),中文名为“主引导记录”。我们的电脑启动的时候,在开机POST自检后就会将MBR载入内存,然后运行MBR中的代码。在MBR前446个字节是引导代码,接下来的64个字节叫做硬盘分区表(Partition Table),其中保存了一个包含4个16字节记录的结构,每个记录里保存了硬盘中一个分区的信息(起始地址、分区类型、可否引导等),最后再跟上两个字节0x55 0xAA表示MBR结束。因此硬盘最多可以有4个分区,可以是4个主分区,也可以最多是3个主分区和1个扩展分区;每个扩展分区又可以分成数个逻辑分区。每个分区的第一个扇区(512Bytes)也保存了一个类似MBR的文件结构,叫做DBR,如果是逻辑分区的DBR,还包含了下一个逻辑分区的信息(起始地址等);这样就构成了我们平时见到的所有的硬盘分区方式。
windows在安装过程中会修改MBR的内容,把启动代码替换成它自己的启动代码,同时会把它的引导文件(NTLDR, NTDETECT.COM, BOOT.ini)放到一个主分区中,并且在MBR的记录中标记这个分区是可启动的,然后就会通过BIOS->MBR->可引导分区DBR->NTLDR(读取boot.ini的配置)->Windows 这样的顺序启动Windows。所以在安装windows的时候,必须要有一个主分区是windows可以识别并读写的,比如fat16/fat32/ntfs等。
feli的硬盘分区比较奇怪,第一个主分区是linux的swap分区,剩下的是一个扩展分区,里面包含了2个linux的ext3分区和一个ntfs分区。这样的分区结构是不适合直接安装windows的,他把XP安装到了那个ntfs分区中,于是在安装完以后,系统就根本无法启动了,在启动的时候显示类似 Invalid ooxx 之类的错误;启动Ubuntu 8.10 LiveCD的Partition Editor,发现整个硬盘的分区结构已经消失了,变成一整个未分区的硬盘。
分析可知是windows修改了MBR中的分区表,可能是改成了从那个swap分区启动,也可能是修改成了从那个ntfs分区启动,总而言之是无法正常启动的;但是肯定没有修改其他分区的结构,也就是说只要重建了分区表就OK。于是到我的机器上找了一下,发现在深山红叶V30里面有一个MHDD硬盘修复软件,可以自动搜索分区并写入分区表,重建MBR的结构。
于是刻了一张盘,到Feli的机器上,从CD启动,选择引导到DOS工具箱,引导到帮助菜单以后,输入MHDD,回车,进入这个软件,会提示(英文)你硬盘上没有分区,是否需要搜索,选择yes,然后会问你是自动(Auto)还是交互式(Interactive),以及取消。最好是选择Interactive,然后会在搜索到一个分区以后显示分区的起始位置以及大小,并提示你是否需要保存到分区表,大概对比一下你的硬盘结构,如果是,就选择save。很快就会把硬盘搜索完,然后会进入它的主界面,就可以看到恢复出的硬盘结构。选择第一个菜单(貌似是General),选择Save,退出,重启,Oh yeah,见到了熟悉的Ubuntu 8.10 ^^
首先需要了解一下,硬盘的0柱面0磁道1扇区保存了一个512Bytes的结构信息,叫做MBR(Main Boot Record),中文名为“主引导记录”。我们的电脑启动的时候,在开机POST自检后就会将MBR载入内存,然后运行MBR中的代码。在MBR前446个字节是引导代码,接下来的64个字节叫做硬盘分区表(Partition Table),其中保存了一个包含4个16字节记录的结构,每个记录里保存了硬盘中一个分区的信息(起始地址、分区类型、可否引导等),最后再跟上两个字节0x55 0xAA表示MBR结束。因此硬盘最多可以有4个分区,可以是4个主分区,也可以最多是3个主分区和1个扩展分区;每个扩展分区又可以分成数个逻辑分区。每个分区的第一个扇区(512Bytes)也保存了一个类似MBR的文件结构,叫做DBR,如果是逻辑分区的DBR,还包含了下一个逻辑分区的信息(起始地址等);这样就构成了我们平时见到的所有的硬盘分区方式。
windows在安装过程中会修改MBR的内容,把启动代码替换成它自己的启动代码,同时会把它的引导文件(NTLDR, NTDETECT.COM, BOOT.ini)放到一个主分区中,并且在MBR的记录中标记这个分区是可启动的,然后就会通过BIOS->MBR->可引导分区DBR->NTLDR(读取boot.ini的配置)->Windows 这样的顺序启动Windows。所以在安装windows的时候,必须要有一个主分区是windows可以识别并读写的,比如fat16/fat32/ntfs等。
feli的硬盘分区比较奇怪,第一个主分区是linux的swap分区,剩下的是一个扩展分区,里面包含了2个linux的ext3分区和一个ntfs分区。这样的分区结构是不适合直接安装windows的,他把XP安装到了那个ntfs分区中,于是在安装完以后,系统就根本无法启动了,在启动的时候显示类似 Invalid ooxx 之类的错误;启动Ubuntu 8.10 LiveCD的Partition Editor,发现整个硬盘的分区结构已经消失了,变成一整个未分区的硬盘。
分析可知是windows修改了MBR中的分区表,可能是改成了从那个swap分区启动,也可能是修改成了从那个ntfs分区启动,总而言之是无法正常启动的;但是肯定没有修改其他分区的结构,也就是说只要重建了分区表就OK。于是到我的机器上找了一下,发现在深山红叶V30里面有一个MHDD硬盘修复软件,可以自动搜索分区并写入分区表,重建MBR的结构。
于是刻了一张盘,到Feli的机器上,从CD启动,选择引导到DOS工具箱,引导到帮助菜单以后,输入MHDD,回车,进入这个软件,会提示(英文)你硬盘上没有分区,是否需要搜索,选择yes,然后会问你是自动(Auto)还是交互式(Interactive),以及取消。最好是选择Interactive,然后会在搜索到一个分区以后显示分区的起始位置以及大小,并提示你是否需要保存到分区表,大概对比一下你的硬盘结构,如果是,就选择save。很快就会把硬盘搜索完,然后会进入它的主界面,就可以看到恢复出的硬盘结构。选择第一个菜单(貌似是General),选择Save,退出,重启,Oh yeah,见到了熟悉的Ubuntu 8.10 ^^
Nov
6
收藏一些东西,回头去看。
http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html
http://tech.itzero.com/2008/0325/23375.html
http://blog.chinaunix.net/u2/62281/showart_502251.html
fork()
getpid()
alarm()
settimer()
/*
Linux 下信号列表
http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html
http://tech.itzero.com/2008/0325/23375.html
http://blog.chinaunix.net/u2/62281/showart_502251.html
fork()
getpid()
alarm()
settimer()
/*
Linux 下信号列表
Nov
5
Cannot connect to the mysql server.Error:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
cpp可以正常编译,但是在连接数据库时会出现这个错误
是因为没有在mysql_real_connect里面指定参数,应该这样:
mysql_real_connect(ssock,"localhost","root","password","databaseName",0,"/tmp/mysql.sock",0)
如果是在mysql -uroot -p的时候出现这个错误
则应该查看一下mysql的配置文件,找到socket文件的位置如 /tmp/mysql.sock
然后 mysql -uroot -p --socket=/tmp/mysql.sock
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
cpp可以正常编译,但是在连接数据库时会出现这个错误
是因为没有在mysql_real_connect里面指定参数,应该这样:
mysql_real_connect(ssock,"localhost","root","password","databaseName",0,"/tmp/mysql.sock",0)
如果是在mysql -uroot -p的时候出现这个错误
则应该查看一下mysql的配置文件,找到socket文件的位置如 /tmp/mysql.sock
然后 mysql -uroot -p --socket=/tmp/mysql.sock
Nov
4
这两天在看密码学的大作业,写一个DES加密程序,里面有很多涉及位运算的东西。
虽然直接用bitset写,但是非常非常地不顺手,于是自己写了一个类,里头有DES需要的运算,恩。
如果谁发现有错的话,麻烦告诉我一声。
好久没有写这样的代码了,一个简单的类居然花了这么久。囧。
虽然直接用bitset写,但是非常非常地不顺手,于是自己写了一个类,里头有DES需要的运算,恩。
如果谁发现有错的话,麻烦告诉我一声。
好久没有写这样的代码了,一个简单的类居然花了这么久。囧。