2007年6月27日星期三

XP 下安装Apache2.2.4+PHP5.2.4+Mysql5


首先准备好软件:(截至今天,全都是最新的稳定版本)
PHP 5.2.3 http://www.php.net
Apahce 2.2.4 http://httpd.apache.org
Mysql 5.1.19 http://dev.mysql.com/downloads/mysql/5.1.html


安装php5
直接解压压缩包到c:\php
更改环境变量:我的电脑属性》高级》环境变量》双击"Path",追加c:\php;c:\php\ext


安装Apache
双击msi安装包,domain和server可以用自己本地的ip或者localhost


配置Apache
用记事本打开%apache-root%/conf/httpd.conf,找到:
# LoadModule foo_module modules/mod_foo.so
追加:
LoadFile "c:/php/php5ts.dll"
LoadFile "c:/php/libmysql.dll"
PHPIniDir "c:/php"
LoadModule php5_module "c:/php/php5apache2_2.dll"


找到:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
追加:
AddType application/x-httpd-php .php
这样就可以支持php5和mysql


接下来更改网站目录:
DocumentRoot "c:/wwwroot"
还有这个别忘记,不然会出现403禁止访问的错误:
<Directory "c:/wwwroot">


更改默认页面:
DirectoryIndex index.html index.php


好了其他没什么可以更改的。


php的配置


把php.ini-dist复制一份,改名为 php.ini然后修改:


在Data Handling下找到post_max_size = 8M
这是PHP将接受的POST数据最大大小,可更改为20M。


在Paths and Directories下找到extension_dir=
这里设置的是PHP搜索扩展库的位置,将其路径设为extensions文件夹的位置,即改成:
extension_dir="c:\php\ext"


在File Uploads下找到upload_max_filesize = 2M,允许上传的的最大文件大小
可更改为20M。


Dynamic Extensions这里是PHP扩展设置部分,列出了PHP所有的可支持扩展,前面都加了分号注释,表示目前PHP配置不支持扩展,我们可以将分号去掉让PHP支持该扩展下面列出的是几个常用且较实用的PHP扩展把下面几句前面的分号去掉
;extension=php_mbstring.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_filepro.dll
;extension=php_gd2.dll
;extension=php_imap.dll
;extension=php_mysql.dll


好了一切准备就绪!


重起APACHE,在主目录下新建一个记事本文件test在里面输入
<?php
phpinfo();
?>
保存后修改后缀名为PHP。在浏览器输入http://127.0.0.1/test.php是不是看到PHP版本信息,没错,这样PHP的配置就完成了。接下来安装MYSQL。


第一步:双击.exe文件出现的第一个需要选择的对话框是Setup Type 也就是
安装种类,这里我们可以选择Custom,根据自己的需要来安装组件和配置安装路径


点击Next,右键点击对话框出现几个硬盘形状的图标,根据自己的需要选择安装组件,


点击窗口右下的Change按钮更改安装路径的,设置好后,点击Next开始安装安装到最
后会有如下一个对话框在这里的三个选项分别是:


1:如果你没有MYSQL.com帐户,选第一个,创造一个新的免费的MYSQL.com帐户


2:如果你有MYSQL.com帐户,选第二个,填入已经注册好的邮箱名和密码


3:跳过此步骤


我们选第一个


接下来会一次出现三个对话框,在三个对话框中有* 号的部分是必须要填的,
按顺序分别是邮箱名,密码,确认密码;first name ,last name;邮政编码,
国家,省名。国家名选china,省名选other or N/A即可4.1.x和4.0.x系列版
本很大一个区别就是在安装完毕后不是运行 mysql文件夹下面的winmysqladmin.exe来
启动服务器后设置选项,而是有一个设置的过程。


第二步:设置MYSQL


首先你会看到这样的一个窗口,这里有两个选项,分别是详细配置和标准配置,
小型应用选第二项就可以了点击Next后出现下面的对话框,这里是重要的,一定
要在下拉菜单里选择MySQL41,否则不能正常启动,下面的选项是是否应用命令行,
最好选上点击Next后设置数据库密码的对话框,中间偏右和下面的选项分别是是否
允许远程控制和是否允许匿名帐号登入,为了安全,不要选择好了,点击Next后出
现最后的对话框,点击Execute按钮数据库服务器便启动了,依次出现四个对号后
点击Finish结束安装


装上PHPMYADMIN后测试连接,若出现
#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client
在开始菜单找到刚刚安装的MYSQL命令行工具,输入root的密码后键入如下的字样:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('刚才设置的ROOT密码')
-> WHERE Host = 'localhost' AND User = 'root';

mysql> FLUSH PRIVILEGES;(注意FLUSH后有空格)
然后浏览"http://localhost/phpmyadmin",OH YEAH! 测试成功!


在谈一下关于MYSQL 4.1以后由于采用UTF8导致的乱码问题解决办法。首先注意一点,在新建数据库的时候字符集一定要选择UTF8,在PHPMYADMIN中新建数据库下,创建按钮的左边,有个下拉列表,默认是"整理",选择UTF8。你会发现表里数据不在是问号了。
但是网页的输出还是问号,不要急接着在PHP语句中要有所改动:
在mysql_connect(…连接参数);后加上mysql_query("SET NAMES 'GBK'");
但是如果网页很多,这样不是很麻烦,所以我在编写PHP时将所有数据库的操作写成一个类如:
class db{
….包含一些数据库调用方法….
//创建数据库连接并选择相应数据库
function createcon(){
mysql_connect(…);mysql_query("SET NAMES 'GBK'");
}
}
完毕!


Your sincere,



------------



Henry Zhu



2007-06-28




2007年6月26日星期二

how to use scp without password

how to use scp without password:
1) run this command to generate public key ssh-keygen -t rsa In response you'll see: "Generating public/private rsa key pair" "Enter file in which to save the key ... " Just hit enter to accept this. In response you'll see: "Enter passphrase (empty for no passphrase):" You don't need a passphrase, so just hit enter twice. In response you'll see: "Your identification has been saved in ... " "Your public key has been saved in ... " Note the name and location of the public key just generated (it will always end in .pub).
2) Copy the public key just generated to any server:/root/.ssh/authorized_keys
3) now you run "sudo scp filename user@serverName:/path/" Wow !!! It copied with no password!!

 

 

Note:须在本机上面生成钥匙对,然后把公匙发送到远程计算机,这样使用SCP的时候就不用输入远程计算机的密码了.

Step by step:

1.            ssh-keygen �t rsa

2.            Hit 'enter'

 

可以追加多个公匙:

[root@web07p .ssh]# ls -l

total 12

-rw-r--r--    1 root     root          220 Jan  8 01:25 250authorized_keys

-rw-r--r--    1 root     root          220 Jan  8 01:24 authorized_keys

-rw-r--r--    1 root     root         2906 Dec 27 18:35 known_hosts

[root@web07p .ssh]# ls

25023.pub  250authorized_keys  authorized_keys  known_hosts

[root@web07p .ssh]# cat authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAtupCHjuGftXqAUmIWNs4Dq9Tww8sGni5mA19XeUnZ2QOionV2owpGHvYbTUc/+jwgMVyzBBZXXv0m1mI+Kl0nLV9kWg1VqnF+5X7OqCoykNxXZPAVdaTO7xAqC/nmiAgmqK8vhVsOk2aM96s8b7a40Deex/Q7+yE8qrNXX9+FCE= root@db03p

[root@web07p .ssh]# cat 25023.pub >>authorized_keys

[root@web07p .ssh]# cat authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAtupCHjuGftXqAUmIWNs4Dq9Tww8sGni5mA19XeUnZ2QOionV2owpGHvYbTUc/+jwgMVyzBBZXXv0m1mI+Kl0nLV9kWg1VqnF+5X7OqCoykNxXZPAVdaTO7xAqC/nmiAgmqK8vhVsOk2aM96s8b7a40Deex/Q7+yE8qrNXX9+FCE= root@db03p

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAuiWname5RnDVRbyRg2mouwqTJs6TRF82GCf5k3GblxYYXq7WTp3MRN+v1dI9IAHUKM3bGSXAnIIHsJ04ZSBz+jvdTLfn8eE7K9ebZvfGWRNLwZMay2C3MUaa7DCpqnamMGy1nIw9w1ir/gfsQk/wxy7REqoHiU9hShGp0Qac/h8= root@web08

[root@web07p .ssh]#

Your sincere,
------------
Henry Zhu
2007-06-27

2007年6月24日星期日

linux下光盘镜像文件的制作与挂载

近日突发奇想试着在linux下用dd命令制作光盘镜像,试验成功,在此与诸位分享经验。

原本我只知道在linux终端中可以用"mount /mnt/disk.iso /mnt/temp -t iso9660 -o loop"命令直
接挂载iso镜像文件(这里假设iso文件为/mnt/disk.iso;挂载点为/mnt/temp),然后在/mnt/temp中就能浏览镜像内容
了。而最近受用dd命令复制磁盘引导区的启发,用" dd of=/mnt/disk.iso if=/dev/hdc"成功地制作了iso镜像文件
(这里假设光盘为/mnt/hdc;并事先新建/mnt/disk.iso文件)。

dd命令原本用于复制文件,但由于linux特殊的文件系统结构--它将所有的硬件设备均作为树状目录下的一个文件(一般位于/dev目录下),dd命
令正好可以把光盘设备中的全部信息原样复制到一个文件中,而这正是iso文件的原理。

至于dd命令的其他参数参见"man dd"。

2007年6月18日星期一

喜欢IDEA的25个理由

喜欢使用IntelliJ Idea的25个理由

IntelliJ Idea是一个相对较新的Java IDE。它是我所使用过的(我用过大部分Java开发环境)Java开发环境中最为有用的一个。高度优化的IntelleJIdea使普通任务变得相当容易。

通常不是较大的标签特性使一个产品真正有用。而是这些小的方面:里面的许多小的细节使整个包无缝集成及乐于使用。

下面是我真正喜爱Idea的一些理由。


1、感知语法词选择

反复使用Ctrl-w使所选表达式逐步增大直到选取整个文件。但是这一点听起来并不是很重要,它在与其它特性如"introduce variable"refactoring("引入变量"重整)相结合使用时才真正好用。我可以把脱字符置于复杂表达式上,按Ctrl-w直到选取所需范围然后按Ctrl-Alt-v为表达式引入一个新的变量。如果我要替换这个表达式的其他事件Idea甚至也可以自动做到。

2、多种导航形式

在一个工程里,Idea有很多种方法用于转换。除鼠标之外所有的命令都可以通过键盘实现(这一点对于像我这样难以忍受不停地切换到鼠标的人来说绝对不错)。Ctrl-n可以通过键入类名查找一个类。Ctrl-shift-n可以查找文件。Ctrl-e得到最近编辑的文件,通过键入文件名或者鼠标键选择。命令不仅可以容易地在你的工程两个视图里导航并且使整合操作变得轻而易举。Alt-f1可以是你在任何一个其他视图里选择当前文件。工程导航地方法太多在这儿不能全部列举。所有命令没必要像观点一样都给出概念。

3、 本地历史

开启本地历史,你源代码中的每一个改变(在tool和externally里)都被跟踪。这个特性救了我很多次所以我推荐它。不同的地方在一个绝对漂亮的差异查看器里高亮显示出来。

4、灵活的JUnit支持

单元测试可以独立运行。特殊的测试方法可以单独拉出来独立运行。Idea能够在一个包或者工程里自动运行所有测试而不需要手工启动一个麻烦的测试套件。在GUI运行器里的堆迹线上双击可以直接切换到源代码的相应行。就我个人认为我更喜欢文本运行器。它不但秀美而且速度更快功能更多。

5、设计优良的整合支持

Idea支持很多整合功能。更重要的使它们设计的好容易使用。有一些你会一直使用,也有一些几乎用不到。当你发现你需要他们时它们就成了一个大的时间节约器。

6、 代码助手

在Idea里有一些真正强大的代码编写助手。在这里我只能介绍给你一点它的好处。一个比较好的例子是"委托方法"助手。它允许你在你的类里面为一个对象实例委托方法调用。它并不是你每天都使用的东西,但当你需要它的时候你就会发现自己节省了大量的时间。另一个例子是产生冗余代码和等价特性。你会发现这是一个自己经常使用的特性。其他一些代码助手特性为:产生Getters/Setters,产生构造器与"surround with…"(译者注:被什么保护)等特性。

7、灵活的代码重格式化

关于代码怎样重格式化的选择有许多。它可以为每一个工程单独设置,所以没必要担心自己是否必须支持不同的代码标准。重格式化一个文件或者一个完整的工程眨眼间就可以完成。

8、 XML支持

Idea支持XML中的代码实现。如果没有定义图表或者DTD(文件类型定义)Idea将基于文件中已经包含的来实现。否则可能基于为文件定义的图表或者DTD来实现。Idea同时还会校正XML。

9、 直观简洁的GUI

更为好玩的是每一个程序中的函数都可以通过键盘访问的到。在一个开发工具里这是应该有的但可悲的是大多数IDE对键盘导航并不注意。

为了完成工作不必要在不同的视图之间切换,也不必要在不同的窗口之间选择了。

10、与文件系统自动同步

不管你的IDE是多么优秀,通常都需要在工具之外作一些工作。Idea在这一点上做的很好。大多数工程都可以在Idea里不用改变他们的结构就可以使用。Idea还可以检查文件在外部的更改情况。这不需要人工刷新以告诉Idea一个文件已被更改。

11、定制的键盘映射

Idea自带的默认键盘映射非常有用。如果有时需要改变也很容易做到。有些键也可以设置阻挡比如外来的工具与Ant目标等。

12、 动态的错误高亮显示

在键码时Java代码,XML与Java文档标签被动态解析,错误也会被报告。Ant建立文件甚至可为Ant工程句法提供额外支持。

13、 检查

运行代码检查以报告大量的代码中潜在的错误点。它可以编制成脚本以作为一个批量工作运行,结果也可以以网页的形式提交。

14、 完全理解JSP

Idea理解JSP的结构。作用于普通Java代码的众多功能同样适用于JSP(比如整合功能)。同时支持JSP调试。

15、灵巧的编辑功能

一些小技巧如键入匹配的引号及括号使得生活更加容易:)。

16、 支持EJB

Idea理解EJB,尽管它不包括对个别应用服务器的特殊支持。不管怎样最好与Ant一起使用。EJB支持容易使用而且实在-本来就是这样。
17、几乎没有向导

从前许多厂家都绑定大量的向导而不是设计一个简单易用的接口。虽然有向导但只是一个滥用的工具。Idea只包含了一个用于帮助创建新工程的向导,并且仍然能够创建一个对新手来讲容易使用的程序。

18、灵巧的模板

这些灵巧的模板是代码的片断,它们被用来做各种各样令人惊讶的事情。我第一次使用"iterate over collection"模板时就被震惊了。它不仅挑拣出正确的默认收集变量而且还知道我已经放进去了什么以及默认的方法。这个特性很难在纸上描述。下载一个测试版本试验一下吧。

19、最好的代码实现支持

Idea现在有三种代码实现支持包括实现默认得变量名称,JavaDoc以及其他代码细节。

20、集成Ant

Idea支持Ant建立工具。不仅是运行目标它还支持编译与运行程序前后运行目标,另外也支持绑定键盘快捷键。

在编辑一个Ant建立XML文件时,Idea还对组成Ant工程的XML部分提供支持。

21、未使用代码高亮显示

如果Idea检查出某一个变量或者方法没有被使用,它会把它作为一个不明显的警告显示出来。检查可用来做更详细的死代码分析。甚至JavaDoc标签也能被查出来。

22、小技巧

Ctrl-d复制选中的代码。如果没有选择则复制整行。在没有选择的情况下Ctrl-c拷贝一整行,Ctrl-x剪切一整行。

Ctrl-Shift-j会做一个想VI那样的连接,除非它是句法敏感的。比如有这么一行:

String s = "This is " +

" a split string";

连接之后成为:

String s = "This is a split string";



23、有规律的查找与替换表现



规律查找是可能的,但更美妙的事实是你也可以做规律替换。这一点可节约大量的时间。

24、快速JavaDoc

JavaDoc对任何一个标识符来说都可以通过Ctrl-q轻易地查看到。在编码实现期也可以访问。

25、意识动作

在Idea觉察到它可以通过某种方法帮助你时它会提供一些有用地选择。例如你要使用一个表达式使它可以与指定地变量相匹配,Idea会察觉到这一点然后给你一些选择,要么使用表达式要么改变你在使用地变量地类型。

2007年6月14日星期四

openSSH 升级笔记

tar xvzf openssh-3.9p1.tar.gz
cd openssh-3.9p1
./configure --prefix=/usr --with-pam --with-md5-passwords --sysconfdir=/etc/ssh
make
make install

正常情况已经升级完了,service sshd restart正常
ssh -V 已经显示新的版本
Your sincere,
------------
Henry Zhu
2007-06-15

2007年6月10日星期日

Linux vsftp 限制宿主目录


修改配置文件/etc/vsftpd/vsftpd.conf


chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/unchroot_list


在 /etc/vsftpd/unchroot_list中输入只能访问宿主目录的ftp用户。重启vsftp服务生效。