免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1055 | 回复: 0
打印 上一主题 下一主题

FreeBSD 6.0服务器搭建简易指南 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-23 11:40 |只看该作者 |倒序浏览
FreeBSD 6.0Web服务器搭建简易指南
   首先介绍哈安装这个系统的目的,主要是做公司的web服务器,在这之前从来也就没有接触过这个系统,在这里特别感谢王俊斌先生所著的《freebsd6.0架设管理与应用》一书给了我极大的帮助,当然还有
http://bbs.chinaunix.net
论坛的兄弟伙

1  system install
先介绍安装系统选择硬盘,如果是单硬盘安装,在选择硬盘的时候一般默认在最上面的就是你需要安装的硬盘,如果是raid 1 方式安装系统选择Ar() 打头的第一个,因为其中r表示raid,d表示disk,后面选择网卡也是一样,默认最上面一个就是你要使用的网卡
freebsd必须安装到主分区(此针对安装双系统:比如windowsxp和freebsd),最好先安装windows系统,然后采用工具软件再分一个主分区出来供freebsd使用,freebsd自带的引导程序非常简单简洁
分区不难,一般来讲根据屏幕提示进行操作就可以了,安装模式采用standard安装,使用inetd,ssh,telnet,不使用ftp,nfs,dhcp,兼容使用linux程序,(虽然telnet密码是明文发送方式相对来讲不安全,但是它使用简单,初学着推荐使用,而且telnet还可以在不需要的时候关闭) 最后安装确认
User Confirmation Requested
Visit the general configuration menu for a chance to set any last
options?            Yes   [ No ]
选择 [ No ] 然后键入 Enter 返回到主安装菜单。
然后在确认退出重启就安装好了

2 Ports tree update

必须安装 CVSup,因为是服务器我们不使用图形接口,所以安装 cvsup-without-gui:
# cd /usr/ports/net/cvsup-without-gui
# make install clean
在系统中有一份以 CVSup 更新 port tree 的设定文件范例,您可以直接加以修改或着先复制一份后再修改。我们将该设定文件范例复制到 /root 之后再加以修改:
# cp /usr/share/examples/cvsup/ports-supfile /root/
接着请以文书编辑软件打开 /root/ports-supfile 后,找到 host 的部份来设定所要使用的 CVSup 服务器。修改成cvsup.freebsdchina.org
# cvsup -g -L 2 /root/ports-supfile
上述指令中,参数 g 表示不使用图形接口,而参数 L 及其后所跟随的数字 2 表示我们要看到更新过程的记录的详细程度,数字可以从 0 ~ 2,最后的档名表示所要使用的设定档。
在您使用 cvsup 更新 port tree 后,我们可以使用下列指令查看目前安装的软件版本是否和 port tree 中的版本一样:
# pkg_version -v
使用 Port 安装了一堆软件后,如果软件有新的版本出来怎么办?FreeBSD 的 ports 管理工具中有一个好用的软件 – portupgrade
ports 来安装 portupgrade:
# cd /usr/ports/sysutils/portupgrade
# make install clean
如果您只想要升级某一个软件本身,而非所有相依的软件,只要使用 portupgrade pkgname 即可。如果您要升级所有和该软件相依的其它软件,则可以加上参数 -r。如果您要更新包含相依软件的相依软件,则可以使用参数 -R。另外,您可以使用参数 -m 来要求编译 (make) ports 时多传入一些参数,还可以使用参数 -f 要求就算版本一样也强制更新。

3 apache2 install
   我选择安装apache2,采用ports方式安装,因为这个对初学者来说很简单的,采用ports安装如果安装光盘里不存在这个数据包系统会自动去网络上寻找,所以在安装系统的时候最好配置好网卡,或者在系统安装完成后sysinstall 然后根据菜单来选择配置网卡

apache2安装步骤:
# cd /usr/ports/www/apache2
# make install clean
   如果你没有安装好ports看不到 /usr/ports这个目录,以 root 执行sysinstall命令,在菜单中选择 Configure 后按 Enter
    选择 Distributions 后按 Enter
    选择 ports 后按空格键
    选择 Exit 后按 Enter
    选择你要从 CDROM 或 FTP 安装等 跟着选单照做,最后离开 sysinstall

至此apache2在不出现意外的情况下已经安装成功


4  php5 install

# cd /usr/ports/www/mod_php5
# make install clean

出现一个窗口让您选择进阶设定,请记得选取 APACHE2
# cd /usr/ports/lang/php5-extensions
# make install clean
这个是安装一些php的常用模块,必须再选择下列几个常用的项目:CTYPE、EXIF、GD、ICONV、IMAP、PCRE、SESSION、ZLIB。 SESSION 尤其重要

php.ini 是 PHP 的设定档,若您使用 ports 安装,则你必须将设定文件范例 /usr/local/etc/php.ini-dist 复制成 /usr/local/etc/php.ini。我们可以经由修改 php.ini 来调整 PHP 的功能。
server-status 可以让我们了解 Apache 目前运作的情形,包括占用的系统资源、目前联机数量等。在使用 server-status 之前,我们必须先修改 httpd.conf,以打开此功能。

ExtendedStatus On
...
#
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the ".example.com" to match your domain to enable.
#
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 192.168.0.

首先要确认的是 Apache 有载入 mod_status.so 这个模块,接着我们将 ExtendedStatus 设为 On,以显示详细的服务器状态。最后是找到 server-status 的区段,并移除开头的 #。在 server-status 区段中,我们设定了 Deny、Allow,以限制只有从某个地方联机进来的使用者可以查看服务器状态。在上述的范例中,我们限制只有从 192.168.0.x 的使用者才可以看到 server-status。

5  ZendOptimizer3.0.0 install
   下载并上传ZendOptimizer3.0.0-freebsd6.0-i386.tar.gz
tar –zvxf ZendOptimizer3.0.0-freebsd6.0-i386.tar.gz
进入cd  ZendOptimizer3.0.0-freebsd6.0-i386目录
./install 直接安装,安装路径可以保持默认
由于版权原因这个不能直接在freebsd下ports网络安装,需手工下载自行解压安装
  

6  mysql install
   cd /usr/ports/databases/mysql50-server
# make WITH_CHARSET=GBK WITH_XCHARSET=all install clean(指定 MySQL 预设的字集为 GBK,并另外支持所有的字集)其实不带任何参数一样的方便使用
# cd /usr/ports/databases/php5-mysql
# make install clean

好了,现在我主要所需的几种服务已经安装完好,但是还没有具体配置也就没有什么用处了
下面介绍我这台服务器所做的主要配置:
开启telnet,ssh,ftp等服务,虽然传说中的telnet不是很安全,不过使用简单方便,而且你可以随时关闭
先把apache2+mysql放到rc.conf中,随系统一起启动
/etc/rc.conf
apache2_enable=“YES”
mysql_enable=“YES”
7  Apache设置
/usr/local/etc/apache2/httpd.conf
serverRoot “usr/local” 我修改过这个主目录,但出错就没有再试了,记住在编辑之前最好备份,如果你记不到自己做了什么修改后还可重头再来一次
ServerAdmin you@example.com 您的信箱,这个信箱地址当网页出现错误讯息时将出现在该页面上
ServerName www.example.com:80 设定主机名称及端口号,前面网址改成自己的ip地址或者localhost,其实这样是最方便的,如果你把你的服务器要存放到电信级机房去,前面如果是写的你的ip地址,那你还的再查找修改,而localhost就不再需要你修改httpd.conf了,主要你设置了正确的ip地址就可以了
UseCanonicalName 设定导向网址的方式
UseCanonicalName Off
Apache 在导向网址时,会参考您所设定的服务器名称及端口号,但当主机使用 NAT Port Forwarding 时,主机名称及端口号可能会不同,这时候我们必须将这个选项设为 On,以免 Apache 转向到错误的地址。
DocumentRoot "/usr/local/www/data" 网页根目录
   Options Indexes FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from all
必须将  也改成您的网页根目录位置
1:Options indexes FollowSymLinks  
为了安全起见,请把上面的“Indexes”删掉。否则别人可以浏览到您网站里的所有文件。
2:一个访问量较大的网站,apache默认的150连接肯定是不行的
在httpd.conf中查找:
找到这段之后,修改为:
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 1500
MaxRequestsPerChild 10000
DirectoryIndex 指定预设网页档名
DirectoryIndex index.php index.htm index.html index.html.var
加入PHP支持
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
然后存档推出启动apache
/usr/local/etc/rc.d/apach2.sh start
Stop
Restart
Apache 服务器状态与管理
server-status 服务器状态信息
  修改 httpd.conf打开此功能   ExtendedStatus On
修改后必须重启apache
test.php,并加入下列内容:
phpinfo();
?>
浏览器连到 http://192.168.0.1/server-status就可以查看  注:此ip地址为你设置的服务器ip地址
网页根目录权限设置 chmod –R 777网页根目录注:此为公司网站必须要这样设置,好象是有论坛的原因,设置成其他的都不行,没论坛不需要参考这个
AddDefaultCharset GB2312  解决出现中文乱码,默认使用GB2312

ftp设置:
在inetd中开启ftp服务
在etc/ftpusers文件中出现的用户名都是不允许用来连接ftp的
在etc/ftpchroot文件中定义ftp访问的目录
例:
webftp
@guest
john /var/ftp
@other /var/ftp
第一行是设定使用者 webftp 登入后,以自己的家目录为根目录。第二行的 @guest 表示只要是群组为 guest 的使用者,都以自己的家目录为根目录。而第三、四行分别表示使用者 john 及群组 other 都以 /var/ftp 为根目录。

Shtml文件显示设置
  (一)
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
主要就这3条命令就可以
Options FollowSymLinks MultiViews Includes
这句放在
网站目录选项里
(二)
网站目录下的 .htaccess文件中加入XbitHack status on
强制服务器将所有使用者可执行的文件视为SSI项

8  Mysql配置:
让开机就启动mysql修改/etc/rc.conf
mysql_enable=“YES”
`# /usr/local/bin/mysql mysql 进去mysql命令方式
# /usr/local/etc/rc.d/mysql-server.sh start
默认mysql初次使用是空密码
Mysqladmin –u 用户名 –p旧密码 password 新密码
mysql> UPDATE user SET password=password('你的密码') where user='root';
mysql> FLUSH PRIVILEGES;
登陆mysql
# /usr/local/bin/mysql -u root –p
接着提示输入密码
数据库备份
# /usr/local/bin/mysqldump -u root -p WWW > www.sql
导入数据库
# /usr/local/bin/mysql -u root -p WWW
- f参数表忽略数据库本身的错误,对于.sql可以不需要先建www库,直接
#/usr/local/bin/mysql –f –u root –p  
如在进入mysql>后执行show database;
看不见mysql库说明默认root用户的权限没有被打开可以拷贝一份其它在正常运行着的mysql系统/var/bin/mysql/mysql下的user.myd文件覆盖现系统下的user.myd文件,最好版本一致,须知道被拷贝mysql的user和password,然后再修改密码
方法一是在已知另外一个Mysql数据库密码的的前提下进行密码恢复的,如果没有这样的一个已知密码的Mysql数据库,我们又该如何恢复呢?我们使用在Mysql中文参考手册上介绍的一种方法,这种方法分几个步骤:
1:向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。
  killall -TERM mysqld //你必须是UNIX的root用户或者是你所运行的
SERVER上的同等用户,才能执行这个操作。
2:使用`--skip-grant-tables' 参数来启动 mysqld。 (LINUX下/usr/bin/safe_mysqld --skip-grant-tables , windows下c:\mysql\bin\mysqld --skip-grant-tables)  

3:然后就可以无密码登录到mysqld server ,此时Mysql的密码和刚安装时一样,都是为空。现在我们可以使用图六的方法用mysqladmin来改变mysql的密码了。
4:载入权限表,可以使用mysqladmin flush-privileges来刷新权限表。
MySQL 图形化管理工具介绍
MySQL Administrator 下载安装
MySQL Query Browser

附:简
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP