分享
 
 
 

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

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

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.php3index.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联系。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有