make[1]: *** [mod_jk.lo] Error 1
[ 2009/03/31 21:00 | by selboo ]
在配置apache+tomcat时
安装jk连接器
cd /opt/tomcat/tomcat-connectors-1.2.28-src/native
./configure --with-apxs=/usr/local/apache-2.2.11/bin/apxs --with-java-home=/usr/local/jdk
make && make install
报错了
make[1]: *** [mod_jk.lo] Error 1
经过N百度 Google 终于解决了是因为编译apache忘记增加 --enable-so 参数
重新编译下apache
问题解决了
安装jk连接器
cd /opt/tomcat/tomcat-connectors-1.2.28-src/native
./configure --with-apxs=/usr/local/apache-2.2.11/bin/apxs --with-java-home=/usr/local/jdk
make && make install
报错了
make[1]: *** [mod_jk.lo] Error 1
经过N百度 Google 终于解决了是因为编译apache忘记增加 --enable-so 参数
重新编译下apache
问题解决了
>dig sina.com.cn //查询A记录
;; QUESTION SECTION:
;sina.com.cn. IN A
;; ANSWER SECTION:
sina.com.cn. 37 IN A 202.108.33.32
>dig sina.com.cn ns //查询NS记录
;; QUESTION SECTION:
;sina.com.cn. IN NS
;; ANSWER SECTION:
sina.com.cn. 21478 IN NS ns2.sina.com.cn.
sina.com.cn. 21478 IN NS ns3.sina.com.cn.
sina.com.cn. 21478 IN NS ns1.sina.com.cn.
>dig sina.com.cn soa //查询SOA记录
;; QUESTION SECTION:
;sina.com.cn. IN SOA
;; ANSWER SECTION:
sina.com.cn. 600 IN SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600
另外,还可以
dig @Server sina.com.cn. //在Server服务器上查询sina.com.cn的记录,比如
>dig @210.51.191.22 sina.com.cn
;; QUESTION SECTION:
;sina.com.cn. IN A
;; AUTHORITY SECTION:
sina.com.cn. 21600 IN NS ns1.sina.com.cn.
sina.com.cn. 21600 IN NS ns2.sina.com.cn.
sina.com.cn. 21600 IN NS ns3.sina.com.cn.
;; ADDITIONAL SECTION:
ns1.sina.com.cn. 21600 IN A 202.106.184.166
ns2.sina.com.cn. 21600 IN A 61.172.201.254
ns3.sina.com.cn. 21600 IN A 202.108.44.55
# 查找一个域的授权 dns 服务器
dig sina.com.cn. +nssearch
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns1.sina.com.cn in 31 ms.
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns3.sina.com.cn in 31 ms.
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns2.sina.com.cn in 46 ms.
# 从根服务器开始追踪一个域名的解析过程
>dig news.sina.com.cn +trace
;; global options: printcmd
. 518138 IN NS A.ROOT-SERVERS.NET.
. 518138 IN NS B.ROOT-SERVERS.NET.
. 518138 IN NS C.ROOT-SERVERS.NET.
. 518138 IN NS D.ROOT-SERVERS.NET.
. 518138 IN NS E.ROOT-SERVERS.NET.
. 518138 IN NS F.ROOT-SERVERS.NET.
. 518138 IN NS G.ROOT-SERVERS.NET.
. 518138 IN NS H.ROOT-SERVERS.NET.
. 518138 IN NS I.ROOT-SERVERS.NET.
. 518138 IN NS J.ROOT-SERVERS.NET.
. 518138 IN NS K.ROOT-SERVERS.NET.
. 518138 IN NS L.ROOT-SERVERS.NET.
. 518138 IN NS M.ROOT-SERVERS.NET.
;; Received 228 bytes from 192.168.1.1#53(192.168.1.1) in 15 ms
cn. 172800 IN NS C.DNS.cn.
cn. 172800 IN NS D.DNS.cn.
cn. 172800 IN NS E.DNS.cn.
cn. 172800 IN NS NS.CERNET.NET.
cn. 172800 IN NS A.DNS.cn.
cn. 172800 IN NS B.DNS.cn.
;; Received 297 bytes from 198.41.0.4#53(A.ROOT-SERVERS.NET) in 281 ms
sina.com.cn. 21600 IN NS ns3.sina.com.cn.
sina.com.cn. 21600 IN NS ns1.sina.com.cn.
sina.com.cn. 21600 IN NS ns2.sina.com.cn.
;; Received 136 bytes from 203.119.29.1#53(E.DNS.cn) in 171 ms
news.sina.com.cn. 60 IN CNAME jupiter.sina.com.cn.
jupiter.sina.com.cn. 60 IN CNAME hydra.sina.com.cn.
hydra.sina.com.cn. 60 IN A 218.30.108.61
hydra.sina.com.cn. 60 IN A 218.30.108.62
hydra.sina.com.cn. 60 IN A 218.30.108.63
hydra.sina.com.cn. 60 IN A 218.30.108.64
hydra.sina.com.cn. 60 IN A 218.30.108.65
hydra.sina.com.cn. 60 IN A 218.30.108.66
hydra.sina.com.cn. 60 IN A 218.30.108.67
hydra.sina.com.cn. 60 IN A 218.30.108.68
hydra.sina.com.cn. 60 IN A 218.30.108.69
hydra.sina.com.cn. 60 IN A 218.30.108.72
hydra.sina.com.cn. 60 IN A 218.30.108.73
hydra.sina.com.cn. 60 IN A 218.30.108.74
hydra.sina.com.cn. 60 IN A 218.30.108.55
hydra.sina.com.cn. 60 IN A 218.30.108.56
hydra.sina.com.cn. 60 IN A 218.30.108.57
hydra.sina.com.cn. 60 IN A 218.30.108.58
sina.com.cn. 86400 IN NS ns1.sina.com.cn.
sina.com.cn. 86400 IN NS ns2.sina.com.cn.
sina.com.cn. 86400 IN NS ns3.sina.com.cn.
;; Received 434 bytes from 202.106.184.166#53(ns1.sina.com.cn) in 31 ms
从上面的记录,我们可以看到整个的流程,从根服务器查询到cn的根服务器,然后查询到sina.com.cn的名字服务器,
news.sina.com.cn -> jupiter.sina.com.cn -->hydra.sina.com.cn 最后得到hydra的服务器IP。
;; QUESTION SECTION:
;sina.com.cn. IN A
;; ANSWER SECTION:
sina.com.cn. 37 IN A 202.108.33.32
>dig sina.com.cn ns //查询NS记录
;; QUESTION SECTION:
;sina.com.cn. IN NS
;; ANSWER SECTION:
sina.com.cn. 21478 IN NS ns2.sina.com.cn.
sina.com.cn. 21478 IN NS ns3.sina.com.cn.
sina.com.cn. 21478 IN NS ns1.sina.com.cn.
>dig sina.com.cn soa //查询SOA记录
;; QUESTION SECTION:
;sina.com.cn. IN SOA
;; ANSWER SECTION:
sina.com.cn. 600 IN SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600
另外,还可以
dig @Server sina.com.cn. //在Server服务器上查询sina.com.cn的记录,比如
>dig @210.51.191.22 sina.com.cn
;; QUESTION SECTION:
;sina.com.cn. IN A
;; AUTHORITY SECTION:
sina.com.cn. 21600 IN NS ns1.sina.com.cn.
sina.com.cn. 21600 IN NS ns2.sina.com.cn.
sina.com.cn. 21600 IN NS ns3.sina.com.cn.
;; ADDITIONAL SECTION:
ns1.sina.com.cn. 21600 IN A 202.106.184.166
ns2.sina.com.cn. 21600 IN A 61.172.201.254
ns3.sina.com.cn. 21600 IN A 202.108.44.55
# 查找一个域的授权 dns 服务器
dig sina.com.cn. +nssearch
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns1.sina.com.cn in 31 ms.
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns3.sina.com.cn in 31 ms.
SOA ns1.sina.com.cn. senjin.staff.sina.com.cn. 5 1800 600 604801 600 from server ns2.sina.com.cn in 46 ms.
# 从根服务器开始追踪一个域名的解析过程
>dig news.sina.com.cn +trace
;; global options: printcmd
. 518138 IN NS A.ROOT-SERVERS.NET.
. 518138 IN NS B.ROOT-SERVERS.NET.
. 518138 IN NS C.ROOT-SERVERS.NET.
. 518138 IN NS D.ROOT-SERVERS.NET.
. 518138 IN NS E.ROOT-SERVERS.NET.
. 518138 IN NS F.ROOT-SERVERS.NET.
. 518138 IN NS G.ROOT-SERVERS.NET.
. 518138 IN NS H.ROOT-SERVERS.NET.
. 518138 IN NS I.ROOT-SERVERS.NET.
. 518138 IN NS J.ROOT-SERVERS.NET.
. 518138 IN NS K.ROOT-SERVERS.NET.
. 518138 IN NS L.ROOT-SERVERS.NET.
. 518138 IN NS M.ROOT-SERVERS.NET.
;; Received 228 bytes from 192.168.1.1#53(192.168.1.1) in 15 ms
cn. 172800 IN NS C.DNS.cn.
cn. 172800 IN NS D.DNS.cn.
cn. 172800 IN NS E.DNS.cn.
cn. 172800 IN NS NS.CERNET.NET.
cn. 172800 IN NS A.DNS.cn.
cn. 172800 IN NS B.DNS.cn.
;; Received 297 bytes from 198.41.0.4#53(A.ROOT-SERVERS.NET) in 281 ms
sina.com.cn. 21600 IN NS ns3.sina.com.cn.
sina.com.cn. 21600 IN NS ns1.sina.com.cn.
sina.com.cn. 21600 IN NS ns2.sina.com.cn.
;; Received 136 bytes from 203.119.29.1#53(E.DNS.cn) in 171 ms
news.sina.com.cn. 60 IN CNAME jupiter.sina.com.cn.
jupiter.sina.com.cn. 60 IN CNAME hydra.sina.com.cn.
hydra.sina.com.cn. 60 IN A 218.30.108.61
hydra.sina.com.cn. 60 IN A 218.30.108.62
hydra.sina.com.cn. 60 IN A 218.30.108.63
hydra.sina.com.cn. 60 IN A 218.30.108.64
hydra.sina.com.cn. 60 IN A 218.30.108.65
hydra.sina.com.cn. 60 IN A 218.30.108.66
hydra.sina.com.cn. 60 IN A 218.30.108.67
hydra.sina.com.cn. 60 IN A 218.30.108.68
hydra.sina.com.cn. 60 IN A 218.30.108.69
hydra.sina.com.cn. 60 IN A 218.30.108.72
hydra.sina.com.cn. 60 IN A 218.30.108.73
hydra.sina.com.cn. 60 IN A 218.30.108.74
hydra.sina.com.cn. 60 IN A 218.30.108.55
hydra.sina.com.cn. 60 IN A 218.30.108.56
hydra.sina.com.cn. 60 IN A 218.30.108.57
hydra.sina.com.cn. 60 IN A 218.30.108.58
sina.com.cn. 86400 IN NS ns1.sina.com.cn.
sina.com.cn. 86400 IN NS ns2.sina.com.cn.
sina.com.cn. 86400 IN NS ns3.sina.com.cn.
;; Received 434 bytes from 202.106.184.166#53(ns1.sina.com.cn) in 31 ms
从上面的记录,我们可以看到整个的流程,从根服务器查询到cn的根服务器,然后查询到sina.com.cn的名字服务器,
news.sina.com.cn -> jupiter.sina.com.cn -->hydra.sina.com.cn 最后得到hydra的服务器IP。
Nginx在url最后补全"/"符号
[ 2009/03/29 22:22 | by selboo ]
from:http://blog.chinaunix.net/u1/55815/showart_1883628.html
今天自己在nginx环境下配置了一个wordpress,用来在实际的应用中学习nginx,不料,却遇到了个小问题,先把文件解决办法总结如下。
我设置了一个域名:http://www.wenzi.cn/
我的wordpress地址是:http://www.wenzi.cn/wordpress/
现在的问题就是如果我访问http://www.wenzi.cn/wordpress/就可以显示出我的blog的地址,但如果我访问http://www.wenzi.cn/wordpress结果却提示说找不到所需要的页面。群里问了一下,说是,nginx不会自动在请求的最后加上一个/的,原因是nginx不会自动判断请求的是一个文件还是一个目录,google上可以搜到解决办法,于是乎我就去google了一下,确实找到了
在配置文件中location里加入如下代码
if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
这样再对http://www.wenzi.cn/wordpress请求,nginx就会进行判断了,如果请求的是一个文件夹,会自动在最后加上/符号,如果请求的是一个文件,则不会改变原有url
接下来对这段代码进行一个解释
1,if (-d $request_filename),如果请求的是一个文件夹,则为真,进到if语句中执行
2,rewrite是执行url重写操作
3,^/(.*)([^/])$表示以/符号开始并紧跟着任何字符,同时不是以/为结束的字符串,在我的url中,(.*)表示的wordpres,([^/])表示的s
4,http://$host/$1$2/ 表示的重写后的地址,$host是请求的域名,$1是前面第一个括号里的内容,在我的url里就是wordpres $2是前面第二个括号里的内容,在我的url里是s
5,permanent表示,返回值是301
今天自己在nginx环境下配置了一个wordpress,用来在实际的应用中学习nginx,不料,却遇到了个小问题,先把文件解决办法总结如下。
我设置了一个域名:http://www.wenzi.cn/
我的wordpress地址是:http://www.wenzi.cn/wordpress/
现在的问题就是如果我访问http://www.wenzi.cn/wordpress/就可以显示出我的blog的地址,但如果我访问http://www.wenzi.cn/wordpress结果却提示说找不到所需要的页面。群里问了一下,说是,nginx不会自动在请求的最后加上一个/的,原因是nginx不会自动判断请求的是一个文件还是一个目录,google上可以搜到解决办法,于是乎我就去google了一下,确实找到了
在配置文件中location里加入如下代码
if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
这样再对http://www.wenzi.cn/wordpress请求,nginx就会进行判断了,如果请求的是一个文件夹,会自动在最后加上/符号,如果请求的是一个文件,则不会改变原有url
接下来对这段代码进行一个解释
1,if (-d $request_filename),如果请求的是一个文件夹,则为真,进到if语句中执行
2,rewrite是执行url重写操作
3,^/(.*)([^/])$表示以/符号开始并紧跟着任何字符,同时不是以/为结束的字符串,在我的url中,(.*)表示的wordpres,([^/])表示的s
4,http://$host/$1$2/ 表示的重写后的地址,$host是请求的域名,$1是前面第一个括号里的内容,在我的url里就是wordpres $2是前面第二个括号里的内容,在我的url里是s
5,permanent表示,返回值是301
PHP.ini挂马方式
[ 2009/03/29 19:04 | by selboo ]
from:http://www.woyigui.cn/php-ini-guama/
本来这两天研究PHPIDS,使用文件是:当要在防止页面攻击时,可在页面的头部include防攻击文件,就像通用防注入文件。我们可以用三种情况来办到:
1、在每个文件内引用。这样的文件是可以,不过如果一个网站内有几百个文件的话就不方便了。
2、在共同包含文件内引用一下,比如 config.inc.php。这是一个好办法,也是目前市场上比较流行的做法。
3、在php.ini中引用。在配置文件内引用的话,将影响到所以的网站,包含所有页面,这就像当年流行的一些免费空间商,当你免费开通一个ftp空间,上传网站以后,空间内会出现广告一样。不知道是不是这种方法,但是目的是一样的。这样做的好处是:如果是一个公司或者是一个企业内部网站的话,即安全,维护也方便。
前两种方法大家都清楚,第三种就是在php.ini中,找到此节:
[code]; Au
本来这两天研究PHPIDS,使用文件是:当要在防止页面攻击时,可在页面的头部include防攻击文件,就像通用防注入文件。我们可以用三种情况来办到:
1、在每个文件内引用。这样的文件是可以,不过如果一个网站内有几百个文件的话就不方便了。
2、在共同包含文件内引用一下,比如 config.inc.php。这是一个好办法,也是目前市场上比较流行的做法。
3、在php.ini中引用。在配置文件内引用的话,将影响到所以的网站,包含所有页面,这就像当年流行的一些免费空间商,当你免费开通一个ftp空间,上传网站以后,空间内会出现广告一样。不知道是不是这种方法,但是目的是一样的。这样做的好处是:如果是一个公司或者是一个企业内部网站的话,即安全,维护也方便。
前两种方法大家都清楚,第三种就是在php.ini中,找到此节:
[code]; Au
1>/dev/null 2>&1的含义
[ 2009/03/28 14:37 | by selboo ]
from:http://www.yunwei.org/
shell中可能经常能看到:>/dev/null 2>&1
命令的结果可以通过%>的形式来定义输出
/dev/null 代表空设备文件
> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
那么本文标题的语句:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
shell中可能经常能看到:>/dev/null 2>&1
命令的结果可以通过%>的形式来定义输出
/dev/null 代表空设备文件
> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
那么本文标题的语句:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。