PHP 5.3.0 不能 100% 兼容以前的程序。 郁闷中。。。

2009年7月1日 Guya 没有评论

今天使用了 php 5.3 的平台, 结果发现公司以前的程序不能正常运行。 崩溃中。 还是切回5.2 平台吧。

分类: PHP 标签:

PHP5.3.0 正式发布, 超级爽!

2009年7月1日 Guya 没有评论

今天晚上打开 php.net 一看, 5.3.0 的正式版已经发布。 刚刚手头有台机器刚装了 ubuntu, 编译了一下 LAMP 系统, PHP 5.3.0 改动比较大。 第一眼看到的 php.ini 文件里已经变动了。 感觉比一以前版本的舒服点了。 有了开发环境和生产环境的配置区分了。 详细的以后慢慢了解了。 貌似增强了很多功能。 从 phpinfo() 里看出来的。 放出一张刚测试出的phpinfo()截图, 后面张贴一下本次编译的命令记录。

php-5.3.0-info

php-5.3.0-info

看看编译的一堆命令。 有需要的朋友可以拿去参考一下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
sudo apt-get install build-essential gcc make autoconf automake1.9 libtool
 
sudo apt-get install zlib1g-dev libdb-dev
 
tar -jxf apr-1.3.5.tar.bz2 -C ../builds/
tar -jxf apr-util-1.3.7.tar.bz2 -C ../builds/
tar -zxf httpd-2.2.11.tar.gz -C ../builds/
 
cd ../builds/
cd apr-1.3.5/
./configure 
make
sudo make install
 
cd ../apr-util-1.3.7/
./configure --with-apr=/usr/local/apr --with-berkeley-db=/usr
make
sudo make install
 
cd ../httpd-2.2.11/
./configure --prefix=/usr/local/apache2 --enable-rewrite=shared --enable-dav=shared --enable-so --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config
make
sudo make install
 
 
sudo apt-get install libxml2 libxml2-dev
 
tar -zxf neon-0.28.4.tar.gz -C ../builds/
tar -zxf zlib-1.2.3.tar.gz -C ../builds/
tar -zxf expat-2.0.1.tar.gz -C ../builds/
tar -zxf subversion-1.6.2.tar.gz -C ../builds/
mkdir ../builds/subversion-1.6.2/sqlite-amalgamation
tar -zxf sqlite-amalgamation-3.6.13.tar.gz
cp sqlite-3.6.13/sqlite3.c ../builds/subversion-1.6.2/sqlite-amalgamation/
rm -rf sqlite-3.6.13
 
cd ../builds/neon-0.28.4/
./configure
make
sudo make install
 
cd ../zlib-1.2.3/
./configure --prefix=/usr/local/zlib
make
sudo make install
 
cd ../expat-2.0.1/
./configure
make
sudo make install
 
cd ../subversion-1.6.2/
./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-neon=/usr/local --with-zlib=/usr/local/zlib --with-ssl
make
sudo make install
 
tar -zxf mysql-5.0.83-linux-i686-icc-glibc23.tar.gz
sudo mv mysql-5.0.83-linux-i686-icc-glibc23 /usr/local/mysql
cd /usr/local/mysql/
sudo groupadd mysql
sudo useradd -g mysql mysql
sudo scripts/mysql_install_db --user=mysql
sudo chown -R mysql .
sudo chgrp -R mysql .
sudo chown -R root .
sudo chown -R mysql data
cd support-files/
sudo cp my-medium.cnf /etc/my.cnf
sudo gedit /etc/my.cnf
sudo ./mysql.server start
cd ../bin
./mysqladmin -u root password 'mypassword'
./mysql -u root -p
cd ../support-files/
sudo ./mysql.server stop
 
sudo apt-get install flex libpng12-0 libpng12-dev libltdl3-dev
sudo ln -sf libpng12.so.0 libpng.so
 
tar -zxf curl-7.19.5.tar.gz -C ../builds/
tar -zxf jpegsrc.v6b.tar.gz -C ../builds/
tar -zxf freetype-2.3.9.tar.gz -C ../builds/
tar -zxf libmcrypt-2.5.8.tar.gz -C ../builds/
tar -zxf mhash-0.9.9.9.tar.gz -C ../builds/
tar -zxf php-5.3.0.tar.gz -C ../builds/
 
cd ../builds/curl-7.19.5/
sudo mkdir /usr/local/curl
./configure --prefix=/usr/local/curl --with-ssl
make
sudo make install
 
cd ../jpeg-6b/
sudo mkdir /usr/local/jpeg
sudo mkdir /usr/local/jpeg/bin
sudo mkdir /usr/local/jpeg/lib
sudo mkdir /usr/local/jpeg/include
sudo mkdir /usr/local/jpeg/man
sudo mkdir /usr/local/jpeg/man/man1
./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
make
sudo make install
 
cd ../freetype-2.3.9/
./configure --prefix=/usr/local/freetype2
make
sudo make install
 
cd ../libmcrypt-2.5.8/
./configure --prefix=/usr/local/libmcrypt
make
sudo make install
 
cd ../mhash-0.9.9.9/
./configure --prefix=/usr/local/libmhash
make
sudo make install
 
cd ../php-5.3.0/
./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/php \
--with-openssl \
--with-zlib \
--with-zlib-dir=/usr/local/zlib \
--enable-bcmath \
--enable-calendar \
--with-curl=/usr/local/curl \
--with-curlwrappers \
--enable-ftp \
--with-gd \
--with-jpeg-dir=/usr/local/jpeg \
--with-png-dir=/usr \
--with-freetype-dir=/usr/local/freetype2 \
--enable-gd-native-ttf \
--with-gettext \
--with-mcrypt=/usr/local/libmcrypt \
--with-mhash=/usr/local/libmhash \
--enable-mbstring \
--enable-exif \
--with-mysql=/usr/local/mysql \
--with-pdo-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-xmlrpc \
--enable-soap \
--enable-sockets \
--enable-zip
 
sudo cp php.ini-development /usr/local/php/php.ini
sudo gedit /usr/local/apache2/conf/httpd.conf

OK, 玩过头了。 赶紧睡觉先!

分类: Linux, PHP 标签: ,

Linux 的 chmod 命令

2009年6月29日 Guya 没有评论

在 Linux 下用电脑经常会用到 chmod 命令。 这里详细的介绍一下。 省的每次设置文件属性无效的时候又要在网上找手册去看。

chmod 只有管理员才能执行。 普通用户可以通过 sudo chmod 执行。

Linux 的文件权限可以分成三段, 通常 ls -l 出来的第一列就是文件权限信息。每个文件(任意类型的文件或者文件夹)的属性都用10个字符表示。举个简单的例子, 看下面这行权限信息:

drwxr-xr-x

可以知道, 第一字符是 d , 说明它是一个文件夹. 文件权限信息第一字符通常都是链接符 “-”.

从第二到第四位 (rwx) 是文件所有者的权限.上面的字符具体意思也很简单:

r: 可读, w: 可写, x: 可执行.

所有上面的信息表示该文件夹的拥有者有可读,可写, 可执行给文件夹的权限. 用就是全部权限.

再看第五位到第七位 (r-x) 是文件夹用户拥有者所在组的权限. 根据上面的说法就是这个组对该文件夹有可读可执行的权限. 链接号表示没有权限空缺, 没有写权限.

同样第八位到第十位 (r-x) 是其他人对这个文件夹操作的权限. 这里看来就是可读, 可执行权限.

其实我们更多的看到的是数字组成的权限. 文件的权限组成是由 用户的权限, 用户所在组的权限, 其他人的权限 这三个权限组成的. 每个权限都可以是 r,w,x 的任意组合. 所以用字符表示太麻烦, 简单的用数字表示比较方便. 我们只要记住3个数字就行了.

其中: r = 4, w = 2, x = 1. 没有见过 linux 权限有超过7的数字的. ^o^

所以如果是可读可写可执行的话那就是: rwx = 4 + 2 + 1 = 7 上面的三个权限都可以这样算出来.

比如我们看一个文件的权限如下: -rw-r–r–

说明这个文件是个普通文件, 因为第一个字母是连接符 “-”, 看接下来的三个字母是: rw- , 表示该文件的所有者对该文件可读可写. 那么用数字表示也就是 4 + 2 + 0 = 6,

再看第5-7个字符: r–, 表示该文件所有者所在的组对该文件只有可读权限. 那么用数字表示为: 4 + 0 + 0 = 4,

看最后三个字符: r–, 表示其他人对该文件的权限. 同样是知读. 用数字表示也是 4.

所有该文件的权限用数字看起来就是: 644

了解了权限的组成. 现在用 chmod 命令就方便了. 最简单的用法.

sudo chmod 644 readme.txt

这样就给当前目录下的 readme.txt 文件重新赋予了权限. 只有拥有者可以修改, 其他人只能看文件内容.

另外还有一种比较方便的针对某一类的用户的操作. 先介绍2个操作符. “+” 表示增加权限. “-” 表示消减权限.

文件所有者可以用字母 u 表示. 用户所在的组可以用字母 g 来表示. 其他人可以用字母 o 来表示. 所有人可以用字母 a 了表示.

其实就是单词 user, group, other, all 的第一个字母.

比如对一个文件 readme.txt 执行修改其他人对这个文件的权限. 修改位其他人可以写. 可以这样

sudo chmod o+w readme.txt

相对的, 修改用户所在组的成员对该文件也有可修改的权限:

sudo chmod g+w readme.txt

现在如果想去掉 其他人对该文件的可修改的权限的话:

sudo chmod o-w readme.txt

最后, 我们让所有人对该文件都有全部权限的话, 这样做是很危险的.只是测试举例才用而已. 可以这样

sudo chmod a+rwx readme.txt

OK, 到这里就简单的介绍完了. 如果想对一个目录及其下面的文件都修改成统一的权限信息的话可以加参数 -R , 比如对当前目录 test 及其下面的文件都该成 文件拥有者可读可写, 其他人都只能看的话:

sudo chmod -R 644 test

数字代表的意思自己去算算看, 是不是很简单呢?

分类: Linux 标签:

硬盘安装 Ubuntu 8.04 hardy

2009年6月28日 Guya 没有评论

闲来无事, 来折腾我的老本本吧。给他再装个 Ubuntu 玩玩。

老本本赛扬 1.6 的CPU, 跑 linux 应该是可以的。 光驱已经是垂死状态了。 没法读盘, 硬盘安装吧。

先要下载个 grub4dos, 到 sf.net 上下载一个。解压出 grub.exe 和 grldr 文件放到 C 盘。C 盘装的是XP。 然后再下载 两个启动文件。vmlinuz, initrd.gz 也放在 C 盘根目录下。 再下载 ubuntu-8.04.2-alternate-i386.iso 放到 D 盘根目录下。C,D 盘分区格式FAT32和,NTFS 无所谓。文件下载地址:

grub4dos: http://sourceforge.net/projects/grub4dos/

vmlinuz: http://mirror.lupaworld.com/ubuntu/dists/hardy/main/installer-i386/current/images/hd-media/vmlinuz

initrd.gz: http://mirror.lupaworld.com/ubuntu/dists/hardy/main/installer-i386/current/images/hd-media/initrd.gz

ubuntu-8.04.2-alternate-i386.iso: http://mirror.lupaworld.com/ubuntu/releases/8.04.2/ubuntu-8.04.2-alternate-i386.iso

不要使用 ubuntu.iso 里自带的 vmlinuz, 和 initrd.gz 文件。 这样无法挂在光驱。

修改XP启动菜单: 我的电脑 =》属性 =》 高级 =》 故障XX =》 编辑启动XX按钮 。

在 boot.ini 文件最后加入一行:

C:\grldr=”Grub4Dos”

系统重启。 OK, 选择 grub4dos 菜单。 进入命令行模式。//部分为部分提示信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
grub>find /ubuntu-8.04.2-alternate-i386.iso
 
//(hd0,4)
 
grub>find /vmlinuz
 
//(hd0,0)
 
grub>root (hd0,4)
 
grub>kernel (hd0,0)/vmlinuz
 
grub>initrd (hd0,0)/initrd.gz
 
grub>boot

OK, 启动顺利。 接下去就可以选择安装 Ubuntu 了。

分类: Linux 标签:

郁闷的 Ubuntu8.04 的声卡问题。

2009年6月28日 Guya 没有评论

被这个声卡搞郁闷了. 搞了半天. 也装了一堆乱七八糟的包声卡装完系统就是认出了. 可是死活不出声音. 什么 alsa-base, alsa-utils, alsa-oss, alsa-tools, alsa-tools-gui 都不好使, 无奈之余装了个 gnome-media 包. 居然声音就出来了. 火啊!

分类: Linux 标签: