首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

操作系统

Vista | Windows 9X | Windows Server | Linux&Uinx | FreeBSD | 其它操作系统 |
首页 > 操作系统 > 其它操作系统 > Debian服务器设置入门教程之一 > 正文
金笛邮件系统

Debian服务器设置入门教程之一

出处:赛迪网 作者:kanaka 时间:2005-5-23 14:56:00
简单三步解决企业垃圾邮件难题

1.选择Apache+MySQL+PHP4

    你可能会问我:为什么不选择别的软件,而非得选择Apache+MySQL+PHP4的组合?呵呵,我要告诉你,著名的FreeLamp组合,说的就是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 .php3  AddType 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,用来存放用户名/明文密码/出生日期/激活状态。

<?php      $dbname='mytest';      $tablename='user';      $page=0;      $rowperpage=20;            mysql_connect("localhost", "root", "您的密码");            //下面这个viewData函数,是自己编的,用来显示数据      //从某种程度上讲,本程序起关键作用的就这么一句:      viewData($dbname,$tablename,$page,$rowperpage);                  ////////////////////////////////////////////////      //      // 往下仅仅是定义了两个函数而已,你可以不去看他      //      ////////////////////////////////////////////////                  //定义一个函数,用来返回查询状态      function echoQueryResult() {	global $queryStr, $errMsg;                     	if( $errMsg == "" ) $errMsg = "成功";	if( $queryStr != "" ) {     		echo "<table cellpadding=5>";		echo "<tr><td>查询:</td><td>$queryStr</td></tr>";		echo "<tr><td>结果:</td><td>$errMsg</td></tr>";		echo "</table><p>";	}      }         //定义一个函数,用来显示数据      function viewData($dbname,$tablename,$page,$rowperpage) {	global $mysqlHandle, $PHP_SELF, $errMsg,  $orderby;                     	echo "<h2>下面是您所查的数据:</h2>";      	$queryStr = stripslashes( $queryStr );	if( $queryStr == "" ) {		$queryStr = "SELECT * FROM $tablename";		if( $orderby != "" )			$queryStr .= " ORDER BY $orderby";	}      	$pResult = mysql_db_query( $dbname, $queryStr ); 	$errMsg = mysql_error();      	$GLOBALS[queryStr] = $queryStr;        	if( $pResult == false ) {		echoQueryResult();		return;	}	if( $pResult == 1 ) {		$errMsg = "成功";		echoQueryResult();		return;	}      	echo "<hr>";      	$row = mysql_num_rows( $pResult );	$col = mysql_num_fields( $pResult );      	if( $row == 0 ) {		echo "没有数据!表格是空的。";		return;	}      	if( $rowperpage == "" ) $rowperpage = 20;	if( $page == "" ) $page = 0;	else $page--;	mysql_data_seek( $pResult, $page * $rowperpage );      	echo "<table cellspacing=1 cellpadding=2>";	echo "<tr>";		echo '<th bgcolor="#FFCC66">';		echo "用户名";		echo "</th>";		echo '<th bgcolor="#FFCC66">';		echo "口令";		echo "</th>";		echo '<th bgcolor="#FFCC66">';		echo "出生日期";		echo "</th>";		echo '<th bgcolor="#FFCC66">';		echo "是否激活";		echo "</th>";	echo "</tr>";              	for( $i = 0; $i < $rowperpage; $i++ ) {		$rowArray = mysql_fetch_row( $pResult );		if( $rowArray == false ) break;		echo "<tr>";		$key = "";		for( $j = 0; $j < $col; $j++ ) {			$data = $rowArray[$j];      			$field = mysql_fetch_field( $pResult, $j );			if( $field->primary_key == 1 )				$key .= "&" . $field->name . "=" . $data;      			if( strlen( $data ) > 30 )				$data = substr( $data, 0, 30 ) . "...";			$data = htmlspecialchars( $data );			echo '<td bgcolor="#99CCCC">';			echo "$data";			echo "</td>";		}      		echo "</tr>";	}	echo "</table>";	echo "<hr>";      //$PHP_SELF      	echo "<font size=2>";	echo "<form action='$PHP_SELF?action=viewData&dbname=$dbname&	       tablename=$tablename&page=$page&rowperpage=$rowperpage'	        method=post>";	echo "<font color=green>";	echo "第".($page+1)."页/共".(int)($row/$rowperpage+1)."页";	echo "</font>";	echo " | ";	if( $page > 0 ) {		echo "<a href='$PHP_SELF?action=viewData&dbname=$dbname&		        tablename=$tablename&page=".($page).		        '&rowperpage='.$rowperpage;		if( $orderby != "" )			echo "&orderby=$orderby";		echo "'>上一页</a>";	} else		echo "上一页";	echo " | ";	if( $page < ($row/$rowperpage)-1 ) {		echo "<a href='$PHP_SELF?action=viewData&dbname=$dbname&		    tablename=$tablename&page=".($page+2).		    '&rowperpage='.$rowperpage;		if( $orderby != "" )			echo "&orderby=$orderby";		echo "'>下一页</a>";	} else		echo "下一页";	echo " | ";	if( $row > $rowperpage ) {		echo "<input type=submit value='跳到第'>";		echo "<input type=text size=4 name=page>页";	}	echo "</form>";            	echo "<form action='$PHP_SELF?action=viewData&dbname=$dbname&	           tablename=$tablename&page=$page&rowperpage=$rowperpage'	           method=post>"; 		echo "	目前每页显示记录数为".$rowperpage."条,您可以";		echo "<input type=submit value='改为'>";		echo "<input type=text size=4 name=rowperpage>条/页";      	echo "</form>";	echo "</font>";      }             ?>



    我好长时间没写程序了,连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服务器设置入门教程之三
  • Debian服务器设置入门教程之二
  • Debian服务器设置入门教程前言
  • NetBSD操作系统在VMware下的安装指南
  • OpenBSD入门
  • SCO UNIX系统安装全图解
  • 怎样选择服务器操作系统?
  • Netware 6.5操作系统安装全程图解
  • 在Fedora core 4.0 加载NTFS和FAT32分区详述
  • IBM专家解析UNIX和Windows之间区别
  • Gentoo 完整的USE参数清单中文详解
  • Fedora Core下声卡驱动全功略
  • 建立针对arm-linux的交叉编译环境
  • Debian服务器设置入门教程之一
  • OpenBSD2.8服务器配置实务手册
  • 自由广告区
     
     
    WINMAIL 让您轻松架设邮件系统
    eqmail
    最新软件下载
  • ORF Enterprise Edition 4.2 正式版
  • WinWebMail 3.7.7.3 标准版
  • WinWebMail 3.7.7.3 企业版
  • BMail祺邮
  • Merak Email Server for Windows 9.3.1..
  • Merak Email Server for Linux 9.3.1 ..
  • Merak Email Server 9.3.1 For Windwos..
  • AXIGEN Mail Server 6.1.1 for Windows
  • AXIGEN Mail Server 6.1.0 for Linux
  • ADModify.NET下载
  • symantec10.1基本安装及配置视频教程
  • Backup Exec System Recovery之备份视..
  • 今日邮件技术文章
  • 美大学生侵入佩林州长个人邮件账户被逮捕
  • 思科IronPort发布新电子邮件安全设备
  • 深耕"软件+服务" 微软300城市巡展睿邮
  • 从黑客常用攻击手段看WEB应用防护
  • 消息人士透露雅虎与AOL合并细节将于本..
  • 谷歌提供的电子邮件存档时间延长为十年
  • 雅虎将在邮箱服务中整合新版在线日历
  • 9月垃圾邮件总量减少 与ISP倒闭有关
  • 垃圾邮件发展的四大趋势
  • 韩国议员称中国黑客冒充青瓦台发送病..
  • Vista难成气候 Windows XP寿命被延长
  • 赛门铁克升级DLP产品及反垃圾邮件网关
  • 最新专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • 移动电子邮件专题
  • Apache James 专题
  • IMail Server 操作指南
  • ISA Server 2004 使用专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2007 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号