PHP5.3.0 正式发布, 超级爽!
今天晚上打开 php.net 一看, 5.3.0 的正式版已经发布。 刚刚手头有台机器刚装了 ubuntu, 编译了一下 LAMP 系统, PHP 5.3.0 改动比较大。 第一眼看到的 php.ini 文件里已经变动了。 感觉比一以前版本的舒服点了。 有了开发环境和生产环境的配置区分了。 详细的以后慢慢了解了。 貌似增强了很多功能。 从 phpinfo() 里看出来的。 放出一张刚测试出的phpinfo()截图, 后面张贴一下本次编译的命令记录。
看看编译的一堆命令。 有需要的朋友可以拿去参考一下。
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 的 chmod 命令
在 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
数字代表的意思自己去算算看, 是不是很简单呢?
硬盘安装 Ubuntu 8.04 hardy
闲来无事, 来折腾我的老本本吧。给他再装个 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 了。
郁闷的 Ubuntu8.04 的声卡问题。
被这个声卡搞郁闷了. 搞了半天. 也装了一堆乱七八糟的包声卡装完系统就是认出了. 可是死活不出声音. 什么 alsa-base, alsa-utils, alsa-oss, alsa-tools, alsa-tools-gui 都不好使, 无奈之余装了个 gnome-media 包. 居然声音就出来了. 火啊!
