1 准备工作
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回显的内容用灰色,以示区别。像这样:$ cpcp: missing file argumentsTry `cp --help' for more information$ mysql
testmysql> select * from test.table1ERROR 1146: Table 'test.table1' doesn't existmysql>
另外,初学者注意:
用$符号开头的,是以普通用户身份执行的命令;
用#符号开头的,是以root身份执行的命令。
当然,在默认情况下,凡是普通用户可以执行的命令,root都可以执行。
2.2.2 配置文件
配置文件的内容,将用浅黄色背景,以免混淆。像这样:deb ftp://202.118.66.14/debian sid main non-free contribdeb-src ftp://202.118.66.14/debian sid main non-free contribdeb http://security.debian.org/
stable/updates main contrib non-free
上面列出了我所使用的sources.list,这个站点是debian在中国的某所大学的镜像,非常快。另外大家注意我用的是sid,如果你用stable,可能我们下载得到的软件的版本就会不同。
3 系列文章
本文是一个系列,将包括下面的部分:
第一章 Web服务器+数据库服务器
第二章 FTP服务器
第三章 邮件服务器
第四章 Samba服务器
第五章 域名服务器
第一章 在Debian上配置Apache+MySQL+PHP4
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的工作人员已经为你做好了一切。
你可以一口气把这些软件全部装上: # apt-get install apache php4 php4-gd php4-mysql mysql-server mysql-client
其中,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 /etc/apache/httpd.conf
顺便提一下,我非常喜欢这个叫做nano的编辑器,它很容易上手。
使用nano的ctrl+w功能找到下面这一行:
# LoadModule php4_module /usr/lib/apache/1.3/libphp4.so
把这一行前面的井号去掉,以便apache加载这个libphp4.so模块。
然后,配置默认页,找到:
DirectoryIndex index.html index.htm index.shtml index.cgi
改成:
DirectoryIndex index.php index.php3 index.html index.htm index.shtml index.cgi
然后再加上.php3扩展名的支持和php源码支持,找到:
## And for PHP 4.x, use:##AddType application/x-httpd-php .php#AddType application/x-httpd-php-source .phps
把后面两行修改成:
## And for PHP 4.x, use:#AddType application/x-httpd-php .php .php3AddType application/x-httpd-php-source .phps
3.1.2 修改默认字符集
让Apache把简体中文作为默认的字符集。找到这一行:
AddDefaultCharset on
修改成:
AddDefaultCharset gb2312
好,Apache就配置完了,按ctrl+o保存后,再按ctrl+x退出nano。
为了使我们的修改生效,需要重新启动Apache,运行:
# apachectl restart
apache 1.3 提供了这个apachectl工具,但是2.0就没了。
另外,注意一个技巧:Debian提供的服务器软件包,几乎都会提供一个脚本用于启动/终止/重新启动这个服务。脚本全部放在/etc/init.d/下面。
比如Apache,可以通过下面的命令控制:
# /etc/init.d/apache restart
其它的服务也可以如此操作。
3.2 MySQL配置
3.2.1 修改MySQL的口令
由于MySQL默认没有口令,为了安全起见,一定要修改你的口令!
先来看看你的mysql是不是真的没有口令:
$ mysqladmin version
如果你能够看到mysql的版本信息,证明目前MySQL没有口令。
好,运行mysqladmin password xxxxxx 修改口令:
# mysqladmin password xxxxxx
这里xxxxxx是你的新口令。
现在你需要运行 mysqladmin version --user=root --pass,然后输入口令,才能查看版本号等信息。
注意,上面命令中的--user=root --pass这一部分,可以简写为-u root -p。我们来测试一下,看口令是否生效:
# mysqladmin version -u root -pEnter password:
3.2.2 打开3306端口监听
这项工作要慎重。处于安全考虑,默认情况下,Debian把3306端口关闭了。因为,不少黑客通过它来攻击你的系统。如果你不通过其他机器来存取数据库,那么不要打开这个端口。
修改/etc/mysql/my.cnf,找到:
skip-networking
把它注释掉:
# skip-networking
3.2.3 修改默认字符集
让MySQL把简体中文作为默认的字符集。编辑/etc/init.d/mysql,找到这一行:
/usr/bin/safe_mysqld > /dev/null 2>&1 &
改成:
/usr/bin/safe_mysqld > --default-character-set=gb2312 > /dev/null 2>&1 &
好,重新启动MySQL:
# /etc/init.d/mysql restart
3.3 PHP配置
主要是要修改php的默认字符集,把它改成简体中文。编辑/etc/php4/apache/php.ini:
# nano /etc/php4/apache/php.ini
找到 ;default_charset = "iso-8859-1"这一行:
;default_charset = "iso-8859-1"
把前面的分号去掉,并改成: default_charset = "gb2312"
default_charset = "gb2312"
4 综合测试
好了,安装完了,我们来测试一下。
这一部分,高手完全可以略过。我主要考虑到初学者,才写了这些。
4.1 建立一个数据库
下面我们来创建一个简单的数据库,这个库里面只有一张表,叫做user,用来存放用户名/明文密码/出生日期/激活状态。