1.最小化安装,(ports, man, bash-3.1.17, perl-5.8.8)
2.安装完成重启后更改shell
chsh -s /usr/local/bin/bash
运行后,重新登录或是重启系统
3.配置网络
运行:sysinstall
选择 Configgure -> Networking -> Interfaces
跳过IPV6,如没有DHTP服务器则跳过,直接进行网络设置
配置完成后运行ping www.sina.com.cn 看网络是否完成
用ifconfig看网络配置参数是否正确
ntpdate clepsydra.dec.com #同步时间
4.升级(更新)ports
网络配置成功后,如果是第一次更新使用可以:portsnap fetch extract
以后直接使用:portsnap fetch update 进行更新
5.安装MYSQL
cd /usr/ports/databases/mysql50-server #进入到MYSQL50的PORTS目录
make WITH_CHARSET=gbk WITH_XCHARSET=all BUILD_OPTIMIZED=yes BUILD_STATIC=yes install clean
#开始下载,编译,安装,清除.
安装完成后进行下列操作
ee /etc/rc.conf #编辑rc.conf文件加入 mysql_enable="YES" 保存退出
复制一份 my.cnf 来修改
# my-small.cnf 小配置安装,内存<=64M,数据数量最少
# my-large.cnf 内存=512
# my-medium.cnf 32M<内存<64M,或者内存有128M,但是数据库与web服务器公用内存
# my-huge.cnf 1G<内存<2G,服务器主要运行
# my-innodb-heavy-4G.cnf 最大配置安装,内存至少4G
cp /usr/local/share/mysql/my-medium.cnf /usr/local/etc/my.cnf
编辑加入
[client]
default-character-set=gbk
[mysqld]
#数据库地址
datadir= /server/mysqldata
default-character-set=gbk
default-storage-engine=MyISAM
query_cache_size = 32M
[mysql]
default-character-set=gbk
保存后,建立目录
如果是以PORTS方式安装的则要修改mysql的启动配置文件/usr/local/etc/rc.d/mysql-server
ee /usr/local/etc/rc.d/mysql-server
#修改指定数据库路径
: ${mysql_dbdir="/var/db/mysql"} => : ${mysql_dbdir="/server/mysqldata"}
#修改指定mysql配置文件my.cnf的路径
command_args="--defaults-extra-file=/usr/local/etc/my.cnf --user=${mysql_user} --datadir=${mysql_dbdir}
下面4点说明请注意
#1、如果你mysql默认安装在/var/db/mysql的话,请执行以下步骤,如果是安装在/usr/local/mysql下的话,请另找文档。
#2、/usr/local/bin/mysql_install_db,如果是第一次安装的话,请务必执行此步骤
#3、chown -R mysql /var/db/mysql 以往的资料都是从添加mysql用户及用户组开始,在BSD6.2下mysql安装会自动完成mysql用户及组的添加,所以直接执行前述chown命令即可。这一命令在于,一般人安装msyql时,基本上是以root用户执行的,所以/var/db/mysql的默认用户及组是root wheel,这可以从ls -dl /var/db/mysql命令结果中可以看出。但启动mysql一般是以mysql用户即mysql手册中所称的non-root用户登录的,不推荐root,
#4、/usr/local/bin/mysqld_safe &,这里不用再添加--user=mysql选项,理由在第3点中已经说了,当然有兴趣的可以试着加一下--user=root看看效果。
mkdir /server/mysqldata
chown -R mysql:mysql /server/mysqldata
#/usr/local/bin/mysql_install_db --user=mysql 初始化数据库,此处不是必须,因为在启动时会自动运行,只要建好目录,给好权限即可
#chown -R mysql /server/mysqldata 修改权限
#/usr/local/bin/mysqld_safe & 运行MYSQL
pgrep mysqld 查看MYSQL是否启动
MYSQL启动后修改MYSQL管理员root密码
/usr/local/bin/mysqladmin -uroot password 123456
若要让MYSQL支持远程连接,则登录MYSQL控制台后运行下面的语句
grant all on *.* to 'root'@'%' identified by '123456';
quit
6.安装APACHE22
cd /usr/ports/www/apache22 进入目录
如果需要安装SVN必须加入 WITH_BERKELEYDB=db42
make WITH_MPM=worker WITH_AUTH_MODULES=yes WITH_DAV_MODULES=yes WITH_THREADS=yes WITH_BERKELEYDB=db42 install clean
一般则是
make WITH_MPM=worker WITH_AUTH_MODULES=yes WITH_THREADS=yes install clean
7.安装PHP5
cd /usr/ports/lang/php5
make config
[X] CLI Build CLI version
[X] CGI Build CGI version
[X] APACHE Build Apache module
[X] FASTCGI Enable fastcgi support (CGI only)
[X] PATHINFO Enable path-info-check support (CGI only)
make install clean
cd /usr/ports/lang/php5-extensions
make config
make WITHOUT_X11=yes install clean #PHP5-GD依赖x11是因为它需要X11来支持一种叫做“xpm”也就是"X PixMap"格式的图片。
#我没听说过,也不需要这种格式的图片处理功能,所以,使用WITHOUT_X11=yes 来避免
#了安装x11这个庞然大物
cd /usr/ports/databases/php5-pdo_mysql
make install clean
cd /usr/ports/databases/php5-pdo_odbc
make install clean
cd /usr/ports/www/eaccelerator
make install clean
mkdir /tmp/eaccelerator
chown www /tmp/eaccelerator
chmod 0700 /tmp/eaccelerator
编辑 /usr/local/etc/php/extensions.ini
加入 extension=eaccelerator.so
cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini
编辑 /usr/local/etc/php.ini
short_open_tag = Off => short_open_tag = On
error_reporting = E_ALL => error_reporting = E_ALL & ~E_NOTICE
display_errors = Off => display_errors = On
;date.timezone = => date.timezone = ASIA/shanghai
;session.save_path = "/tmp" => session.save_path = "/tmp"
#如查要把session放到一个目录中的话,如session.save_path = "/tmp/session"则要更改session的用户及用户组
#一般不用,默认到/tmp即可
#mkdir /tmp/session
#chown -R www:www /tmp/session
在尾部加入
[eaccelerator]
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
保存退出
编辑 /usr/local/etc/apache22/httpd.conf
检查下面这行行,因为安装SVN会多出一条,如果有删除一条,保留一条即可.
#LoadModule dav_module libexec/apache22/mod_dav.so #如不注释这一行,启动会出错.
注释下列
#LoadModule auth_digest_module libexec/apache22/mod_auth_digest.so
#LoadModule include_module libexec/apache22/mod_include.so
#LoadModule cern_meta_module libexec/apache22/mod_cern_meta.so
#LoadModule expires_module libexec/apache22/mod_expires.so
#LoadModule headers_module libexec/apache22/mod_headers.so
#LoadModule unique_id_module libexec/apache22/mod_unique_id.so
#LoadModule setenvif_module libexec/apache22/mod_setenvif.so
#LoadModule status_module libexec/apache22/mod_status.so
#LoadModule autoindex_module libexec/apache22/mod_autoindex.so
#LoadModule asis_module libexec/apache22/mod_asis.so
#LoadModule actions_module libexec/apache22/mod_actions.so
#LoadModule speling_module libexec/apache22/mod_speling.so
#LoadModule userdir_module libexec/apache22/mod_userdir.so
在LoadModule php5_module libexec/apache22/libphp5.so 之后加入
PHPIniDir /usr/local/etc
AddType application/x-httpd-php .php .php3 .php4
ServerAdmin you@example.com => ServerAdmin km3945@gmail.com
#ServerName www.example.com:80 => ServerName localhost:80
Options Indexes FollowSymLinks => Options FollowSymLinks
DirectoryIndex index.html => DirectoryIndex index.htm index.html index.php index.php3 index.html.var
#Include etc/apache22/extra/httpd-mpm.conf => Include etc/apache22/extra/httpd-mpm.conf
#Include etc/apache22/extra/httpd-languages.conf => Include etc/apache22/extra/httpd-languages.conf
#Include etc/apache22/extra/httpd-vhosts.conf => Include etc/apache22/extra/httpd-vhosts.conf
保存退出
编辑 /usr/local/etc/apache22/extra/httpd-languages.conf
#DefaultLanguage nl => DefaultLanguage zh-CN
编辑 /usr/local/etc/apache22/extra/httpd-mpm.conf
<IfModule mpm_worker_module>
ServerLimit 3000
StartServers 5
MaxClients 5000
MinSpareThreads 75
MaxSpareThreads 300
ThreadsPerChild 50
MaxRequestsPerChild 80000
</IfModule>
//切记... ServerLimit 3000 这儿一定要加上限制连接数..要不然重启的时候肯定报错
编辑 /usr/local/etc/apache22/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin km3945@gmail.com
DocumentRoot /server/website/test
ServerName test.local.com
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
#ErrorLog logs/sql.local.com-error_log
#CustomLog logs/sql.local.com-access_log common
<Directory /server/website/test>
AllowOverride None
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
保存退出
mkdir /server/website/
mkdir /server/website/test
chmod -R 777 /server/website/test #修改目录权限
ee /server/website/test/index.php
<?php
phpinfo();
?>
保存退出
编辑 /etc/rc.conf 加入
apache22_enable="YES"
启动APACHE
/usr/local/etc/rc.d/apache22 start 启动
8.安装SVN(subversion)版本管理器
cd /usr/ports/devel/subversion
make -DWITH_SVNSERVE_WRAPPER -DWITH_MOD_DAV_SVN -DWITH_APACHE2_APR install clean
创建库
mkdir /server/svn
svnadmin create /server/svn/test
chown -R www:www /server/svn
#ee /usr/local/etc/apache22/Includes/svn.conf
htpasswd -cm /usr/local/etc/svn-auth-file test
将来再增加用户只需要使用以下命令就好:
htpasswd -m /usr/local/etc/svn-auth-file [username]
如果是删除用户只需要使用以下命令就好:
htpasswd -D /usr/local/etc/svn-auth-file [username]
编辑ee /usr/local/etc/apache22/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerName svn.local.com
<Directory /server/svn>
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<Location />
DAV svn
SVNListParentPath on #显示所有版本库
SVNParentPath /server/svn/ #所有版本库上级目录
AuthzSVNAccessFile /usr/local/etc/svn-acc #访问控制文件
AuthType Basic #认证类型
AuthName "818EDU repository"
AuthUserFile /usr/local/etc/svn-auth-file #用户列表文件
Require valid-user
</Location>
</VirtualHost>
增加svn访问控制文件
ee /usr/local/etc/svn-acc
[/]
* = r
[test:/]
test = rw
9.安装FTP
cd /usr/ports/ftp/proftpd
make install clean
ee /etc/rc.conf加入
proftpd_enable="YES"
先建立FTPGRP组:
# pw groupadd ftpgroups -g 1000
建立FTPUSR用户:
# pw adduser ftpusers -u 1000 -g 1000 -d /server/website -s /nologin
mv /usr/local/etc/proftpd.conf /usr/local/etc/proftpd.conf_bak #备份原来的配置文件
cp /home/km3945/proftpd.conf /usr/local/etc/proftpd.conf #COPY准备好的配置文件到系统
mysql -uroot -p
mysql>create database proftpd;
mysql>Grant select,insert,update,delete,create,drop,index,alter,create temporary tables,lock tables on proftpd.* to proftpd@localhost Identified by "123456";
mysql>quit
说明:
# create database proftpd; 这行是创建名为proftpd的数据库;
# Grant 这行是为proftpd 数据库授权,让用户名为proftpd,密码为123456(这只是一个例子,密码自己定义),这个用来管理proftpd这个数据库;
# quit 这行是退出mysql界面;
导入准备好的proftpd.sql数据库结构文件
#mysql -uproftpd -p proftpd <proftpd.sql
mysql -uproftpd -p proftpd </home/km3945/proftpd.sql
以下是数据表结构,可另存为proftpd.sql
-- 数据库: `proftpd`
--
-- --------------------------------------------------------
--
-- 表的结构 `ftpgroups`
--
CREATE TABLE `ftpgroups` (
`groupname` varchar(30) NOT NULL default '',
`gid` int(11) NOT NULL default '1000',
`members` varchar(255) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- 表的结构 `ftpusers`
--
CREATE TABLE `ftpusers` (
`userid` varchar(30) NOT NULL default '',
`passwd` varchar(80) NOT NULL default '',
`uid` int(10) unsigned NOT NULL default '1000',
`gid` int(10) unsigned NOT NULL default '1000',
`homedir` varchar(255) NOT NULL default '',
`shell` varchar(255) NOT NULL default '/sbin/nologin',
`count` int(10) unsigned NOT NULL default '0',
`host` varchar(30) NOT NULL default '',
`lastlogin` varchar(30) NOT NULL default '',
UNIQUE KEY `userid` (`userid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- 导出表中的数据 `ftpusers`
--
INSERT INTO `ftpusers` VALUES ('test', 'test', 1000, 1000, '/home/test', '/sbin/nologin',0,'','');
-- --------------------------------------------------------
--
-- 表的结构 `quotalimits`
--
CREATE TABLE `quotalimits` (
`name` varchar(30) default NULL,
`quota_type` enum('user','group','class','all') NOT NULL default 'user',
`per_session` enum('false','true') NOT NULL default 'false',
`limit_type` enum('soft','hard') NOT NULL default 'soft',
`bytes_in_avail` float NOT NULL default '0',
`bytes_out_avail` float NOT NULL default '0',
`bytes_xfer_avail` float NOT NULL default '0',
`files_in_avail` int(10) unsigned NOT NULL default '0',
`files_out_avail` int(10) unsigned NOT NULL default '0',
`files_xfer_avail` int(10) unsigned NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- 表的结构 `quotatallies`
--
CREATE TABLE `quotatallies` (
`name` varchar(30) NOT NULL default '',
`quota_type` enum('user','group','class','all') NOT NULL default 'user',
`bytes_in_used` float NOT NULL default '0',
`bytes_out_used` float NOT NULL default '0',
`bytes_xfer_used` float NOT NULL default '0',
`files_in_used` int(10) unsigned NOT NULL default '0',
`files_out_used` int(10) unsigned NOT NULL default '0',
`files_xfer_used` int(10) unsigned NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
系统用户和用户组ftpusers的UID和GID的调整;
由于我们在配置文件中,把ftpusers的用户和用户组的UID和GID都设置为了1000;
所以我们得调整一下/etc/passwd 和/etc/group中有关ftp用户和用户组的行;把UID和GID都改为1000;
例子:
/etc/passwd
ftp:x:1000:1000:FTP User:/var/ftp:/sbin/nologin
ftpusers:*:1000:1000:Ftp User:/server/website:/nologin #我的
/etc/group
ftp:x:1000:
pkill proftpd #关闭 proftpd
/usr/local/etc/rc.d/proftpd start #启动 proftpd
10.安装SAMBA
cd /usr/ports/japanese/samba3
make install clean
一些命令---------------------------------------------------------------------
chown -R ftpusers /server/website/test/ #更改目录或文件的用户
chown -R ftpusers:ftpgroups /server/website/test/ #更改目录或文件的用户和用户组
chmod -R 777 /server/website/test #更改目录及文件权限
pw groupmod www -M ftpusers #将ftpusers用户添加到www组中
pw groupshow www #显示www用户组信息及成员
shutdown -p now #关机
reboot #重启系统
pgrep proftpd #显示proftpd的进程ID
./configure --help|grep pdo #手工编辑时查看pdo的编译帮助
passwd #修改密码/
UPDATE user SET password=password('123') where user='root';
#安装编译相关的命令----------------------------------------------------------
cd /var/db/pkg
pkg_create -R -b apache-worker-2.2.4 #打包
pkg_add apache-worker-2.2.4 #安装
make config #生成配置文件
make rmconfig #删除配置文件
make fetch #抓取源码包
make fetch-recursive #抓取所有源码包(包括需要到的所有包)
make checksum #校验源码包
make install clean #编译、安装并删除临时文件
make depends_target=package package clean #编译、安装、将所有需要的port打包、安装、并删除临时文件
mkdir -p /usr/ports/packages/All/ #生成的package会自动放到里面,否则放在port的当前目录
make extract #仅解开源码包
make patch #仅解开并打上patch
make distclean #删除临时文件及源码包
make all-depends-list #查询port的依赖关系显示所有相关的套件
make pretty-print-build-depends-list #显示编译期间所需要的套件
make pretty-print-run-depends-list #显示此套件要执行时所需要的套件
make deinstall #删除已经安装的port
make deinstall-depends #删除已经安装的port及其依赖
make reinstall #重新安装port
make search key=keyword #搜索port
make search name=nameword
make PREFIX=path install #指定port安装目录
cd /usr/src/share/mk #更新port MK
make install
make -DUSE_REINPLACE install #解决安装时的sed -i 错误
cd /usr/ports/ #更新port index对照表
make index
cd /usr/ports/ #更新index html
make readmes
#APACHE启动时如果报错的处理-----------------------------------------------------
在FreeBSD6.1安装Apache2.2启动时出现No such file or directory:Failed to enable the 'httpready' Accept Filet
在/boot/loader.conf中增加
accf_http_load="YES"
重启后经正常了
#添加一个FTP用户----------------------------------------------------------------
INSERT INTO `ftpusers` VALUES ('ftp818eduadmin', 'ftp818eduadmin', 1000, 1000, '/server/website/new818edu', '/sbin/nologin',0,'','');
INSERT INTO `ftpusers` VALUES ('ftp_discuz', 'ftp_discuz123', 1000, 1000, '/server/website/discuz', '/sbin/nologin',0,'','');
#创建一个SVN库------------------------------------------------------------------
svnadmin create /server/svn/new818edu #创建一个SVN库:new818edu
chown -R www:www /server/svn/new818edu #改更SVN库的用户及组
#管理SVN的用户------------------------------------------------------------------
htpasswd -m /usr/local/etc/svn-auth-file svn818eduadmin #添加一个用户svn818eduadmin , 密码opendoor
htpasswd -D /usr/local/etc/svn-auth-file [username] #删除用户
#修改增加svn访问控制文件--------------------------------------------------------
ee /usr/local/etc/svn-acc
[/]
* = r
[test:/]
test = rw
[new818edu:/] #增加一个new818edu项目节点
svn818eduadmin = rw #增加该项目的一个用户svn818eduadmin,该用户即有"读写"权
#完全停止sendmail进程-----------------------------------------------------------
编辑/etc/rc.conf
增加以下(停止sendmail)
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
#为MYSQL增加一个用户并管理其数据库表.-------------------------------------------
grant all on mr.* to 'db_mr'@'localhost' identified by '123456';
flush privileges;
#虚拟机中的FreeBSD时间同步问题--------------------------------------------------
最后在 /boot/loader.conf 中加入 kern.hz="100" 就好了,至少我这里是这样
或加入hint.apic.0.disabled=1
同步
date && ntpdate clepsydra.dec.com
#Mysql的启动停止方式---------------------------------------------
mysqladmin -uroot -p shutdown
/usr/local/bin/mysqld_safe &
2.安装完成重启后更改shell
chsh -s /usr/local/bin/bash
运行后,重新登录或是重启系统
3.配置网络
运行:sysinstall
选择 Configgure -> Networking -> Interfaces
跳过IPV6,如没有DHTP服务器则跳过,直接进行网络设置
配置完成后运行ping www.sina.com.cn 看网络是否完成
用ifconfig看网络配置参数是否正确
ntpdate clepsydra.dec.com #同步时间
4.升级(更新)ports
网络配置成功后,如果是第一次更新使用可以:portsnap fetch extract
以后直接使用:portsnap fetch update 进行更新
5.安装MYSQL
cd /usr/ports/databases/mysql50-server #进入到MYSQL50的PORTS目录
make WITH_CHARSET=gbk WITH_XCHARSET=all BUILD_OPTIMIZED=yes BUILD_STATIC=yes install clean
#开始下载,编译,安装,清除.
安装完成后进行下列操作
ee /etc/rc.conf #编辑rc.conf文件加入 mysql_enable="YES" 保存退出
复制一份 my.cnf 来修改
# my-small.cnf 小配置安装,内存<=64M,数据数量最少
# my-large.cnf 内存=512
# my-medium.cnf 32M<内存<64M,或者内存有128M,但是数据库与web服务器公用内存
# my-huge.cnf 1G<内存<2G,服务器主要运行
# my-innodb-heavy-4G.cnf 最大配置安装,内存至少4G
cp /usr/local/share/mysql/my-medium.cnf /usr/local/etc/my.cnf
编辑加入
[client]
default-character-set=gbk
[mysqld]
#数据库地址
datadir= /server/mysqldata
default-character-set=gbk
default-storage-engine=MyISAM
query_cache_size = 32M
[mysql]
default-character-set=gbk
保存后,建立目录
如果是以PORTS方式安装的则要修改mysql的启动配置文件/usr/local/etc/rc.d/mysql-server
ee /usr/local/etc/rc.d/mysql-server
#修改指定数据库路径
: ${mysql_dbdir="/var/db/mysql"} => : ${mysql_dbdir="/server/mysqldata"}
#修改指定mysql配置文件my.cnf的路径
command_args="--defaults-extra-file=/usr/local/etc/my.cnf --user=${mysql_user} --datadir=${mysql_dbdir}
下面4点说明请注意
#1、如果你mysql默认安装在/var/db/mysql的话,请执行以下步骤,如果是安装在/usr/local/mysql下的话,请另找文档。
#2、/usr/local/bin/mysql_install_db,如果是第一次安装的话,请务必执行此步骤
#3、chown -R mysql /var/db/mysql 以往的资料都是从添加mysql用户及用户组开始,在BSD6.2下mysql安装会自动完成mysql用户及组的添加,所以直接执行前述chown命令即可。这一命令在于,一般人安装msyql时,基本上是以root用户执行的,所以/var/db/mysql的默认用户及组是root wheel,这可以从ls -dl /var/db/mysql命令结果中可以看出。但启动mysql一般是以mysql用户即mysql手册中所称的non-root用户登录的,不推荐root,
#4、/usr/local/bin/mysqld_safe &,这里不用再添加--user=mysql选项,理由在第3点中已经说了,当然有兴趣的可以试着加一下--user=root看看效果。
mkdir /server/mysqldata
chown -R mysql:mysql /server/mysqldata
#/usr/local/bin/mysql_install_db --user=mysql 初始化数据库,此处不是必须,因为在启动时会自动运行,只要建好目录,给好权限即可
#chown -R mysql /server/mysqldata 修改权限
#/usr/local/bin/mysqld_safe & 运行MYSQL
pgrep mysqld 查看MYSQL是否启动
MYSQL启动后修改MYSQL管理员root密码
/usr/local/bin/mysqladmin -uroot password 123456
若要让MYSQL支持远程连接,则登录MYSQL控制台后运行下面的语句
grant all on *.* to 'root'@'%' identified by '123456';
quit
6.安装APACHE22
cd /usr/ports/www/apache22 进入目录
如果需要安装SVN必须加入 WITH_BERKELEYDB=db42
make WITH_MPM=worker WITH_AUTH_MODULES=yes WITH_DAV_MODULES=yes WITH_THREADS=yes WITH_BERKELEYDB=db42 install clean
一般则是
make WITH_MPM=worker WITH_AUTH_MODULES=yes WITH_THREADS=yes install clean
7.安装PHP5
cd /usr/ports/lang/php5
make config
[X] CLI Build CLI version
[X] CGI Build CGI version
[X] APACHE Build Apache module
[X] FASTCGI Enable fastcgi support (CGI only)
[X] PATHINFO Enable path-info-check support (CGI only)
make install clean
cd /usr/ports/lang/php5-extensions
make config
make WITHOUT_X11=yes install clean #PHP5-GD依赖x11是因为它需要X11来支持一种叫做“xpm”也就是"X PixMap"格式的图片。
#我没听说过,也不需要这种格式的图片处理功能,所以,使用WITHOUT_X11=yes 来避免
#了安装x11这个庞然大物
cd /usr/ports/databases/php5-pdo_mysql
make install clean
cd /usr/ports/databases/php5-pdo_odbc
make install clean
cd /usr/ports/www/eaccelerator
make install clean
mkdir /tmp/eaccelerator
chown www /tmp/eaccelerator
chmod 0700 /tmp/eaccelerator
编辑 /usr/local/etc/php/extensions.ini
加入 extension=eaccelerator.so
cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini
编辑 /usr/local/etc/php.ini
short_open_tag = Off => short_open_tag = On
error_reporting = E_ALL => error_reporting = E_ALL & ~E_NOTICE
display_errors = Off => display_errors = On
;date.timezone = => date.timezone = ASIA/shanghai
;session.save_path = "/tmp" => session.save_path = "/tmp"
#如查要把session放到一个目录中的话,如session.save_path = "/tmp/session"则要更改session的用户及用户组
#一般不用,默认到/tmp即可
#mkdir /tmp/session
#chown -R www:www /tmp/session
在尾部加入
[eaccelerator]
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
保存退出
编辑 /usr/local/etc/apache22/httpd.conf
检查下面这行行,因为安装SVN会多出一条,如果有删除一条,保留一条即可.
#LoadModule dav_module libexec/apache22/mod_dav.so #如不注释这一行,启动会出错.
注释下列
#LoadModule auth_digest_module libexec/apache22/mod_auth_digest.so
#LoadModule include_module libexec/apache22/mod_include.so
#LoadModule cern_meta_module libexec/apache22/mod_cern_meta.so
#LoadModule expires_module libexec/apache22/mod_expires.so
#LoadModule headers_module libexec/apache22/mod_headers.so
#LoadModule unique_id_module libexec/apache22/mod_unique_id.so
#LoadModule setenvif_module libexec/apache22/mod_setenvif.so
#LoadModule status_module libexec/apache22/mod_status.so
#LoadModule autoindex_module libexec/apache22/mod_autoindex.so
#LoadModule asis_module libexec/apache22/mod_asis.so
#LoadModule actions_module libexec/apache22/mod_actions.so
#LoadModule speling_module libexec/apache22/mod_speling.so
#LoadModule userdir_module libexec/apache22/mod_userdir.so
在LoadModule php5_module libexec/apache22/libphp5.so 之后加入
PHPIniDir /usr/local/etc
AddType application/x-httpd-php .php .php3 .php4
ServerAdmin you@example.com => ServerAdmin km3945@gmail.com
#ServerName www.example.com:80 => ServerName localhost:80
Options Indexes FollowSymLinks => Options FollowSymLinks
DirectoryIndex index.html => DirectoryIndex index.htm index.html index.php index.php3 index.html.var
#Include etc/apache22/extra/httpd-mpm.conf => Include etc/apache22/extra/httpd-mpm.conf
#Include etc/apache22/extra/httpd-languages.conf => Include etc/apache22/extra/httpd-languages.conf
#Include etc/apache22/extra/httpd-vhosts.conf => Include etc/apache22/extra/httpd-vhosts.conf
保存退出
编辑 /usr/local/etc/apache22/extra/httpd-languages.conf
#DefaultLanguage nl => DefaultLanguage zh-CN
编辑 /usr/local/etc/apache22/extra/httpd-mpm.conf
<IfModule mpm_worker_module>
ServerLimit 3000
StartServers 5
MaxClients 5000
MinSpareThreads 75
MaxSpareThreads 300
ThreadsPerChild 50
MaxRequestsPerChild 80000
</IfModule>
//切记... ServerLimit 3000 这儿一定要加上限制连接数..要不然重启的时候肯定报错
编辑 /usr/local/etc/apache22/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin km3945@gmail.com
DocumentRoot /server/website/test
ServerName test.local.com
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
#ErrorLog logs/sql.local.com-error_log
#CustomLog logs/sql.local.com-access_log common
<Directory /server/website/test>
AllowOverride None
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
保存退出
mkdir /server/website/
mkdir /server/website/test
chmod -R 777 /server/website/test #修改目录权限
ee /server/website/test/index.php
<?php
phpinfo();
?>
保存退出
编辑 /etc/rc.conf 加入
apache22_enable="YES"
启动APACHE
/usr/local/etc/rc.d/apache22 start 启动
8.安装SVN(subversion)版本管理器
cd /usr/ports/devel/subversion
make -DWITH_SVNSERVE_WRAPPER -DWITH_MOD_DAV_SVN -DWITH_APACHE2_APR install clean
创建库
mkdir /server/svn
svnadmin create /server/svn/test
chown -R www:www /server/svn
#ee /usr/local/etc/apache22/Includes/svn.conf
htpasswd -cm /usr/local/etc/svn-auth-file test
将来再增加用户只需要使用以下命令就好:
htpasswd -m /usr/local/etc/svn-auth-file [username]
如果是删除用户只需要使用以下命令就好:
htpasswd -D /usr/local/etc/svn-auth-file [username]
编辑ee /usr/local/etc/apache22/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerName svn.local.com
<Directory /server/svn>
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<Location />
DAV svn
SVNListParentPath on #显示所有版本库
SVNParentPath /server/svn/ #所有版本库上级目录
AuthzSVNAccessFile /usr/local/etc/svn-acc #访问控制文件
AuthType Basic #认证类型
AuthName "818EDU repository"
AuthUserFile /usr/local/etc/svn-auth-file #用户列表文件
Require valid-user
</Location>
</VirtualHost>
增加svn访问控制文件
ee /usr/local/etc/svn-acc
[/]
* = r
[test:/]
test = rw
9.安装FTP
cd /usr/ports/ftp/proftpd
make install clean
ee /etc/rc.conf加入
proftpd_enable="YES"
先建立FTPGRP组:
# pw groupadd ftpgroups -g 1000
建立FTPUSR用户:
# pw adduser ftpusers -u 1000 -g 1000 -d /server/website -s /nologin
mv /usr/local/etc/proftpd.conf /usr/local/etc/proftpd.conf_bak #备份原来的配置文件
cp /home/km3945/proftpd.conf /usr/local/etc/proftpd.conf #COPY准备好的配置文件到系统
mysql -uroot -p
mysql>create database proftpd;
mysql>Grant select,insert,update,delete,create,drop,index,alter,create temporary tables,lock tables on proftpd.* to proftpd@localhost Identified by "123456";
mysql>quit
说明:
# create database proftpd; 这行是创建名为proftpd的数据库;
# Grant 这行是为proftpd 数据库授权,让用户名为proftpd,密码为123456(这只是一个例子,密码自己定义),这个用来管理proftpd这个数据库;
# quit 这行是退出mysql界面;
导入准备好的proftpd.sql数据库结构文件
#mysql -uproftpd -p proftpd <proftpd.sql
mysql -uproftpd -p proftpd </home/km3945/proftpd.sql
以下是数据表结构,可另存为proftpd.sql
-- 数据库: `proftpd`
--
-- --------------------------------------------------------
--
-- 表的结构 `ftpgroups`
--
CREATE TABLE `ftpgroups` (
`groupname` varchar(30) NOT NULL default '',
`gid` int(11) NOT NULL default '1000',
`members` varchar(255) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- 表的结构 `ftpusers`
--
CREATE TABLE `ftpusers` (
`userid` varchar(30) NOT NULL default '',
`passwd` varchar(80) NOT NULL default '',
`uid` int(10) unsigned NOT NULL default '1000',
`gid` int(10) unsigned NOT NULL default '1000',
`homedir` varchar(255) NOT NULL default '',
`shell` varchar(255) NOT NULL default '/sbin/nologin',
`count` int(10) unsigned NOT NULL default '0',
`host` varchar(30) NOT NULL default '',
`lastlogin` varchar(30) NOT NULL default '',
UNIQUE KEY `userid` (`userid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- 导出表中的数据 `ftpusers`
--
INSERT INTO `ftpusers` VALUES ('test', 'test', 1000, 1000, '/home/test', '/sbin/nologin',0,'','');
-- --------------------------------------------------------
--
-- 表的结构 `quotalimits`
--
CREATE TABLE `quotalimits` (
`name` varchar(30) default NULL,
`quota_type` enum('user','group','class','all') NOT NULL default 'user',
`per_session` enum('false','true') NOT NULL default 'false',
`limit_type` enum('soft','hard') NOT NULL default 'soft',
`bytes_in_avail` float NOT NULL default '0',
`bytes_out_avail` float NOT NULL default '0',
`bytes_xfer_avail` float NOT NULL default '0',
`files_in_avail` int(10) unsigned NOT NULL default '0',
`files_out_avail` int(10) unsigned NOT NULL default '0',
`files_xfer_avail` int(10) unsigned NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- 表的结构 `quotatallies`
--
CREATE TABLE `quotatallies` (
`name` varchar(30) NOT NULL default '',
`quota_type` enum('user','group','class','all') NOT NULL default 'user',
`bytes_in_used` float NOT NULL default '0',
`bytes_out_used` float NOT NULL default '0',
`bytes_xfer_used` float NOT NULL default '0',
`files_in_used` int(10) unsigned NOT NULL default '0',
`files_out_used` int(10) unsigned NOT NULL default '0',
`files_xfer_used` int(10) unsigned NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
系统用户和用户组ftpusers的UID和GID的调整;
由于我们在配置文件中,把ftpusers的用户和用户组的UID和GID都设置为了1000;
所以我们得调整一下/etc/passwd 和/etc/group中有关ftp用户和用户组的行;把UID和GID都改为1000;
例子:
/etc/passwd
ftp:x:1000:1000:FTP User:/var/ftp:/sbin/nologin
ftpusers:*:1000:1000:Ftp User:/server/website:/nologin #我的
/etc/group
ftp:x:1000:
pkill proftpd #关闭 proftpd
/usr/local/etc/rc.d/proftpd start #启动 proftpd
10.安装SAMBA
cd /usr/ports/japanese/samba3
make install clean
一些命令---------------------------------------------------------------------
chown -R ftpusers /server/website/test/ #更改目录或文件的用户
chown -R ftpusers:ftpgroups /server/website/test/ #更改目录或文件的用户和用户组
chmod -R 777 /server/website/test #更改目录及文件权限
pw groupmod www -M ftpusers #将ftpusers用户添加到www组中
pw groupshow www #显示www用户组信息及成员
shutdown -p now #关机
reboot #重启系统
pgrep proftpd #显示proftpd的进程ID
./configure --help|grep pdo #手工编辑时查看pdo的编译帮助
passwd #修改密码/
UPDATE user SET password=password('123') where user='root';
#安装编译相关的命令----------------------------------------------------------
cd /var/db/pkg
pkg_create -R -b apache-worker-2.2.4 #打包
pkg_add apache-worker-2.2.4 #安装
make config #生成配置文件
make rmconfig #删除配置文件
make fetch #抓取源码包
make fetch-recursive #抓取所有源码包(包括需要到的所有包)
make checksum #校验源码包
make install clean #编译、安装并删除临时文件
make depends_target=package package clean #编译、安装、将所有需要的port打包、安装、并删除临时文件
mkdir -p /usr/ports/packages/All/ #生成的package会自动放到里面,否则放在port的当前目录
make extract #仅解开源码包
make patch #仅解开并打上patch
make distclean #删除临时文件及源码包
make all-depends-list #查询port的依赖关系显示所有相关的套件
make pretty-print-build-depends-list #显示编译期间所需要的套件
make pretty-print-run-depends-list #显示此套件要执行时所需要的套件
make deinstall #删除已经安装的port
make deinstall-depends #删除已经安装的port及其依赖
make reinstall #重新安装port
make search key=keyword #搜索port
make search name=nameword
make PREFIX=path install #指定port安装目录
cd /usr/src/share/mk #更新port MK
make install
make -DUSE_REINPLACE install #解决安装时的sed -i 错误
cd /usr/ports/ #更新port index对照表
make index
cd /usr/ports/ #更新index html
make readmes
#APACHE启动时如果报错的处理-----------------------------------------------------
在FreeBSD6.1安装Apache2.2启动时出现No such file or directory:Failed to enable the 'httpready' Accept Filet
在/boot/loader.conf中增加
accf_http_load="YES"
重启后经正常了
#添加一个FTP用户----------------------------------------------------------------
INSERT INTO `ftpusers` VALUES ('ftp818eduadmin', 'ftp818eduadmin', 1000, 1000, '/server/website/new818edu', '/sbin/nologin',0,'','');
INSERT INTO `ftpusers` VALUES ('ftp_discuz', 'ftp_discuz123', 1000, 1000, '/server/website/discuz', '/sbin/nologin',0,'','');
#创建一个SVN库------------------------------------------------------------------
svnadmin create /server/svn/new818edu #创建一个SVN库:new818edu
chown -R www:www /server/svn/new818edu #改更SVN库的用户及组
#管理SVN的用户------------------------------------------------------------------
htpasswd -m /usr/local/etc/svn-auth-file svn818eduadmin #添加一个用户svn818eduadmin , 密码opendoor
htpasswd -D /usr/local/etc/svn-auth-file [username] #删除用户
#修改增加svn访问控制文件--------------------------------------------------------
ee /usr/local/etc/svn-acc
[/]
* = r
[test:/]
test = rw
[new818edu:/] #增加一个new818edu项目节点
svn818eduadmin = rw #增加该项目的一个用户svn818eduadmin,该用户即有"读写"权
#完全停止sendmail进程-----------------------------------------------------------
编辑/etc/rc.conf
增加以下(停止sendmail)
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
#为MYSQL增加一个用户并管理其数据库表.-------------------------------------------
grant all on mr.* to 'db_mr'@'localhost' identified by '123456';
flush privileges;
#虚拟机中的FreeBSD时间同步问题--------------------------------------------------
最后在 /boot/loader.conf 中加入 kern.hz="100" 就好了,至少我这里是这样
或加入hint.apic.0.disabled=1
同步
date && ntpdate clepsydra.dec.com
#Mysql的启动停止方式---------------------------------------------
mysqladmin -uroot -p shutdown
/usr/local/bin/mysqld_safe &