关于FreeBSD的介绍,我这里就不写了,大家可以自己找找,有很多
如果你是高手的话,请多多批评指正,因为本人毕竟只研究了3个星期左右,难免出现纰漏
本文的目的,是记录我自己的研究过程,仅作参考,千万不要完全照搬
最好的教程是:
FreeBSD Handbook 简体中文版
如果大家真心要驾驭FreeBSD,一定要看!
最后,致那些像我一样如果对FreeBSD感兴趣的新手:
一定要有耐心!坚持不下去的时候多想想当年学习Windows的情况^_^说实话,FreeBSD的界面不友好,别说Windwos跟Mac,可能连Linux都不如-_-!不过,在它桀骜不驯的外表下,是一颗强健稳定的心,需要用耐心去征服——并且这也是值得的!
本文阅读说明
QUOTE: (这样的表示在命令行下的输入和执行)
CODE: (这样表示的是选项)
这样表示的是文件内容(如果原文件没有,本文有,请新增;如果原文件有,本文没有,则保持不变;如果原文件有,本文也有,请按照范例修改;如果原文件跟本文都没有,自己看着办吧^_^)
好了,按步骤开始!
一、安装系统
这部分比较简单
出现启动菜单时,按2(禁用acpi启动,服务器不用电源管理)
选择国家->China
选择键盘布局->USA ISO
出现安装菜单,选择Standard
提示需要对硬盘分区,回车,出现分区表,比较简便的方法是按a(使用整个硬盘),分区完成后,按q退出(磁盘分区请参考:http://doc.code365.net/Manual/FreeBSD_HandBook/install-steps.html和http://doc.code365.net/Manual/FreeBSD_HandBook/configtuning-initial.html)
提示选择启动方式->Standard(服务器用的是单系统,所以不需要启动管理器Bootmgr)
提示需要划分lable,回车,出现磁盘编辑画面,比较简便的是按a(自动划分),完成后,按q退出出现安装选项,选择Minimal(最小化安装)
选择安装媒体,当然是CD/DVD,出现提示,再次确认。2-3分钟后安装完成,出现提示,回车确认
提示是否配置网络->Yes
出现菜单,选择接入公网的网卡/接口
提示是否配置ipv6->No
提示是否通过DHCP配置(根据自己情况选择)
出现网络配置界面,依次检查/填好各选项,确认(如果自定义的网络设置,会提示是否立即应用,确认即可)
提示是否将本机作为网关->No
提示是否配置inetd->No
提示是否启用SSH连接(远程控制)->Yes
提示是否应用匿名的FTP->No
提示是否将本机作为NFS服务器->No
提示是否将本机作为NFS客户端->No
提示是否配置系统控制台->No
提示是否设定时区/时间->Yes
提示是否与UTC同步->No
选择区域->Asia
选择国家->China
选择时区->1
出现提示,回车确认
提示是否启用Linux二进制兼容->No(可以兼容90%以上的Linux程序,不过服务器用不上)
提示配置鼠标->No
提示是否永远禁用ACPI->Yes(服务器无需电源管理)
提示是否浏览软件包->No
提示是否增加用户->Yes(在这里配置将来的远程访问用户)
出现菜单,选择User
填好Login ID ,Member groups = wheel , Password后确认(提示:FreeBSD默认情况下只允许wheel用户组成员远程登录,需要修改关键配置时可以su到root,这是“”洋葱式“安全机制的体现)
退出编辑用户菜单
提示配置root密码,回车确认
输入2次密码
提示是否编辑其它选项->No
退出安装菜单
出现提示->Yes
第一次启动时,会提示生成远程访问密钥,回车确认
二、系统更新和优化
同步系统时间
QUOTE:
# ntpdate clepsydra.dec.com
安装cvsup
QUOTE:
# pkg_add –r cvsup-without-gui ; rehash
选择需要更新的内容(如果不在乎更新时间的话可以跳过)
可以有选择地更新系统源码和ports树,参考http://doc.code365.net/Manual/FreeBSD_HandBook/cvsup.html
关于release跟stable的选择:从字面上理解,stable是稳定版之意,并且好多人认为stable是做服务器的最佳选择。不过官方称stabel只不过是current的一个分支,并不推荐用于生产服务器,生产级服务器应选择release(正式发行)版本http://doc.code365.net/Manual/FreeBSD_HandBook/current-stable.html
QUOTE:
# ee /usr/share/examples/cvsup/standard-supfile
# ee /usr/share/examples/cvsup/ports-supfile
更新系统源码跟ports树
根据自己网络情况选择速度最快的cvsup镜像站点,官方列表http://doc.code365.net/Manual/FreeBSD_HandBook/cvsup.html
QUOTE:
# cvsup -L 2 -h cvsup3.tw.freebsd.org /usr/share/examples/cvsup/standard-supfile ; rehash ;
# cvsup –L 2 –h cvsup3.tw.freebsd.org /usr/share/examples/cvsup/ports-supfile ; rehash
编译内核
QUOTE:
# dmesg | more #获得当前设备资源列表
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
# ee MYKERNEL
# 具体选项请参考http://doc.code365.net/Manual/FreeBSD_HandBook/kernelconfig-config.html
其中需要注意的是
CODE:
ident MYKERNEL #内核标记名称
options QUOTA #启用磁盘配额
QUOTE:
# cd /usr/src
# make -j4 buildworld ; rehash ; make –j4 buildkernel KERNCONF=MYKERNEL ; rehash ; make –j4 installkernel KERNCONF=MYKERNEL ; reboot
QUOTE:
# cd /usr/src
# mergemaster –p ; make –j4 installworld ; mergemaster ; reboot
(出现提示,回车继续,或输入i安装)
QUOTE:
#cd /usr/obj
#chflags -R noschg *
#rm -rf *
网络优化
QUOTE:
# ee /etc/sysctl.conf
CODE:
net.inet.ip.check_interface=1
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.tcp.recvspace=65535
net.inet.tcp.sendspace=65535
kern.ipc.somaxconn=32768
kern.ipc.maxsockbuf=2097152
net.inet.ip.redirect=0
net.inet.icmp.icmplim=100
net.inet.tcp.always_keepalive=1
net.inet.tcp.delayed_ack=1
net.inet.udp.maxdgram=65535
net.local.stream.sendspace=65535
net.local.stream.recvspace=65535
kern.maxfiles=65536
kern.maxfilesperproc=65536
net.inet.udp.checksum=1
net.inet.tcp.msl=7500
net.inet.tcp.syncookies=1
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
kern.securelevel=0
QUOTE:
# cd /usr/ports/chinese/cce/
# make install clean ; rehash
以后就可以通过cce命令来启动中文环境了
安装perl
QUOTE:
# cd /usr/ports/lang/perl5.8
# make install clean ; rehash
安装openssl(可选)
QUOTE:
# cd /usr/ports/security/openssl
# make install clean ; rehash
安装Ports检查更新工具
QUOTE:
# cd /usr/ports/sysutils/portupgrade
# make install clean ; rehash
默认选项
2、AMP环境配置
安装mysql
QUOTE:
# cd /usr/ports/databases/mysql40-server
# make install clean ; rehash
# cd /usr/ports/databases/mysql40-scripts
# make install clean ; rehash
# /usr/local/bin/mysql_install_db
# ln -s /usr/local/lib/mysql/libmysqlclient.so.12 /usr/lib
# chown -R mysql /var/db/mysql
# chown -R root /var/db/mysql
# chown -R mysql:mysql /var/db/mysql
# chmod 700 /var/db/mysql
优化mysql
QUOTE:
# ee /etc/my.cnf
CODE:
[mysqld]
skip-networking
skip-innodb
skip-bdb
skip-name-resolve
skip-locking
#log-bin
# 以下选项基于2G内存
key_buffer=512M
max_allowed_packet=4M
table_cache=1024
thread_cache=64
join_buffer_size=32M
sort_buffer=32M
record_buffer=32M
max_connections=512
wait_timeout=120
interactive_timeout=120
max_connect_errors=30000
long_query_time=1
max_heap_table_size=256M
tmp_table_size=128M
thread_concurrency=8
myisam_sort_buffer_size=128M
mysql随系统启动
QUOTE:
# cp /usr/local/etc/rc.d/mysql-server /usr/local/etc/rc.d/mysql.sh
# ee /etc/rc.conf
CODE:
mysql_enable="YES"
启动mysql
CODE:
# /usr/local/etc/rc.d/mysql-server.sh start
安装apache22
QUOTE:
# cd /usr/ports/www/apache22
# make install clean ; rehash
安装过程中,取消ipv6
apache随系统启动
QUOTE:
# ee /etc/rc.conf
CODE:
apache22_enable="YES"
启动apache
QUOTE:
# /usr/local/etc/rc.d/apache22.sh start
安装php
QUOTE:
# cd /usr/ports/lang/php5
# make install clean ; rehash
安装过程中,选择apache,取消ipv6
安装php扩展
CODE:
# cd /usr/ports/lang/php5-extensions
# make install clean ; rehash
选择
CALENDAR
CTYPE
GD
ICONV
MBSTRING
MYSQL
PCRE
SESSION
SOCKETS
ZIP
ZLIB
配置php
QUOTE:
# cd /usr/local/etc
# cp php.ini-recommended php.ini
# ee php.ini
CODE:
; 基于安全考虑,禁用某些功能,根据自己情况修改
disable_functions = passthru, exec, phpinfo, system, ini_alter, readlink, symlink, leak, proc_open, popepassthru, chroot, scandir, chgrp, chown, escapeshellcmd, escapeshellarg, shell_exec, proc_get_status
配置apache
具体选项参考http://doc.code365.net/Manual/ApacheManual/
QUOTE:
# ee /usr/local/etc/apache22/httpd.conf
CODE:
DocumentRoot "/usr/www" # 网站主目录
<Directory "/usr/www"> # 网站主目录
Options FollowSymLinks
<IfModule dir_module>
DirectoryIndex index.html index.php index.htm
</IfModule>
<IfModule mime_module>
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
AddDefaultCharset GB2312
ServerTokens Prod
ServerSignature Email
<IfModule prefork.c> # 优化针对BSD的网络支持
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 1500
MaxRequestsPerChild 10000
</IfModule>
安装ZendOptimizer
ZendOptimizer属于商业软件,所以不能通过ports编译安装,只能下载安装
QUOTE:
# ln -s /lib/libm.so.3 /lib/libm.so.2
# mount /cdrom
# cp -R /cdrom/Zend /usr/ports/devel/Zend
# cd /usr/ports/devel/zend
# ./install
一路默认
安装phpmyadmin
也可以通过传统方式,通过ftp下载/上传到机器上,配置好参数即可运行。
QUOTE:
# cd /usr/ports/databases/phpmyadmin
# make install clean ; rehash
默认选项
QUOTE:
# cp -R /usr/local/www/phpMyAdmin /usr/www/phpMyAdmin
本文作者: