升级到PHP 5.2.2后,出现session_start写入权限问题。

提示信息如下:

Warning: session_start() [function.session-start]: SAFE MODE Restriction in effect. The script whose uid is 2023 is not allowed to access /var/tmp/ owned by uid 0 in /configs/config.inc.php on line 9

Fatal error: session_start() [<a href='function.session-start'>function.session-start</a>]: Failed to initialize storage module: files (path: ) in /configs/config.inc.php on line 9

 

 后来在php5的changelog里找到一个bug报告。里面提到一个安全模式的bug。默认session的save_path是/var/tmp,这样会要校验权限。在php.ini文件里,显式指定session的save_path为/tmp,重启web服务就解决了。

昨天晚上吃完晚饭后,吃了点西瓜。可能是因为西瓜是中午买回来,在冰箱里冻了半天才吃。结果吃了西瓜后,没多久就闹肚子,痛苦啊。

 

ifconfig eth0:1 172.16.0.2
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -m tcp -d xxx.xxx.xxx.xxx --dport 80 -j DNAT --to 172.16.0.2:8080

tcp各项统计值可以通过命令“show statistics tcp " 来显示

    #sh statistics tcp

    (1)tcprtoalgorithm 4 ( 2)tcprtomin 0

    ( 3)tcprtomax 60000 ( 4)tcpmaxconn 7

    ( 5)tcpactiveopens 2 ( 6)tcppassiveopens 1

    ( 7)tcpattemptfails 1 ( 8)tcpestabresets 0

    ( 9)tcpcurrestab 2 (10)tcpinsegs 142

    (11)tcpoutsegs 232 (12)tcpretranssegs 5

    (18)tcpinerrs 0 (19)tcpoutrsts 0

    tcp协议的统计数据。其中“(1)(2)”表示该统计项对应的snmp mib 的索引值。

    (1) tcprtoalgorithm 值等于4表示使用van jacobson's算法确定重传记时器

    (2) tcprtomin 重传记时器最小值(以毫秒为单位)

    (3) tcprtomax 重传记时器最大值(以毫秒为单位)

    (4) tcpmaxconn 表示tcp 连接的最大数目

    (5) tcpactiveopens 表示主动向外建链次数

    (6) tcppassiveopens 表示接收远端的建链请求次数

    (7) tcpattemptfails 表示tcp建链失败次数

    (8) tcpestabresets 表示tcp在连通状态下收到reset次数

    (9) tcpcurrestab 表示当前tcp连接数

    (10) tcpinsegs 表示tcp收到segment数目

    (11) tcpoutsegs 表示tcp发出的segment数目,重发不计

    (12) tcpretransegs 表示tcp重发的segment数目

    (18) tcpinerrs 表示收到tcp segment但校验和错数目

    (19) tcpoutrsts 表示发出tcp reset数目

    tcp状态可以通过命令“show tcp " 来显示

    #show tcp

    &tcb rcv-q snd-q socket_id local socket remote socket state

    0x121f330 0 0 1 150.150.0.2:23 150.150.0.1:14858 estab

    0x121f0d8 0 1 2 150.150.0.2:1026 150.150.0.1:23 estab

    0x121f588 0 0 0 0.0.0.0:23 0.0.0.0:0 listen (s)

    #

    tcp socket连接的状态包含以下内容:

    &tcb 该tcp连接id

    rev_q 该tcp连接接收队列中的字节数

    snd_q 该tcp连接发送队列中的字节数

    socket_id 该tcp连接对应的socket id

    local socket 此socket的本地ip地址和端口号

    remote socket 此socket的远端ip地址和端口号

    state 该tcp连接的当前状态

近一个月来,北京的天气非常好。是我到北京以来,觉得天气最好的一段时间。

蓝蓝的,清澈透明的天空,挂着一个艳阳,不经意的抹着几片白云。 走在阳光下,就感觉视野开阔,心情舒畅。

这样的感觉,在珠海的时候时常会有。也许来北京后,更忙,压力更大了吧。

昨天交了半年的房租,拿到了钥匙后,搞了很长时间清洁。

以前住的人弄得太脏了,虽然房东请清洁工搞过清洁了,但是一些死角的地方,是没有清理到的。害的我们不得不彻底的打扫。

今天中午已经开始搬部分东西过去了,这周要上班了,就没有什么时间搬了。下个周末搬完东西,就开始在那里住了。

不过,很可能我们搬进去后一段时间,不能上网。今天才报装网通的小区宽带。

 

新房子很不错,在12楼,外面没有什么高楼阻挡视线和阳光,采光很好,尤其夜景看起来非常棒。呵呵

来北京,第一次住高楼啊。虽然以前在20层上班,却没有住过(加班通宵的不算)。

在北京已经第三次搬家了。第一个地方,是2楼;第二个地方,是3楼,第三个地方,12楼。呵呵

sudo是一种比较安全权限分配方案。如果你想让某个用户执行root账号的权限,但又不想让他直接成为root账号,可以使用sudo来解决这个问题。

1. 安装sudo
# cd /usr/ports/security/sudo; make install clean;
2. 添加sudoers
使用visudo命令来编辑/usr/local/etc/sudoers文件。

%wheel ALL=(ALL) NOPASSWD: ALL
这样设置就是允许wheel组的用户可以执行任何命令而不需要密码。

geany,不太方便,bluefish,还是不太方便。还是喜欢老朋友 editplus更多些。

今天安装了wine,然后到editplus官方网站下载一个最新的editplus回来安装。

很爽,同样耗内存、CPU少,速度快,使用方便。呵呵。

 

EditPlus注册码:Name:crsky Code:7879E-5BF58-7DR23-DAOB2-7DR30

安装配置方法参考: 

http://editplus.info/wiki/Running_on_Linux 

FreeBSD6.2 都已经出来很久了,而服务器上还用的4.11。

FreeBSD官方已经不再支持4.x系列系统的维护,升级是势在必行的。只是远程通过make  world来升级,不 太可靠。操作步骤比较繁琐。需要从4.11,升级到5.x,然后再从5.x升级到6.x。谁敢保证万无一失呢?

 

加上硬盘使用也有很长时间了,干脆换硬盘,换系统,呵呵。

换了块新硬盘,系统直接使用FreeBSD  6.2  。其他的应用服务也相应的升级了。

 

只是昨天晚上网络太慢,换了硬盘后,无法恢复数据。今天早上一大早就起来恢复了部分数据。

接下部分,得今天晚上继续。

http://blogs.ittoolbox.com/unix/bsd/archives/xorg-72-on-freebsd-13661

http://wiki.freebsd.org/ModularXorg 


  • pkg_add -r git

  • rehash

  • cd /usr

  • rm -Rf ports (if you have an existing ports collection)

  • git clone git://git.geekfire.com/git/ports.git (this one takes a while as it needs to unpack a ~46 MB download)

  • cd ports

  • git checkout xorg

  • cd /usr/ports/x11/xorg (this is the meta-port, it builds everything)

  • make install clean
  •  

    --- if_bge.c.orig Mon Jul 24 12:11:27 2006
    +++ if_bge.c Mon Jul 24 12:13:02 2006
    @@ -172,6 +172,8 @@
    "Broadcom BCM5751 Gigabit Ethernet" },
    { BCOM_VENDORID, BCOM_DEVICEID_BCM5751M,
    "Broadcom BCM5751M Gigabit Ethernet" },
    + { BCOM_VENDORID, BCOM_DEVICEID_BCM5751F,
    + "Broadcom BCM5751F Gigabit Ethernet" },
    { BCOM_VENDORID, BCOM_DEVICEID_BCM5752,
    "Broadcom BCM5752 Gigabit Ethernet" },
    { BCOM_VENDORID, BCOM_DEVICEID_BCM5782,

    --- if_bgereg.h.orig Mon Jul 24 12:11:32 2006
    +++ if_bgereg.h Mon Jul 24 12:12:17 2006
    @@ -1955,6 +1955,7 @@
    #define BCOM_DEVICEID_BCM5750M 0x167C
    #define BCOM_DEVICEID_BCM5751 0x1677
    #define BCOM_DEVICEID_BCM5751M 0x167D
    +#define BCOM_DEVICEID_BCM5751F 0x167E
    #define BCOM_DEVICEID_BCM5752 0x1600
    #define BCOM_DEVICEID_BCM5782 0x1696
    #define BCOM_DEVICEID_BCM5788 0x169C

    今天更新ports,看到gaim2更新了,于是升级它了。

    升级的过程中,提示我选择编译选项,奇怪,是不是有要安装其他依赖包啊。也没有太留意,就按默认的安装吧。

    没有等多久,升级完了。运行gaim,提示没有这个程序。奇怪,怎么ports升级软件,还会给删除了?

    到/usr/ports/net-im/ 没有找到gaim-devel目录。怎么回事?升级ports 目录,把gaim-devel都给删除了。会不会是迁移到发行办了?到gaim目录一看,还是1.5的版本。

     完了,这下想安装gaim-devel都安装不了。

    不过回头一想升级的时候,提示安装pidgin来着,会不会是它?于是试试执行pidgin,果然,出现了熟悉,却有不完全一样的界面。gaim2。
     

    原来已经改名了,称为pidgin了。

    使用过程中感觉新版本变化还是很大的。首先界面、图标变了,其支持头像功能了。还有其他功能的变化。

     总的来说,虽然还没有正是release,但是越来越好用了。

    在freebsd的ports信息是这样的:

    pidgin-2.0.0.b7     Pidgin multi-protocol messaging client (GTK+ UI)

    完整名称和版本信息以及简单介绍。

    昨天晚上在freebsdchina上看到不少朋友推荐使用enlightenment。正好我打算给桌面换换装呢,一直在用fvwm,感到不太方便。又不想再花那么多时间去捣弄它了。

    开始打算用gnome-lite来着。但是发现狂占内存。

    也装了xfce4,也很占内存。运行了5-6个相关进程,加起来差不多要耗掉100M内存,我的老爷机只有256M的内存,可谓是寸存寸金啊 ,得省着点用。

    后来安装了enlightenment,虽然比fvwm2个头要大,但是相比gnome2,xfce来说,还是很小巧的。

    用ports安装,做些简单的设置,在官方网站下来一个风格,默认就支持中文标题了。运行起来,占用25M内存左右。还可以接受。

    相比fvwm,感觉更整体,更易用些。

    cloned_interfaces="carp0"
    ifconfig_carp0="vhid 1 pass mypass 192.168.88.110/24"

     

    cloned_interfaces="carp0"
    ifconfig_carp0="vhid 1 advskew 100 pass mypass 192.168.88.110/24"