作者:kanaka [冷罡华]
联系: kanaka@yeah.net,leng@haier.com
版本:0.2.1
版权:GPL
最后修改:2002年11月26日
更新记录
◆ 2002年11月26日,0.2.1版。
修改了第一章和第五章的一些错误,感谢afta兄和ckf兄,他们在linuxsir.com论坛上给我提出修改意见。
◆ 2002年11月15日,0.2版。
修改了一些错误;去掉了每章的版本号信息,统一全文版本;加上了总目录和各章的目录,方便阅读。
◆ 2002年11月13日,0.1版全文写作完毕。
第一章 在Debian上配置 A pache+ M ySQL+ P HP
第二章
在Debian上用 W u-ftpd配置FTP服务器
前 言
1 准备工作
2 一些废话
3
系列文章
4 沟通
1.1 你需要先安装Debian 3.0(Woody)基本系统,我建议你仅仅安装基本系统就可以了,保持一个清洁的Debian。然后你运行一下apt-get
update,以便系统生成可以安装的软件的列表。
建议你保留你的计算机名字为Debian,域名为test.com。我就是这么做的,所以我的文章里面也会这么写,所以,如果你的计算机也做同样设置,看起文章来会省点劲儿。
1.2 最起码,你需要掌握这几条命令的用法:apt-get
install / apt-get remove / apt-cache search 。
2 一些废话
2.1 由来
我出生在农村,家里穷,头一次接触计算机是1996年,那是大二的下学期,我们专业上开了Basic语言的课程。1998年我毕业了,这年冬天,我第一次接触了GNU/Linux。那时接触的是TurboLinux。第一次接触Debian,是在2002年10月。相见恨晚呐!这是我见过的最优秀的发行版!完全的可定制!给你充分的自由!
由于Debian的特性,使得安装和配置软件极为简单。然而,网络上的众多教程,很少有基于Debian作介绍的,对于初学者来说,他们需要基于Debian写的教程;更重要的原因是,我遇到了一个叫做linuxsir.com的论坛,我由衷的说,这是我在国内见过的最优秀的论坛!大家努力营造了一个非常好的学习气氛,它能连续不断得给我感动。当我看到众多Debian的初学者心急如焚时,我就决定,写一些教程,遵循GPL,以我微薄之力,回馈linuxsir.com给我的帮助,并一同感谢全世界为了Debian默默耕耘的朋友,于是我就开始写了。
由于接触Debian时间太短了,难免疏漏,请高手们不要客气,给我指出来,以便我成长,呵呵。
2.2 本文的组织方法
我将力求用最简洁的语言,说明我想说的东西。我很反感那些晦涩的文章。但是为了照顾初学者,我会写得尽量详细。
2.2.1 控制台命令
在Linux控制台上输入的命令,用黑色背景、 红色文字 表示;系统回显的内容用 灰色 ,这样最接近Linux控制台的颜色。在MySQL控制台里面,输入的命令用 紫色 ,MySQL回显的内容用 灰色 ,以示区别。像这样:
另外,初学者注意:
用$符号开头的,是以普通用户身份执行的命令;
用#符号开头的,是以root身份执行的命令。
当然,在默认情况下,凡是普通用户可以执行的命令,root都可以执行。
2.2.2 配置文件
配置文件的内容,将用浅黄色背景,以免混淆。像这样:
上面列出了我所使用的sources.list,这个站点是debian在中国的某所大学的镜像,非常快。另外大家注意我用的是sid,如果你用stable,可能我们下载得到的软件的版本就会不同。
3 系列文章
本文是一个系列,将包括下面的部分:
第一章 Web服务器+数据库服务器
第二章 FTP服务器
第三章 邮件服务器
第四章 Samba服务器
第五章 域名服务器
4 沟通
有任何问题,请与作者联系,leng@haier.com,或者kanaka@yeah.net。
第一章 在Debian上配置 A pache+ M ySQL+ P HP4
本章目录
2 安装
3 配置
4 综合测试
5 结束语
1 选择Apache+MySQL+PHP4
你可能会问我:为什么不选择别的软件,而非得选择Apache+MySQL+PHP4的组合?呵呵,我要告诉你,著名的Free
Lamp组合,说的就是Linux/Apache/MySQL/PHP/Perl/Python,你可以到www.freelamp.com上面去看看。PHP在互联网上的应用,正成燎原之势。如果作Web开发,在我看来,别无选择,就是PHP。详细情况可以到www.php.net上面去了解。MySQL非常轻便,性能卓越。Apache就不必多说了,互联网上没有几个Web站点不用它。
2 安装
在Debian上安装软件,真的是非常简单。不需要configure,不用make,不用make
install,遍布全球的Debian的工作人员已经为你做好了一切。
你可以一口气把这些软件全部装上:
其中,php-gd是一个非常棒的图形库,如果你不需要使用php生成动态图片,就不用装。
这时,系统会自动列出一些相关的软件,然后问你是不是要继续(说Debian棒,这是其中一点:自动查找软件关联,自动补充安装)——Debian给你一次反悔的机会,如果你现在不想装了,那么按n,就退出来了。
当然我们在这里要按回车,继续安装。现在Debian会到你的sources.list里面指定的站点去下载这些软件。下载完后,会自动进行配置,配置过程中会征求你的意见,问你几个问题。
比如现在他就问你:你要在计算机启动时就运行MySQL吗?当然选Yes了,否则每次要用的时候才启动,怪麻烦的。
又问你:你想运行apacheconfig脚本吗?默认是N,不过我们输入Y让它替我们配置一下。配置完后,问你是否保存配置,当然是了,呵呵。然后,他会问你是否要启动Apache,好,启动它。
接着,系统会自动配置PHP。由于你选择了php-gd和php-mysql,他会问你是否把gd.so和mysql.so的支持写入php.ini,回答是。你看,Debian聪明吧。
3 配置
3.1 配置Apache
3.1.1 提供php支持
Apache刚装上的时候不提供php支持。当你点击有.php脚本的连接,浏览器会下载这个脚本:-(
修改/etc/apache/httpd.conf,以便提供php支持。运行:
顺便提一下,我非常喜欢这个叫做nano的编辑器,它很容易上手。
使用nano的ctrl+w功能找到下面这一行:
把这一行前面的井号去掉,以便apache加载这个libphp4.so模块。
然后,配置默认页,找到:
改成:
然后再加上.php3扩展名的支持和php源码支持,找到:
把后面两行修改成:
3.1.2
修改默认字符集
让Apache把简体中文作为默认的字符集。找到这一行:
修改成:
好,Apache就配置完了,按ctrl+o保存后,再按ctrl+x退出nano。
为了使我们的修改生效,需要重新启动Apache,运行:
apache 1.3 提供了这个apachectl工具,但是2.0就没了。
另外,注意一个技巧:Debian提供的服务器软件包,几乎都会提供一个脚本用于启动/终止/重新启动这个服务。脚本全部放在/etc/init.d/下面。
比如Apache,可以通过下面的命令控制:
其它的服务也可以如此操作。
3.2
MySQL配置
3.2.1 修改MySQL的口令
由于MySQL默认没有口令,为了安全起见,一定要修改你的口令!
先来看看你的mysql是不是真的没有口令:
如果你能够看到mysql的版本信息,证明目前MySQL没有口令。
好,运行mysqladmin password xxxxxx 修改口令:
这里xxxxxx是你的新口令。
现在你需要运行 mysqladmin version --user=root --pass,然后输入口令,才能查看版本号等信息。
注意,上面命令中的--user=root --pass这一部分,可以简写为-u
root -p。我们来测试一下,看口令是否生效:
3.2.2
打开3306端口监听
这项工作要慎重。处于安全考虑,默认情况下,Debian把3306端口关闭了。因为,不少黑客通过它来攻击你的系统。如果你不通过其他机器来存取数据库,那么不要打开这个端口。
修改/etc/mysql/my.cnf,找到:
把它注释掉:
3.2.3
修改默认字符集
让MySQL把简体中文作为默认的字符集。编辑/etc/init.d/mysql,找到这一行:
改成:
好,重新启动MySQL:
3.3 PHP配置
主要是要修改php的默认字符集,把它改成简体中文。编辑/etc/php4/apache/php.ini:
找到 ;default_charset = "iso-8859-1"这一行:
把前面的分号去掉,并改成:
default_charset = "gb2312"
4 综合测试
好了,安装完了,我们来测试一下。
这一部分,高手完全可以略过。我主要考虑到初学者,才写了这些。
4.1 建立一个数据库
下面我们来创建一个简单的数据库,这个库里面只有一张表,叫做user,用来存放用户名/明文密码/出生日期/激活状态。
#
mysql -u root -p
Enter password:
mysql> CREATE DATABASE
mytest;
Query OK, 1 row affacted (0.00 sec)
mysql> USE
mytest;
Database changed
mysql>
CREATE TABLE user (
-> username varchar(16) NOT NULL default '',
-> password varchar(16) binary NOT NULL default '',
-> birthday date NOT NULL
default '1975-12-31',
-> actived int(1) NOT NULL default
'0',
-> UNIQUE KEY username (username)
-> );
Query OK, 0 row affected (0.00 sec)
mysql> INSERT INTO user VALUES
('kanaka','kanakapswd','1975-09-18',0);
Query OK, 1 row affected (0.01 sec)
mysql>
INSERT INTO user VALUES
('atfa','atfapswd','1977-10-30',1);
Query OK, 1 row affected (0.00 sec)
mysql>
quit
Bye
注意,默认情况下,所有的数据库放在/var/lib/mysql/下面。每个数据库占一个目录,目录名就是数据库名。你创建数据库的时候,系统自动就把它放在这个目录下面了。
4.2 编写一个php脚本
下面我们来编写一个简单的php脚本,来调用上面数据库里面的内容。文件名比如叫做mytest.php。
我好长时间没写程序了,连php的语法都快忘了,呵呵。我去年给公司的生产线编写了一个应用,上面就是摘抄下来的,我本来想写一个最简单的程序在这里,但是我还是把两个函数保留在里面了,为的是让初学者有个借鉴,呵呵。
4.3 测试
把这个mytest.php复制到/var/www下面,在你的浏览器里面,访问这个mytest.php,就会看到数据库的内容。
之所以把mytest.php放到/var/www下面,是因为,默认情况下,Apache的httpd.conf里面定义了把/var/www作为文档根目录。
初学者注意,在linux控制台下面有好几款浏览器,w3c,lynx,links等等。三个各有优劣,都不完美。个人感觉links比较适合初学者,因为按下esc键之后有菜单出现。
5 结束语
本文是《Debian服务器设置入门》系列教程之第一章,建议您按照顺序阅读,有问题可以和作者 kanaka 联系。
第二章
在Debian上用 W u-ftpd配置FTP服务器
本章目录
1 开场白
3 安装
4 配置
5 测试
6 TODO
7 结束语
8 参考文献
1 开场白
在五年之前,我还觉得Ftp这个东西很神秘。那时候,我身边的大部分人,甚至以为http就是互联网的全部。 我们从网站下载文件,用的大多也是http连接。但是,事实上,ftp (File
Transfer Protocol,文件传输协议) 这个服务已经存在很长时间了,如果要提供文件下载,除了使用http的方式连接外,我们完全可以提供ftp服务,这样可以节省一些服务器资源,比如连接数什么的。ftp是专门设计用来在两台电脑之间传输数据的,可以避免太多的远端执行。尤其是,当传输的文件比较大时,ftp会比http节省资源。另外,ftp可非常方便地上传文件,而http则没有那么方便快捷。
2 选择wu-ftpd
用apt-cache search
命令看一下,都有什么ftp服务器可以选择:
你会发现,Debian为我们制作了很多个ftpd服务器软件包,包括atftpd、bsd-ftpd、ftpd、oftpd、muddleftpd、proftpd、twoftpd、vsftpd、wu-ftpd等等。其中应用最广泛的,应该是wu-ftpd了,这是目前最流行的一种免费FTP服务器软件,目前绝大多数的FTP站点都是由wu-ftpd来架设的,它是当初由华盛顿大学wuarchive.wustl.edu开发出来的,是一个以效率以及稳定性为考量的程序。wu-ftp如此流行,一个重要的原因是因为它强大的功能,例如:
◆ 可控制不同网域的机器对 FTP服务器的存取权限和访问时段。
◆ 使用者在下载文件时,可自动对文件进行压缩或解压缩工作。
◆ 可以记录文件上传或下载的过程。
◆ 可以限制最高访问人数,以维持系统的最佳运行效率。
◆ 可显示相关的信息,以便用户了解当前的接收状态。
◆ 可暂时关闭FTP服务器,以便系统维护。
目前Debian提供的wu-ftpd版本是2.6.2。好,我们就选择这个wu-ftpd了!
3 安装
安装很简单,用下面的命令安装:
它会问你,你想设置一个匿名ftp账号吗?输入y,回车。
接着让你输入ftp根目录,默认是/home/ftp,我们就用默认的吧。
然后它问你,你想创建一个目录,用来让用户上传文件吗?输入y,创建一个。
安装程序会创建一个新的用户ftp,并把这个用户加入到一个新创建的组ftp中去。
然后它会说:
(它说由于无法判断所需的版本,libnss_files.so没有安装,要手工安装的话,到/home/ftp/lib去找。这块我还没捣鼓明白,还请高手赐教)。这里需要对初学者说明一下,系统从/etc/passwd这个文件里面读取资料,得到UID和GID,来决定用户对文件的存取权限。一会儿我们会讲到,在ftpaccess这个配置文件里,可以为某些UID的用户或者某些GID的组设置权限。
4 配置
其实,在安装完之后,不需要做任何配置,我们的ftp服务器已经可以使用了。如果你跟我一样是个急性子,在进行配置之前你就可以尝试登录了。这时,Debian上的普通用户,还有匿名用户都可以访问它,也可以向incoming目录上传文件,只不过看不到已经上传的文件。但是我们仍然需要做一些配置,因为我们需要定制自己的安全性。
为了确保提供FTP服务不会给我们的系统带来安全隐患,我们首先要采取以下措施:
4.1 配置文件介绍
wu-ftpd的配置文件放在/etc/wu-ftpd下面,主要有:
ftpaccess —— 这个是wu-ftpd的主配置文件,控制存取权限
ftpconvertions —— 这个文件定义了文件压缩/解压缩转换方案
ftpservers —— 用来设置多个IP地址和域名,以对应到不同的虚拟主机
ftpusers —— 凡是写入这个文件里面的用户,都不能连接ftp服务器
msg.denu —— 拒绝访问时,显示给用户的信息
msg.nodns —— 当DNS查询失败时,显示给用户的信息
msg.toomany —— 当连接数过多时,显示给用户的信息
pathmsg ——
当用户使用了非法路径/文件名时,显示给用户的信息
welcome.msg ——
当用户建立连接时,显示给用户的欢迎信息
在/usr/share/doc/wu-ftpd/examples下面,有一些配置文件的样本,大家可以参照一下。
4.2 修改/etc/wu-ftpd/ftpaccess配置
这个文件是wu-ftpd的主配置文件,许多重要的选项都包含在这里面,比如,要想让Debian上的用户可以访问,就必须在这个文件里面的Class段落里面做出定义。
下面我们按照ftpaccess文件的顺序,一段一段地介绍。平常不大用的,或者我不懂的,就不介绍了:-),要不然篇幅会非常大。
4.2.1 管理员的email地址
4.2.2 UID/GID设置
4.2.3 登录失败数
4.2.4 目录限制
4.2.5 不可执行S99vE GROUP/S99vE GPASS
4.2.6 定义 用户类别—— class
由class定义的用户和IP地址才能够登录进来。 FTP服务器上有三种类型的使用者,分别是“real”——表示在该FTP服务器上有合法帐号的用户;“guest”——表示另行定义的某些使用组的使用者;“anonymous”——权限最低的匿名用户。有了这三种使用者以后,在ftpaccess文件中就可以根据不同的使用者设置不同的存取权限。但是,只有三种定义一般是不够的,我们可以根据class的语法定义更多的控制命令。
语法是:
其中:<class 名称>则可自行设定,<种类>就是上面说的三种,<用户地址>是指ftp上来的用户会用到的IP地址。
以下是一些例子:
4.2.7
为各个类别的用户设置最大连接数
4.2.8 设置readme文件
4.2.9 是否使用压缩
4.2.10 记录日志
4.2.11 超时设置
4.2.12 一些命令的权限
4.2.13 匿名用户上传权限
由于ftpd是被inetd调用的,所以,我们修改了配置文件后,不需要重新启动wu-ftpd。
对于普通ftp应用,修改一下上面这个文件就足够了。如果你还有更高的要求,就继续往下看。
http://soft.xuezhishi.net/OS/Linux/xsrm/2007-01-19/15677.html