參考來源:http://people.freebsd.org/~rse/upgrade/
2012年11月19日 星期一
FreeBSD Upgrade Procedures
FreeBSD Upgrade Procedures
參考來源:http://people.freebsd.org/~rse/upgrade/
FreeBSD 8.x to 9.x Remote Upgrade
FreeBSD 7.x to 8.x Remote Upgrade
FreeBSD 6.x to 7.x Remote Upgrade
FreeBSD 5.x to 6.x Remote Upgrade
FreeBSD 4.x to 5.x Remote Upgrade
FreeBSD 3.x to 4.x Local Upgrade
參考來源:http://people.freebsd.org/~rse/upgrade/
2012年11月12日 星期一
====== FreeBSD + Nginx + php + MySQL ======
====== FreeBSD + Nginx + php + MySQL ======
資料來源:http://www.mgt.ncu.edu.tw/~jerry54010/doku/data/pages/freebsd/8.1_nginx_php_mysql.txt
我個人是直接把apache直接換成Nginx \\
其他只是多安裝一些模組而已,因此換起來還好, \\
不過還是稍微會寫一些安裝上的順序。 \\
==== 安装MySQL ====
(此部份是[[freebsd:8.1安裝紀錄
此篇文章]]直接複製過來,MySQL server的安裝步驟其實都一樣)
*安裝mysql server
設定編碼為utf8
# cd /usr/ports/databases/mysql50-server
# make WITH_CHARSET=utf8 WITH_XCHARSET=all WITH_COLLATION=utf8_unicode_ci BUILD_OPTIMIZED=yes install clean
*安裝資料庫
#rehash
#sudo mysql_install_db (記得需要用root權限)
*複製設定檔
*變更mysql資料庫權限
*初始啟動
*新增使用者root
也可以是這樣
前者會出現"Enter Password", 就當做是confirm就好了
*進入MySQL
輸入剛剛設定的密碼即可
==== 安裝PHP ====
*安裝php
# cd /usr/ports/lang/php5
# make config install clean
將下面的模組勾一勾,沒有的選項就不管他了~
[X] CLI Build CLI version
[X] CGI Build CGI version
[X] FPM 必勾!!! Nginx處理php時是要交給他處理
[X] APACHE Build Apache module
[ ] DEBUG Enable debug
[X]] SUHOSIN Enable Suhosin protection system
[X] MULTIBYTE Enable zend multibyte support
[ ] IPV6 Enable ipv6 support
[ ] REDIRECT Enable force-cgi-redirect support (CGI only)
[ ] DISCARD Enable discard-path support (CGI only)
[X] FASTCGI Enable fastcgi support (CGI only)
[X] PATHINFO Enable path-info-check support (CGI only)
*安裝php5-entensions
# cd /usr/ports/lang/php5-extensions/
# make config install clean
勾選需要的extension,下面必裝,其餘隨意。
[X] FTP FTP support
[X] GD
[X] GETTEXT
[X] MBSTRING
[X] MYSQL
[ ] POSIX //去掉.
[ ] SQLITE //去掉.
[X] ZLIB
*修改PHP設定檔
# cd /usr/local/etc
# cp php.ini-development php.ini
==== 安裝nginx ====
#cd /usr/ports/www/nginx/
#make install clean
安裝nginx就是這麼簡單~
設定nginx的部份:
編輯/usr/local/etc/nginx/nginx.conf
將#user nobody;
改成:user www;
找到下面的部份:
location / {
root /usr/local/www/nginx; //網頁目錄可以換,看你網頁放哪 (ex./home/www)
index index.html index.htm; //記得加入 index.php 等等
}
下面是給FPM處理PHP的部份,記得先將前面的#註解刪掉, \\
然後將fastcgi_param的/scripts$fastcgi_script.name \\
更改為:/你的網頁目錄$fastcgi_script.name \\
例如:/home/www$fastcgi_script.name \\
#location ~ \.php$ {
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script.name;
# include fastcgi_params;
#}
安裝完後
記得編輯 /etc/rc.conf
加入
mysql_enable="YES"
nginx_enable="YES"
php_fpm_enable="YES"
這樣就可以啦~~~
如果有phpmyadmin的話,可以將該資料夾整個複製到網頁根目錄底下,就可以操作了~~
資料來源:http://www.mgt.ncu.edu.tw/~jerry54010/doku/data/pages/freebsd/8.1_nginx_php_mysql.txt
我個人是直接把apache直接換成Nginx \\
其他只是多安裝一些模組而已,因此換起來還好, \\
不過還是稍微會寫一些安裝上的順序。 \\
==== 安装MySQL ====
(此部份是[[freebsd:8.1安裝紀錄
此篇文章]]直接複製過來,MySQL server的安裝步驟其實都一樣)
*安裝mysql server
設定編碼為utf8
# cd /usr/ports/databases/mysql50-server
# make WITH_CHARSET=utf8 WITH_XCHARSET=all WITH_COLLATION=utf8_unicode_ci BUILD_OPTIMIZED=yes install clean
*安裝資料庫
#rehash
#sudo mysql_install_db (記得需要用root權限)
*複製設定檔
#cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf*變更mysql資料庫權限
#sudo chown -R mysql:mysql /var/db/mysql*初始啟動
#sudo mysqld_safe &*新增使用者root
#sudo mysqladmin -u root -p password 'Your_password'也可以是這樣
#sudo mysqladmin -u root passowrd 'Your_password'前者會出現"Enter Password", 就當做是confirm就好了
*進入MySQL
#sudo mysql -u root輸入剛剛設定的密碼即可
==== 安裝PHP ====
*安裝php
# cd /usr/ports/lang/php5
# make config install clean
將下面的模組勾一勾,沒有的選項就不管他了~
[X] CLI Build CLI version
[X] CGI Build CGI version
[X] FPM 必勾!!! Nginx處理php時是要交給他處理
[X] APACHE Build Apache module
[ ] DEBUG Enable debug
[X]] SUHOSIN Enable Suhosin protection system
[X] MULTIBYTE Enable zend multibyte support
[ ] IPV6 Enable ipv6 support
[ ] REDIRECT Enable force-cgi-redirect support (CGI only)
[ ] DISCARD Enable discard-path support (CGI only)
[X] FASTCGI Enable fastcgi support (CGI only)
[X] PATHINFO Enable path-info-check support (CGI only)
*安裝php5-entensions
# cd /usr/ports/lang/php5-extensions/
# make config install clean
勾選需要的extension,下面必裝,其餘隨意。
[X] FTP FTP support
[X] GD
[X] GETTEXT
[X] MBSTRING
[X] MYSQL
[ ] POSIX //去掉.
[ ] SQLITE //去掉.
[X] ZLIB
*修改PHP設定檔
# cd /usr/local/etc
# cp php.ini-development php.ini
==== 安裝nginx ====
#cd /usr/ports/www/nginx/
#make install clean
安裝nginx就是這麼簡單~
設定nginx的部份:
編輯/usr/local/etc/nginx/nginx.conf
將#user nobody;
改成:user www;
找到下面的部份:
location / {
root /usr/local/www/nginx; //網頁目錄可以換,看你網頁放哪 (ex./home/www)
index index.html index.htm; //記得加入 index.php 等等
}
下面是給FPM處理PHP的部份,記得先將前面的#註解刪掉, \\
然後將fastcgi_param的/scripts$fastcgi_script.name \\
更改為:/你的網頁目錄$fastcgi_script.name \\
例如:/home/www$fastcgi_script.name \\
#location ~ \.php$ {
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script.name;
# include fastcgi_params;
#}
安裝完後
記得編輯 /etc/rc.conf
加入
mysql_enable="YES"
nginx_enable="YES"
php_fpm_enable="YES"
這樣就可以啦~~~
如果有phpmyadmin的話,可以將該資料夾整個複製到網頁根目錄底下,就可以操作了~~
2012年11月11日 星期日
Freebsd6.1+AMP手工整合指南
來源:http://www.linuxdiyf.com/viewarticle.php?id=25784
|
2012年3月26日 星期一
FreeBSD 6.2+APACHE+PHP+MYSQL WEB服務器入門級安裝與配置全教程
FreeBSD 6.2+APACHE+PHP+MYSQL WEB服務器入門級安裝與配置全教程 (2007-11-18 15:17)
分類: BSD WWW服務器架設
設置DNS
===========================================
ee /etc/resolv.conf
修改
nameserver 10.0.xx.xx
nameserver 10.0.xx.xx
#設置cvsup
#目前已經改用/usr/bin/csup 安裝FreeBSD時,已經安裝完成
#===========================================
#ee /usr/share/examples/cvsup/standard-supfile
#ee /usr/share/examples/cvsup/ports-supfile
# *default host=cvsup.freebsd.org
#cvsup -L 2 -h cvsup.freebsd.org /usr/share/examples/cvsup/standard-supfile
#rehash
#cvsup -L 2 -h cvsup.freebsd.org /usr/share/examples/cvsup/ports-supfile
#rehash
網絡優化
===========================================
ee /etc/sysctl.conf
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
安裝多線程下載工具axel
===========================================
cd /usr/ports/ftp/axel
make install clean
rehash
ee /etc/make.conf
FETCH_CMD=axel
FETCH_BEFORE_ARGS= -n 10 -a
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes
SUPFILE= /usr/share/examples/cvsup/stable-supfile
PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile
DOCSUPFILE= /usr/share/examples/cvsup/doc-supfile
# ..... FreeBSD distfiles mirror ..
SUP_UPDATE= yes
#SUP= /usr/local/bin/cvsup
SUP= /usr/bin/csup
SUPFLAGS= -g -L 2
MASTER_SITE_BACKUP?= \
ftp://ftp.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
ftp://ftp2.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
ftp://ftp3.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
ftp://ftp4.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
ftp://ftp5.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
ftp://ftp7.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
ftp://ftp8.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
ftp://ftp9.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP}
配置中文環境
===========================================
ee /.cshrc
set prompt = "%{^[[1m%}[%n@%m %{^[[33m%}%c%{^[[37m%}]%{^[[0m%} "
setenv LSCOLORS "gxfxcxdxbxegedabagacad"
alias date 'date "+%Y-%m-%d %H:%M:%S"'
setenv EDITOR ee
setenv LC_ALL zh_TW.Big5
setenv LANG zh_TW.Big5
setenv LC_CTYPE en_US.ISO8859-1
#big5cce - 繁體中文 Console 環境
# cd /usr/ports/outta-port/big5cce
# make install clean
安裝perl
===========================================
# cd /usr/ports/lang/perl5.8
# make install clean ; rehash
安裝openssl
===========================================
# cd /usr/ports/security/openssl
# make install clean ; rehash
安裝Ports檢查更新工具
===========================================
# cd /usr/ports/sysutils/portupgrade (找不到這個目錄,沒裝)
# make install clean ; rehash
安裝mysql
===========================================
cd /usr/ports/databases/mysql50-server/
make WITH_CHARSET=big5 WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean
ee /etc/my.cnf
[mysqld]
skip-networking
skip-innodb
skip-bdb
skip-name-resolve
skip-locking
#log-bin
# 2g server
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
# cp /usr/local/etc/rc.d/mysql-server /usr/local/etc/rc.d/mysql.sh
# ee /etc/rc.conf
mysql_enable="YES"
/usr/local/etc/rc.d/mysql-server start
安裝apache22
===========================================
cd /usr/ports/www/apache22/
make WITH_MPM=worker WITHOUT_IPV6=yes WITH_THREADS=yes WITHOUT_SSL=yes install clean
安裝過程中,取消ipv6
apache隨系統啟動
# ee /etc/rc.conf
apache22_enable="YES"
啟動apache
/usr/local/etc/rc.d/apache22 start
安裝php
===========================================
cd /usr/ports/lang/php5
make WITHOUT_X11="YES" WITH_APACHE22=yes install clean
安裝過程中,選擇apache,取消ipv6
安裝php擴展
===========================================
cd /usr/ports/lang/php5-extensions
make install clean ; rehash
可以選擇
CALENDAR
CTYPE
GD
ICONV
MBSTRING
MYSQL
PCRE
SESSION
SOCKETS
ZIP
ZLIB
配置php
===========================================
# cd /usr/local/etc
# cp php.ini-recommended php.ini
# ee php.ini
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://lamp.linux.gov.cn/Apache/ApacheMenu/index.html
cd /usr/local/etc/apache22/
cp httpd.conf httpd.conf.bak
ee /usr/local/etc/apache22/httpd.conf
DocumentRoot "/usr/www" # 網站主目錄
Options FollowSymLinks
DirectoryIndex index.html index.php index.htm
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddDefaultCharset big5
ServerTokens Prod
ServerSignature Email
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 1500
MaxRequestsPerChild 10000
安裝ZendOptimizer
===========================================
ZendOptimizer屬於商業軟件,所以不能通過ports編譯安裝,只能下載安裝
# 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
一路默認
2012年1月16日 星期一
如何修改mysql數據文件存儲位置
FreeBSD主機上的mysql安裝的時候數據庫文件放在/var/db/mysql下,在Linux主機上的默認存儲位置是/var/lib/mysql/下。
如果想更換mysql的數據文件的存儲位置,則:
如果想更換mysql的數據文件的存儲位置,則:
FreeBSD下:
# /usr/local/etc/rc.d/mysql-server stop(停止mysql)
# mkdir /other/db(建立新的數據文件目錄,也可以直接移動過來)
# mv /var/db/mysql /other/db(移動數據文件)
# ln -s /other/db/mysql /var/db/mysql(建立數據文件的軟鏈接)
# /usr/local/etc/rc.d/mysql-server start(啟動mysql)
# mkdir /other/db(建立新的數據文件目錄,也可以直接移動過來)
# mv /var/db/mysql /other/db(移動數據文件)
# ln -s /other/db/mysql /var/db/mysql(建立數據文件的軟鏈接)
# /usr/local/etc/rc.d/mysql-server start(啟動mysql)
OK!
Linux下:
(linux下經過測試,可以不用停止mysql而直接操作,不過如果是經常更新的數據庫還是先停止的好,停止的方法在此就不介紹了!)
# mkdir /data/database(建立新的數據文件目錄,也可以直接移動過來)
# mv /var/lib/mysql /data/database/(移動數據文件)
# ln -s /data/database/mysql /var/lib/mysql(建立數據文件的軟鏈接)
# mv /var/lib/mysql /data/database/(移動數據文件)
# ln -s /data/database/mysql /var/lib/mysql(建立數據文件的軟鏈接)
如果您的操作用戶不是mysql,例如root用戶操作,那可能mysql對新建立的數據文件夾沒有讀取權限,還有chown,或者是chgrp,chmod才可以!
2012年1月8日 星期日
clientmqueue過多,造成inode爆滿
clientmqueue過多,造成inode爆滿
Squid 不能正常啟動,messages裏出現錯誤: /bsd: uid 25 on /var: out of inodes
於是我懷疑文件太多爆滿了,當時沒用命令 df -i 查看,就直接用命令「 du -hs /var/* 」查找哪個文件過多了,發現/var/spool/clientmqueue/ 佔了2G錯。裏面很多文件。於是動手刪除,直接用rm,會出現Argument list too long
想到用xargs ,
# cd /var/spool/clientmqueue
# ls
xargs rm -rf
找了/var/spool/clientmqueue/ 裏的一文件一看,內容全是crontab產生的通知信息。
解決辦法:
將crontab裏面的命令後面加上 > /dev/null 2>&1 。
或者crontab裏面的命令後面加上 > /dev/null 。
2011年5月24日 星期二
Freebsd 7.0 安裝cacti手冊
Freebsd 7.0 安裝cacti手冊
####
# Second, map the security names into group names:
[注意]
每一款軟件安裝最後,都會有相應的提示,如snmp安裝後,cacti安裝後......有些可能是配置說明文檔
原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://5ydycm.blog.51cto.com/115934/113305
[背景]公司的監控平台大部分都是freebsd,為了以後安裝方便寫了個這個手冊,供以後用.
[內容]
注意:在安裝apache後,就開一個測試頁,裝了php,就一直用phpinfo來檢測改變! 記住要用apachectl graceful
注意:在安裝apache後,就開一個測試頁,裝了php,就一直用phpinfo來檢測改變! 記住要用apachectl graceful
(1)安裝apache
cd /usr/ports/www/apache22
make config
選擇mysql
make install clean
ee rc.conf
apache22_enable="YES"
cd /usr/ports/www/apache22
make config
選擇mysql
make install clean
ee rc.conf
apache22_enable="YES"
(2)安裝php
cd /usr/ports/lang/php5
make config
選擇apache
make install clean
修改httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
cd /usr/ports/lang/php5
make config
選擇apache
make install clean
修改httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini
(3)安裝mysql
cd /usr/ports/database/mysql50-server
make install clean
/usr/local/bin/mysql_install_db --user=mysql
/usr/local/bin/mysqld_safe --user=mysql&
ee rc.conf
mysql_enable="YES"
cd /usr/ports/database/mysql50-server
make install clean
/usr/local/bin/mysql_install_db --user=mysql
/usr/local/bin/mysqld_safe --user=mysql&
ee rc.conf
mysql_enable="YES"
(4)安裝php-extensions
cd /usr/ports/lang/php5-extensions
make config
選擇mysql
make install clean
[測試php連接mysql]
db.inc
$host="localhost";
$user="root";
$pwd="badboy";
?>
index.php
require_once "db.inc";
$db=mysql_pconnect($host,$user,$pwd);
if ($db){
echo "connect!";
}
?>
cd /usr/ports/lang/php5-extensions
make config
選擇mysql
make install clean
[測試php連接mysql]
db.inc
$host="localhost";
$user="root";
$pwd="badboy";
?>
index.php
require_once "db.inc";
$db=mysql_pconnect($host,$user,$pwd);
if ($db){
echo "connect!";
}
?>
(5)安裝zend
cd /usr/local/devel/ZendOptimizer
make install clean
add
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"
cd /usr/local/devel/ZendOptimizer
make install clean
add
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"
[注意]
上面的路徑中"20060613"這個是變量,不是固定的.
上面的路徑中"20060613"這個是變量,不是固定的.
解決一個[問題]
Failed loading /usr/local/lib/php/20060613/ZendExtensionManager.so: Shared object "libm.so.4" not found, required by "ZendExtensionManager.so"
報錯
解決辦法:ln -s /lib/libm.so.5 /usr/lib/libm.so.4即可。
Failed loading /usr/local/lib/php/20060613/ZendExtensionManager.so: Shared object "libm.so.4" not found, required by "ZendExtensionManager.so"
報錯
解決辦法:ln -s /lib/libm.so.5 /usr/lib/libm.so.4即可。
(6)安裝rrdtool
cd /usr/ports/database/rrdtool
make install clean
(7)安裝net-snmp
cd /usr/ports/net-mgmt/net-snmp
make install clean
自動的會將snmp support加入到php的擴展功能中,所以在php擴展模塊選擇上面沒有選擇snmp
ee /etc/snmpd.conf
###################################################################
# First, map the community name (COMMUNITY) into a security name
# (local and mynetwork, depending on where the request is coming
# from):
cd /usr/ports/database/rrdtool
make install clean
(7)安裝net-snmp
cd /usr/ports/net-mgmt/net-snmp
make install clean
自動的會將snmp support加入到php的擴展功能中,所以在php擴展模塊選擇上面沒有選擇snmp
ee /etc/snmpd.conf
###################################################################
# First, map the community name (COMMUNITY) into a security name
# (local and mynetwork, depending on where the request is coming
# from):
# sec.name source community
com2sec notConfigUser default passwd
com2sec notConfigUser default passwd
####
# Second, map the security names into group names:
# sec.model sec.name
group notConfigGroup v1 notConfigUser
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
####
# Third, create a view for us to let the groups have rights to:
# Third, create a view for us to let the groups have rights to:
# incl/excl subtree mask
view all included .1 80
view all included .1 80
####
# Finally, grant the 2 groups access to the 1 view with different
# write permissions:
# Finally, grant the 2 groups access to the 1 view with different
# write permissions:
# context sec.model sec.level match read write notif
access notConfigGroup "" any noauth exact all none none
access notConfigGroup "" any noauth exact all none none
#############################################################################
(8)安裝cacti
cd /usr/ports/net-mgmt/cacti
make config
選擇擴展插件
make install clean
cd /usr/ports/net-mgmt/cacti
make config
選擇擴展插件
make install clean
[注意]
每一款軟件安裝最後,都會有相應的提示,如snmp安裝後,cacti安裝後......有些可能是配置說明文檔
本文出自 「壞男孩」 博客,請務必保留此出處http://5ydycm.blog.51cto.com/115934/113305
*可參閱CACTI 流量監控工具 (此文以FreeBSD 5.4 Release為範例,有些ports路徑有更改,請小心!!)
2011年5月16日 星期一
FreeBSD指令整理
FreeBSD學習筆記整理
1、查看CPU:
sysctl hw.model hw.ncpu
dmesg | grep 「CPU:」
sysctl hw.model hw.ncpu
dmesg | grep 「CPU:」
2、查看內存:
dmesg | grep 「real memory」 | awk -F 『[( )]『 『{print $2,$4,$7,$8}』
dmesg | grep 「real memory」 | awk -F 『[( )]『 『{print $2,$4,$7,$8}』
查看swap:
top | grep 「Swap:」 | awk 『{print $1,$2}』
top | grep 「Swap:」 | awk 『{print $1,$2}』
3、查看硬盤:
diskinfo -vt /dev/ad0
disklable /dev/ad0s2 #查看分區信息
看硬盤大小:
dmesg | grep 「sector」 | awk 『{print $1,$2}』
diskinfo -v /dev/da0 | grep 「in bytes」 | awk -F'[()]『 『{print $2}』
diskinfo -vt /dev/ad0
disklable /dev/ad0s2 #查看分區信息
看硬盤大小:
dmesg | grep 「sector」 | awk 『{print $1,$2}』
diskinfo -v /dev/da0 | grep 「in bytes」 | awk -F'[()]『 『{print $2}』
4、查看服務器品牌:
dmesg | grep 「ACPI APIC」
dmesg | grep 「ACPI APIC」
5、掛載文件系統:
fat32:mount_msdosfs -L zh_CN.eucCN /dev/ad0s1 /mnt
ntfs:mount_ntfs -C eucCn /dev/ad0s1 /mnt
cdrom:mount_cd9660 /dev/acd0 /mnt
註:ntfs在FreeBSD中只能讀無法寫入
fat32:mount_msdosfs -L zh_CN.eucCN /dev/ad0s1 /mnt
ntfs:mount_ntfs -C eucCn /dev/ad0s1 /mnt
cdrom:mount_cd9660 /dev/acd0 /mnt
註:ntfs在FreeBSD中只能讀無法寫入
6、給文件添加或禁用系統禁刪標誌(目錄不適用):
chflags sunlink file1
chflags nosunlink file1
chflags sunlink file1
chflags nosunlink file1
7、初始化磁盤:
fdisk -BI ad1
fdisk -BI ad1
8、建立FreeBSD分區:
disklabel -B -w -r ad1s1 auto
disklabel -B -w -r ad1s1 auto
9、建立邏輯分區:
disklabel -e ad1s1
disklabel -e ad1s1
10、格式化分區,創建文件系統:
newfs /dev/ad1s1e
newfs /dev/ad1s1e
11、顯示PCI硬件信息:
pciconf -lv
pciconf -lv
12、開啟Linux 二進制兼容支持(啟用這一功能最簡單的方法是載入 linux KLD 模塊):
kldload linux
讓Linux兼容在系統初始化時自動啟用,在/etc/rc.conf中中入:
linux_enable=」YES」
kldload linux
讓Linux兼容在系統初始化時自動啟用,在/etc/rc.conf中中入:
linux_enable=」YES」
13、檢查KLD模塊是否加載:
kldstat
kldstat
14、在內核中靜態鏈接進Linux二進制兼容模式,在內核配置文件裡面加入:
options COMPAT_LINUX
options COMPAT_LINUX
15、設置網卡em0的IP地址:
ifconfig em0 inet 192.0.2.10 netmask 255.255.255.0
ifconfig em0 inet 192.0.2.10 netmask 255.255.255.0
16、給網卡em0設置添加一個別名IP地址:
ifconfig em0 inet 192.168.51.45/24 add
ifconfig em0 inet 192.168.51.45/24 add
17、刪除網卡的別名IP地址:
ifconfig em0 inet 192.168.51.45 -alias
ifconfig em0 inet 192.168.51.45 -alias
18、設置網卡em0的工作模式為100baseTX全雙式:
ifconfig em0 media 100baseTX mediaopt full-duplex
ifconfig em0 media 100baseTX mediaopt full-duplex
19、當/usr/local/etc/rc.d下的腳本無法自動啟動時,可嘗試在/etc/rc.conf中加入一行:
local_startup=」/usr/local/etc/rc.d」
local_startup=」/usr/local/etc/rc.d」
20、在ports中尋找需要的軟件,進入/usr/ports目錄執行:
make search name=lsof 或 echo /usr/ports/*/*lsof* 或 whereis lsof
make search key=關鍵字 # 在名字、註釋、描述中搜索關鍵字
make search name=lsof 或 echo /usr/ports/*/*lsof* 或 whereis lsof
make search key=關鍵字 # 在名字、註釋、描述中搜索關鍵字
21、使用package方式安裝管理軟件,使用以下命令:
pkg_add lsof-4.56.4.tgz # 安裝軟件包
pkg_info # 列出已安裝所有軟件包
pkg_version # 統計所有安裝的軟件版本,比較本地package的版本與ports目錄中的當前版本是否一致
pkg_delete lsof-4.56.4 # 刪除軟件包,需提供完整包名
pkg_add lsof-4.56.4.tgz # 安裝軟件包
pkg_info # 列出已安裝所有軟件包
pkg_version # 統計所有安裝的軟件版本,比較本地package的版本與ports目錄中的當前版本是否一致
pkg_delete lsof-4.56.4 # 刪除軟件包,需提供完整包名
22、使用CVSup協議更新本地ports:(將cvsup.FreeBSD.org改為離得較近的CVSup服務器)
csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
23、一些shell會緩存環境變量PATH中指定的目錄裡的可執行文件,以加快查找速度,這會造成一些新安裝的命令無法運行,執行以下命令,然後才能運行新安裝的那些命令:
rehash 或 hash -r
rehash 或 hash -r
24、當不是所有時間都能上網時,可在/usr/ports下執行以下命令,所有需要的文件都將被下載:(此命令可以在下級目錄中執行,如/usr/ports/comms/nmp)
make fetch # 只下載所需要文件,不下載依賴包
make fetch-recursive # 連同依賴包一起下載
make fetch # 只下載所需要文件,不下載依賴包
make fetch-recursive # 連同依賴包一起下載
25、改變默認的Ports目錄:
make WRKDIRPREFIX=/usr/home/example/ports install # 在/usr/home/example/ports中編譯port,安裝到/usr/local
make PREFIX=/usr/home/example/local install # 在/usr/ports中編譯port,安裝到/usr/home/example/local
make WRKDIRPREFIX=../ports PREFIX=../local install # 在../ports中編譯port,安裝到../local
make WRKDIRPREFIX=/usr/home/example/ports install # 在/usr/home/example/ports中編譯port,安裝到/usr/local
make PREFIX=/usr/home/example/local install # 在/usr/ports中編譯port,安裝到/usr/home/example/local
make WRKDIRPREFIX=../ports PREFIX=../local install # 在../ports中編譯port,安裝到../local
26、使用portsclean工具清除臨時目錄和distfiles目錄:
portsclean -C # 清除安裝時的臨時目錄
portsclean -D # 清除distfiles目錄下所有port都不引用的文件
portsclean -DD # 刪除目前安裝的port沒有使用的源碼包文件
portsclean -C # 清除安裝時的臨時目錄
portsclean -D # 清除distfiles目錄下所有port都不引用的文件
portsclean -DD # 刪除目前安裝的port沒有使用的源碼包文件
27、強制手動檢測SCSI設備,SCSI總線掃瞄:
camcontrol rescan all
camcontrol rescan all
28、顯示SCSI設備列表:
camcontrol devlist
camcontrol devlist
29、利用管道修改用戶密碼:
echo 「password」 | pw usermod root -h 0
30、sed插入行:
sed -i -E 『/service port/a \\
apex port : 18306\\
『 /home/xiyou/config
echo 「password」 | pw usermod root -h 0
30、sed插入行:
sed -i -E 『/service port/a \\
apex port : 18306\\
『 /home/xiyou/config
31、用freebsd的MBR覆蓋現有的MBR:
fdisk -B -b /boot/boot0 device
fdisk -B -b /boot/boot0 device
32、根據一個新的文件重新構建用戶列表:
pwd_mkdb -p /etc/master.passwd.new # -p即為生成新的/etc/passwd
pwd_mkdb -p /etc/master.passwd.new # -p即為生成新的/etc/passwd
33、取時間:
date -v -1d +%Y%m%d # Freebsd取昨天日期方法
date -v -1w +%Y%m%d # Freebsd取上週今日方法
date -v -1m +%Y%m%d # Freebsd取上個月今日方法
date -v -1y +%Y%m%d # Freebsd取去年今日的方法
date -v -1d +%Y%m%d # Freebsd取昨天日期方法
date -v -1w +%Y%m%d # Freebsd取上週今日方法
date -v -1m +%Y%m%d # Freebsd取上個月今日方法
date -v -1y +%Y%m%d # Freebsd取去年今日的方法
34、以xiyou用戶身份執行命令或腳本:
su – xiyou -c 「cd /home/xiyou/script; ./start_apex.sh &」
su – xiyou -c 「cd /home/xiyou/script; ./start_apex.sh &」
35、tar打包時排除某個子目錄:
tar zcvf Apex09010702.tgz –exclude=ApexItemServer/hook_log ApexItemServer
註:上例是使用GUN版本的tar程序格式,否則–exclude參數應放在最後
36、鎖住終端:
lock -np #-n 永不超時,-p 使用系統密碼作為開啟終端的密匙
tar zcvf Apex09010702.tgz –exclude=ApexItemServer/hook_log ApexItemServer
註:上例是使用GUN版本的tar程序格式,否則–exclude參數應放在最後
36、鎖住終端:
lock -np #-n 永不超時,-p 使用系統密碼作為開啟終端的密匙
37、顯示ATA設備列表:
atacontrol list
atacontrol list
38、查看網絡流量:
systat -if 1 #1表示1秒刷新屏幕一次,Traffic 流量 peak 峰值 average 平均值
netstat 1
systat -if 1 #1表示1秒刷新屏幕一次,Traffic 流量 peak 峰值 average 平均值
netstat 1
39、查看硬盤詳細分區實時讀寫狀況:
gstat
gstat
40、進單用戶模式也需要密碼:
a. vi /etc/ttys 找到when going to single-user mode
b. 修改console none unknown off後面的secure,改為insecure
c. 存盤退出
a. vi /etc/ttys 找到when going to single-user mode
b. 修改console none unknown off後面的secure,改為insecure
c. 存盤退出
41、在FreeBSD5.X以上加載,卸載ISO文件:
mount:
mdconfig -a -t vnode -f myisofile.iso #屏幕輸出md0或者類似的設備名
mount -t cd9660 /dev/md0 /mnt
umount:
umount /mnt
mdconfig -d -u 0 #-u後面的數字和前面的md?中的數字一致
mdconfig -l #可以列出關於配置md?設備的信息
mount:
mdconfig -a -t vnode -f myisofile.iso #屏幕輸出md0或者類似的設備名
mount -t cd9660 /dev/md0 /mnt
umount:
umount /mnt
mdconfig -d -u 0 #-u後面的數字和前面的md?中的數字一致
mdconfig -l #可以列出關於配置md?設備的信息
42、更新配置文件,比如編輯了.cshrc等文件,就需要用source命令:
source .cshrc
43、修復UFS文件系統分區:
fsck_ufs /dev/ad1
source .cshrc
43、修復UFS文件系統分區:
fsck_ufs /dev/ad1
44、pf防火牆
pfctl -e # 啟動pf防火牆
pfctl -d # 停止pf防火牆
pfctl -sa | grep Status #查看狀態
pfctl -f /etc/pf.conf # 載入 pf.conf 文件
pfctl -nf /etc/pf.conf # 檢查配置文件錯誤,但不載入
pfctl -Nf /etc/pf.conf # 只載入文件中的NAT規則
pfctl -Rf /etc/pf.conf # 只載入文件中的過濾規則
pfctl -sn # 顯示當前的NAT規則
pfctl -sr # 顯示當前的過濾規則
pfctl -ss # 顯示當前的狀態表
pfctl -si # 顯示過濾狀態和計數
pfctl -sa # 顯示任何可顯示的
pfctl -e # 啟動pf防火牆
pfctl -d # 停止pf防火牆
pfctl -sa | grep Status #查看狀態
pfctl -f /etc/pf.conf # 載入 pf.conf 文件
pfctl -nf /etc/pf.conf # 檢查配置文件錯誤,但不載入
pfctl -Nf /etc/pf.conf # 只載入文件中的NAT規則
pfctl -Rf /etc/pf.conf # 只載入文件中的過濾規則
pfctl -sn # 顯示當前的NAT規則
pfctl -sr # 顯示當前的過濾規則
pfctl -ss # 顯示當前的狀態表
pfctl -si # 顯示過濾狀態和計數
pfctl -sa # 顯示任何可顯示的
pfctl -t http_table -T show #查看動態表
pfctl -t http_table -T add 192.168.1.X #添加一個IP到表
pfctl -t http_table -T del 192.168.1.X #從表中刪除IP
pfctl -t http_table -T add 192.168.1.X #添加一個IP到表
pfctl -t http_table -T del 192.168.1.X #從表中刪除IP
45、系統優化+防止ddos
加載文件修改
# vi /boot/loader.conf #加入如下文本
kern.dfldsiz=」2147483648〞 # Set the initial data size limit
kern.maxdsiz=」2147483648〞 # Set the max data size
kern.ipc.nmbclusters=」0〞 # Set the number of mbuf clusters
kern.ipc.nsfbufs=」66560〞 # Set the number of sendfile(2) bufs
##解釋:
a. 第一,第二行主要是為了突破1G內存設置的
b. 第三行其實是bsd的一個bug,當系統並發達到一個數量級的時候,系統會crash,這個是非常糟糕的事情,所幸更改了這個參數後,在高並發的時候,基本可以沒有類似情況,當然非常bt的情況,還得進一步想辦法
c. 第四行是讀取的文件數,如果你下載的文件比較大,且比較多,加大這個參數,是非常爽的
Sysctl修改
#vi /etc/rc.local
sysctl kern.ipc.maxsockets=100000 ##增加並發的socket,對於ddos很有用
sysctl kern.ipc.somaxconn=65535 ##打開文件數
sysctl net.inet.tcp.msl=2500 ##timeout時間
加速ports安裝
#vi /etc/make.conf ##加入如下
MASTER_SITE_OVERRIDE?=http://ports.hshh.org/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=http://ports.cn.freebsd.org/${DIST_SUBDIR}/
Freebsd顏色顯示
secureCRT設置:仿真:終端->linux>勾選ANSI顏色–>確定
#vi /etc/csh.cshrc ##加入如下
setenv LSCOLORS ExGxFxdxCxegedabagExEx
setenv CLICOLOR yes
#cd /usr/ports/edit/vim;make install
#echo 「syntax on」>/root/.vimrc
#echo 「alias vi vim」 >>/root/.cshrc
##顏色主要是靠vim來顯示的,因此需要安裝vim,然後把vi alias成vim就可以了
加載文件修改
# vi /boot/loader.conf #加入如下文本
kern.dfldsiz=」2147483648〞 # Set the initial data size limit
kern.maxdsiz=」2147483648〞 # Set the max data size
kern.ipc.nmbclusters=」0〞 # Set the number of mbuf clusters
kern.ipc.nsfbufs=」66560〞 # Set the number of sendfile(2) bufs
##解釋:
a. 第一,第二行主要是為了突破1G內存設置的
b. 第三行其實是bsd的一個bug,當系統並發達到一個數量級的時候,系統會crash,這個是非常糟糕的事情,所幸更改了這個參數後,在高並發的時候,基本可以沒有類似情況,當然非常bt的情況,還得進一步想辦法
c. 第四行是讀取的文件數,如果你下載的文件比較大,且比較多,加大這個參數,是非常爽的
Sysctl修改
#vi /etc/rc.local
sysctl kern.ipc.maxsockets=100000 ##增加並發的socket,對於ddos很有用
sysctl kern.ipc.somaxconn=65535 ##打開文件數
sysctl net.inet.tcp.msl=2500 ##timeout時間
加速ports安裝
#vi /etc/make.conf ##加入如下
MASTER_SITE_OVERRIDE?=http://ports.hshh.org/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=http://ports.cn.freebsd.org/${DIST_SUBDIR}/
Freebsd顏色顯示
secureCRT設置:仿真:終端->linux>勾選ANSI顏色–>確定
#vi /etc/csh.cshrc ##加入如下
setenv LSCOLORS ExGxFxdxCxegedabagExEx
setenv CLICOLOR yes
#cd /usr/ports/edit/vim;make install
#echo 「syntax on」>/root/.vimrc
#echo 「alias vi vim」 >>/root/.cshrc
##顏色主要是靠vim來顯示的,因此需要安裝vim,然後把vi alias成vim就可以了
46、查看系統狀態
fstat #報告系統中打開文件的信息
pstat -T #顯示這幾個系統表的狀態,包括當前使用的和可以利用的系統表空間,因此可以用來檢查系統在當前負載下是使用多大的系統表,幫助進行優化系統性能
systat #缺省情況下systat是報告處理器的使用率,包括總利用狀態、空閒使用率和各個進程的使用率
通過指定參數,systat也能進行I/O的統計、虛存的統計、網絡的統計等,這些參數包括-iostat, -vmstat, -mbufs, -netstat, -ip, -icmp, -tcp, -swap等
kldstat -v #顯示內核加載的模塊
klsdstat -m ipfilter #顯示指定模塊
pnpinfo #即插即用設備
devinfo -u #顯示設備佔用的IRQ和內存地址
fstat #報告系統中打開文件的信息
pstat -T #顯示這幾個系統表的狀態,包括當前使用的和可以利用的系統表空間,因此可以用來檢查系統在當前負載下是使用多大的系統表,幫助進行優化系統性能
systat #缺省情況下systat是報告處理器的使用率,包括總利用狀態、空閒使用率和各個進程的使用率
通過指定參數,systat也能進行I/O的統計、虛存的統計、網絡的統計等,這些參數包括-iostat, -vmstat, -mbufs, -netstat, -ip, -icmp, -tcp, -swap等
kldstat -v #顯示內核加載的模塊
klsdstat -m ipfilter #顯示指定模塊
pnpinfo #即插即用設備
devinfo -u #顯示設備佔用的IRQ和內存地址
原文鏈接:http://blog.chinaunix.net/u3/112017/showart_2213285.html
轉載請註明文章轉載自:FreeBSD技術文摘 [http://www.bsdart.org]
2011年3月28日 星期一
FreeBSD DHCP服務安裝筆記
一、編譯內核
device bpf
bpf設備是DHCP服務必需的,FreeBSD系統默認的GENERIC內核已經包含此設備,如果您的系統內核是經過修改的,請注意此設備是否已經添加。
二、安裝DHCP Server
# cd /usr/ports/net/isc-dhcp31-server
# make install clean
# make install clean
三、配置DHCP服務
# vi /usr/local/etc/dhcpd.conf
option domain-name "example.com"; //這個選項指定了提供給客戶機作為默認搜索域的域名。
option domain-name-servers 192.168.0.100; //這個選項用於指定一組客戶機使用的DNS服務器,它們之間以逗號分隔。
option subnet-mask 255.255.255.0; //提供給客戶機的子網掩碼。
option domain-name-servers 192.168.0.100; //這個選項用於指定一組客戶機使用的DNS服務器,它們之間以逗號分隔。
option subnet-mask 255.255.255.0; //提供給客戶機的子網掩碼。
default-lease-time 3600; //客戶機可以請求租約的有效期,而如果沒有,則服務器將指定一個租約有效期,也就是這個值(單位是秒)。
max-lease-time 86400; //這是服務器允許租出地址的最大時長。如果客戶機請求了更長的租期,則它將得到一個地址,但其租期僅限於max-lease-time秒。
ddns-update-style none; //這個選項用於指定DHCP服務器在一個地址被接受或釋放時是否應對應嘗試更新DNS。在ISC實現中,這一選項是必須指定的。
max-lease-time 86400; //這是服務器允許租出地址的最大時長。如果客戶機請求了更長的租期,則它將得到一個地址,但其租期僅限於max-lease-time秒。
ddns-update-style none; //這個選項用於指定DHCP服務器在一個地址被接受或釋放時是否應對應嘗試更新DNS。在ISC實現中,這一選項是必須指定的。
subnet 192.168.0.0 netmask 255.255.255.0 { //配置DHCP地址池
range 192.168.0.120 192.168.0.250; //指定地址池中可以用來分配給客戶機的IP地址範圍。在這個範圍之間,以及其邊界的IP地址將分配給客戶機。
option routers 192.168.0.1; //定義客戶機的默認網關。
}
range 192.168.0.120 192.168.0.250; //指定地址池中可以用來分配給客戶機的IP地址範圍。在這個範圍之間,以及其邊界的IP地址將分配給客戶機。
option routers 192.168.0.1; //定義客戶機的默認網關。
}
host mailhost.example.com { //分配靜態IP地址
hardware ethernet 02:03:04:05:06:07; //主機的硬件MAC地址(這樣DHCP服務器就能夠在接到請求時知道請求的主機身份)。
fixed-address 192.168.0.150; //指定固定IP地址
}
hardware ethernet 02:03:04:05:06:07; //主機的硬件MAC地址(這樣DHCP服務器就能夠在接到請求時知道請求的主機身份)。
fixed-address 192.168.0.150; //指定固定IP地址
}
四、啟動DHCP服務
# vi /etc/rc.conf
dhcpd_enable="YES"
dhcpd_ifaces="dc0" //dc0為DHCP服務器需要監聽DHCP客戶端請求的接口
dhcpd_ifaces="dc0" //dc0為DHCP服務器需要監聽DHCP客戶端請求的接口
# /usr/local/etc/rc.d/isc-dhcpd start
轉載請註明文章轉載自:FreeBSD技術文摘 [http://www.bsdart.org]
訂閱:
文章 (Atom)