Apache
九 1st, 2010
1. undefined symbol: sqlite3_open_v2
处理这个问题时,可以把sqlite源码包中的sqlite.c复制到 subversion源码包下的sqlite-amalgamation 目录(需要手动建),INSTALL文件有说明。
2. mod_dav_svn.so: undefined symbol: dav_register_provider
这个问题是需要apache重新编译,编译时加上enable-dav
3. apr_hash_clear
这个可能是调用的apr和你给的编译进去的版本不一样,用ldd查看下报错的那个文件调用的apr lib,如果是系统目录下的话,用rpm -qf 查下该文件是不是系统安装时用的,是的话卸载,会连带删除rpm安装的svn等
相关文章:
svn
Linux | MAC
八 19th, 2010
准备
服务器端需要安装openssl-devel 需要软件lzo 和 openvpn
安装
服务器端编译安装lzo 编译安装openvpn 进入openvpn源码目录,找到easy_rsa目录,进入后依次执行下述 . ./vars ./clean-all ./build-ca ./build-key-server server #内容随意填 ./build-key client1 ./build-dh
redhat系列 拷贝sample-scripts 的openvpn.init 到/etc/init.d/ chkconfig –add openvpn
mkdir /etc/openvpn
拷贝sample-config-files下的server.conf到/etc/openvpn/目录 修改部分参数,主要需要注意如下:
dev tun 我使用dev tap没成功,server端总是没IP,不清除原因
ca cert等写上对应之前脚本的生成的证书文件名
server用于tun,server-bridge用于tap,两者不可同时使用
push "redirect-gateway def1 bypass-dhcp" 这句可以使客户端的网关都使用VPN。
启动服务,可用service openvpn start
客户端证书类似server.conf,也从sample-config-files下复制出来,但建议改名为ovpn,内容也稍作修改然后协同证书文件传给client端。
使用
如果需要把openvpn作为默认的网关,则配置server时需要push “redirect-gateway def1 bypass-dhcp” ,同时需要加snat: iptables -t nat -A POSTROUTING -j SNAT –to 192.168.202.217
以macbook作客户端为例,使用openvpn客户端,可使用软件 viscosity。点击添加后,选择import,选择client.ovpn。之后在工具栏图标上连接即可
更多
在server.conf上配置(在client.ovpn上也可,只是去掉push以及引号)
push "route 192.168.77.0 255.255.255.0 net_gateway"
可使客户端走本地网关出去,而不是vpn的路由,这样在把VPN设为默认路由后也不会影响本地局域网的使用。
相关文章:
openvpn
Linux
七 13th, 2010
使用ssh tunnel 后,发现浏览器仍然无法显示网页。确定,ssh已成功连接,并且本地端口也打开了。那到底什么问题呢
最后发现是服务器sshd配置的问题,如下:
AllowTcpForwarding yes
该设置必须是yes,或者是被注释掉的状况即可。 然后重启sshd,并重新建立ssh tunnel连接。问题搞定。
相关文章:
ssh
随便写写
六 14th, 2010
因为自己的疏忽大意,总算遭到了报应,丢了钱包。哼哼,很活该。
地点是天钥桥路的五芳斋处,买了粽子,丢了钱包。整个过程在5分钟以内应该。至此,本人已送给小偷们2个钱包,1个手机,共计价值人民币2300余元。但是,从另一个方面来说,小偷的猖獗说明什么,社会问题?治安问题?还是其他?不过照我的看法,政府就应该“狠”点,非常狠,对于抓到的窃贼,不论男女老少,一律严惩,判罚个2,30年,成本太高?那就直接“剁手指”扔回老家。砍了手还能偷么?谁还敢当小偷?
总结,经此教训,之后出门:
1. 不再使用钱包这样东西
2. 出门不带钱,要带只带零钱,小钱。
3. 银行卡一概不带,信用卡少带,身份证更不可能带。
4. 特殊物品特殊方式携带,与钱财一律 分开。
6月14日,纪念一次悲剧。
相关文章:
Linux | PHP | Perl
六 12th, 2010
转自:http://www.x2009.cn/articles/what-is-a-unix-timestamp-unix-timestamp-unix-time-as-well-as-the-method-of-converting-ordinary-time.html
什么是Unix时间戳(Unix timestamp)?
Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类Unix系统中,也在许多其他操作系统中被广告采用。
目前相当一部分操作系统使用32位二进制数字表示时间。此类系统的Unix时间戳最多可以使用到格林威治时间2038年01月19日03时14分07秒(二进制:01111111 11111111 11111111 11111111)。其后一秒,二进制数字会变为10000000 00000000 00000000 00000000,发生溢出错误,造成系统将时间误解为1901年12月13日20时45分52秒。这很可能会引起软件故障,甚至是系统瘫痪。使用64位二进制数字表示时间的系统(最多可以使用到格林威治时间292,277,026,596年12月04日15时30分08秒)则基本不会遇到这类溢出问题。
如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)?
| Java |
time |
| JavaScript |
Math.round(new Date().getTime()/1000)
getTime()返回数值的单位是毫秒 |
| Microsoft .NET / C# |
epoch = (DateTime.Now.ToUniversalTime().Ticks – 621355968000000000) / 10000000 |
| MySQL |
SELECT unix_timestamp(now()) |
| Perl |
time |
| PHP |
time() |
| PostgreSQL |
SELECT extract(epoch FROM now()) |
| Python |
先 import time 然后 time.time() |
| Ruby |
获取Unix时间戳:Time.now 或 Time.new
显示Unix时间戳:Time.now.to_i |
| SQL Server |
SELECT DATEDIFF(s, ‘1970-01-01 00:00:00′, GETUTCDATE()) |
| Unix / Linux |
date +%s |
| VBScript / ASP |
DateDiff(“s”, “01/01/1970 00:00:00″, Now()) |
| 其他操作系统
(如果Perl被安装在系统中) |
命令行状态:perl -e “print time” |
如何在不同编程语言中实现Unix时间戳(Unix timestamp) → 普通时间?
| Java |
String date = new java.text.SimpleDateFormat(“dd/MM/yyyy HH:mm:ss”).format(new java.util.Date(Unix timestamp * 1000)) |
| JavaScript |
先 var unixTimestamp = new Date(Unix timestamp * 1000) 然后commonTime = unixTimestamp.toLocaleString() |
| Linux |
date -d @Unix timestamp |
| MySQL |
from_unixtime(Unix timestamp) |
| Perl |
先 my $time = Unix timestamp 然后 my ($sec, $min, $hour, $day, $month, $year) = (localtime($time))[0,1,2,3,4,5,6] |
| PHP |
date(‘r’, Unix timestamp) |
| PostgreSQL |
SELECT TIMESTAMP WITH TIME ZONE ‘epoch’ + Unix timestamp) * INTERVAL ‘1 second’; |
| Python |
先 import time 然后 time.gmtime(Unix timestamp) |
| Ruby |
Time.at(Unix timestamp) |
| SQL Server |
DATEADD(s, Unix timestamp, ‘1970-01-01 00:00:00′) |
| VBScript / ASP |
DateAdd(“s”, Unix timestamp, “01/01/1970 00:00:00″) |
| 其他操作系统
(如果Perl被安装在系统中) |
命令行状态:perl -e “print scalar(localtime(Unix timestamp))” |
如何在不同编程语言中实现普通时间 → Unix时间戳(Unix timestamp)?
| Java |
long epoch = new java.text.SimpleDateFormat(“dd/MM/yyyy HH:mm:ss“).parse(“01/01/1970 01:00:00″); |
| JavaScript |
var commonTime = new Date(Date.UTC(year, month – 1, day, hour, minute,second)) |
| MySQL |
SELECT unix_timestamp(time)
时间格式: YYYY-MM-DD HH:MM:SS 或 YYMMDD 或 YYYYMMDD |
| Perl |
先 use Time::Local 然后 my $time = timelocal($sec, $min, $hour, $day, $month, $year); |
| PHP |
mktime(hour, minute, second, day, month, year) |
| PostgreSQL |
SELECT extract(epoch FROM date(‘YYYY-MM-DD HH:MM:SS‘)); |
| Python |
先 import time 然后 int(time.mktime(time.strptime(‘YYYY-MM-DD HH:MM:SS‘, ‘%Y-%m-%d %H:%M:%S’))) |
| Ruby |
Time.local(year, month, day, hour, minute, second) |
| SQL Server |
SELECT DATEDIFF(s, ‘1970-01-01 00:00:00′, time) |
| Unix / Linux |
date +%s -d”Jan 1, 1970 00:00:01″ |
| VBScript / ASP |
DateDiff(“s”, “01/01/1970 00:00:00″, time) |
相关文章:
Database
六 10th, 2010
在数据库服务器上修改配置文件my.cnf加入如下:
[mysqld]
skip-name-resolve
附: 说明关于mysql如何使用DNS
当一个新的客户端连接到mysqld时,mysqld会产生一个新的线程来处理这个请求。这个线程首先会检查主机名是否在缓存中存在,如果不存在,它将尝试解析这个主机名。
如果操作系统支持线程安全的gethostbyaddr_r() 和gethostbyname_r() 调用,这个线程会使用它们执行主机名解析。
如果操作系统不支持线程安全的调用,这个线程就会锁定一个互斥体并换为调用gethostbyaddr() 和gethostbyname() 。在这种情况下,第一个线程解锁互斥体之前,其他的线程将不能解析在缓存中不存在的主机名。
你可以通过添加–skip-name-resolve参数启动mysqld来禁用 DNS 主机名查询。但是这将导致你在MySQL的授权表中只能使用IP数字。
如果你使用一个很慢的DNS和许多主机,你可以通过添加–skip-name-resolve禁用域名查询或通过增加 HOST_CACHE_SIZE 定义的值(默认值: 128)并重新编译mysqld来提升性能。
你可以通过–skip-host-cache参数禁用主机名缓存。要清空主机名缓存,可以执行一个 FLUSH HOSTS 语句或执行mysqladmin中的flush-hosts命令实现。
要完全禁用ICP/IP连接,请添加 –skip-networking 启动mysqld。
相关文章:
mysql
Linux
六 9th, 2010
该参数作用是发给一个父进程,告诉父进程在合适的时候重启子进程。意思是处理完当前的请求后以及处理完需要写入的文件等,再重启。这个过程还会重新加载配置文件。
值得注意的是在apache中的graceful和USR1是同一个作用。而restart和HUP是相同的。重启进程优先推荐的是graceful命令。
另外USR1这个信号参数还可以用在nginx上,例如重新载入配置,重新生成日志文件(如果我需要移动掉该日志文件)
相关文章:
linux信号
MAC
六 7th, 2010
这个标题是从apple4.us直接拿来的,因为本身就是在那边看到的,我只是想做点补充,给自己做个备忘。
具体过程就是创建一个加密磁盘,把文件扔进去就可以了。
截了个图:

详细的可以参考这个:https://apple4.us/2010/06/on-harddisk-data-security.html
相关文章:
macbook实用技巧
家装
五 26th, 2010
房子装修里唯一的亮点,弄了个嵌入式的鱼缸,结果已经2次由于尺寸的问题而退回了.还损失了300的订金,唉.不过说起来,上次定的那家轩海水族真的满黑的,价格乱开.贵的相当离谱.这也许和他在各个装修建材市场有门店网点有关吧,但是不管怎样,还是决定放弃那家了.太贵!
现在淘宝选了家有实体店的,定做超白的1600.原来那个单个普通缸都要1900.不过今天缸送来,又是尺寸原因退回了,这次是大了.大了4mm左右…这次退回去,希望下次来把该搞定的都搞定,别再出啥异常了吧….很晕,很受打击,搞这么个鱼缸如此麻烦. 而且还不知道定做的以后会不会有啥其他问题,包括走缸下面开洞的外滤(总觉得下面开洞走外滤会漏水),不踏实啊
相关文章: