- 論壇徽章:
- 0
|
//文章作者:Stuhack
//作者網(wǎng)站:BSDer
www.bsdforum.net
System:
FreeBSD www.bsdforum.net[/ 6.2-BETA2 FreeBSD 6.2-BETA2 #0: Mon Oct 2 03:22:01 UTC 2006
root@opus.cse.buffalo.edu
:/usr/obj/usr/src/sys/GENERIC i386
Apache Version:
Apache/2.2.3 (FreeBSD) DAV/2 PHP/5.1.6 with Suhosin-Patch
mysql Version:
Client API version 5.1.11-beta
Zend Version:
Zend Optimizer v3.0.1
至于裝系統(tǒng).我就不多講了只要記住.系統(tǒng)安裝最小化模式+man+ports+src+sys+perl5.8 就好.少走彎路.
很多文章說第一件事就是更新standard-supfile 我覺得如果你安裝的時候選擇了src就沒有浪費大量的時間去更新standard-supfile了.接著下一步他們會告訴你編譯內(nèi)核..如果您要是裝FreeBSD 6.2-BETA2 似乎已經(jīng)很安全穩(wěn)定的了.就沒有必要花二三個小時去重新編譯吧.起碼安裝WEBserver不用.只要您把安全做好.我認為利用系統(tǒng)漏洞入侵您的服務(wù)器不太可能..有必要的時候再重新編譯..個人意見.您想重新編譯我也不能擋著你不讓是不..
No.1 安裝cvsup-withou-gui
www# pkg_add -r cvsup-without-gui //非常感謝提醒ezgo指出without少了一個t...以后注意了.
Fetching
ftp://ftp.freebsd.org/pub/FreeBS ... vsup-withou-gui.tbz
Done
//要是沒cvsup-withou-gui就不能更新ports 往下繼續(xù)做那都是扯淡..
//當出現(xiàn)Done的時候 沒必要重起服務(wù)器..只需要
#rehash
No.2 更新ports
#cd /usr/share/examples/cvsup
#ee ports-supfile
//把
*default host=CHANGE_THIS.FreeBSD.org
//改為:
*default host=cvsup1.FreeBSD.org
QUOTE:
小提示:您可以ping cvsup1 cvsup2 cvsup3 cvsup4 看哪個返回值小就用哪個...
比如說你在本機ping
www# ping cvsup1.cn.freebsd.org
PING cvsup1.cn.freebsd.org (202.108.251.20
![]()
: 56 data bytes
64 bytes from 202.108.251.208: icmp_seq=0 ttl=247 time=1.914 ms
www# ping cvsup2.cn.freebsd.org //不通
PING cvsup2.FreeBSDChina.org (218.30.5.19): 56 data bytes
您看下time哪個值小就用哪個.沒返回值的你干脆別用..浪費時間//作為webserver,升級全部的ports是完全沒有必要的,因此可以把 ports-all那行前面加#注釋掉。繼續(xù)往后面
//找,有很多ports分支,我們把需要的打開,不需要的保留行首的#,就是取消了。如果是WEBserver 只更新 :
ports-databases //mysql5
ports-devel //Zend Optimize
ports-ftp //pure-ftpd
ports-lang //php5
ports-net
ports-www //apache22
//就可以...不過如果你網(wǎng)速還可以的話建議還是你都選上..萬一中間出什么錯你回來還得找我算帳...
#cvsup –g –L 2 ports-supfile
#cd /usr/ports/distfiles/
#ls
//肯定是空的.
No.3 下載我為您精心準備的套餐diskfiles
//fetch 我為您準備的distfiles包(133M).可以節(jié)省你大量fetch外國站的包...不領(lǐng)情就算了.
//反正我是為自己準備的.不為別的.網(wǎng)通線路 電信下載慢的話您就自己慢慢更新去吧.我也沒辦法
//我是機房光纖 所有直接都選上了..慢的話就考慮考慮是否去掉all
#fetch
http://soft.stuhack.com/other/distfiles.tar
distfiles.tar 68% of 133 MB 1277 kBps 00m33s
#tar -zxvf distfiles.tar
x mysql-5.1.11-beta.tar.gz
x perl-5.8.8.tar.bz2
x php-5.1.6.tar.bz2
x phpMyAdmin-2.9.0.2.tar.bz2
x ZendOptimizer-3.0.1-freebsd6.0-i386.tar.gz
x apache22/
x apache22/apr_dbd_mysql.rev-50.c
x apache22/httpd-2.2.3.tar.bz2
x defined-or-5.8.8.bz2
//安裝apache php mysql Zend一些比較大的包都在/usr/ports/distfiles/下了.不信你可以ls看一下.
No.4 安裝mysql
#cd/usr/ports/databases/mysql50-server
#make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean
#cp /usr/local/share/mysql/my-small.cnf /etc/my.cnf
#rehash
//切記..如果你要安裝DZ論壇的必需加上WITH_CHARSET=gbk 要不然后悔的就是你.重新編譯去吧你.
No.5 安裝Apache
#cd /usr/ports/www/apache22
#make WITH_MPM=worker WITHOUT_IPV6=yes WITH_THREADS=yes WITHOUT_SSL=yes install clean
No.6 安裝php
# cd /usr/ports/lang/php5
# make config
[X] CLI Build CLI version
[X] CGI Build CGI version
[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)
# make install clean
#cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
//切記不要選DEGUG 否則Zend裝不上.別說我沒告訴你.
//關(guān)于[X]] SUHOSIN Enable Suhosin protection system.我找到一些資料.為了安全..建議選上..
//但以后出什么問題.俺可不管...
QUOTE:
Hardened-PHP 最近推出了 Suhosin 測試版(beta version),這是一個從原始碼層面提升 PHP 安全性的系統(tǒng),所以不論是已知和尚未發(fā)現(xiàn)的安全性漏洞,不論這些漏洞出現(xiàn)在應(yīng)用程式還是在 PHP 的核心部分,Suhosin 的安全關(guān)卡都可以防止這些漏洞做成破壞。
Suhosin 是一個韓語的音譯,意思大約是守護天使,但是別誤會 Hardened-PHP 是由韓國人組成,它其實是由三名知名的 PHP 保安專家和 PHP 核心編程人員合作的網(wǎng)站。No.7 安裝php5-extensions
# cd /usr/ports/lang/php5-extensions/
# make config
Options for php5-extensions 1.0
-------------------------------------------------
[X] FTP FTP support
[X] GD
[X] GETTEXT
[X] MBSTRING
[X] MYSQL
[ ] POSIX //去掉.
[ ] SQLITE //去掉.
[X] ZLIB
# make install clean
No.8 安裝Zend Optimizer
# cd /usr/ports/devel/ZendOptimizer/
#make install clean
//直接就可以安裝.不用去fetch好幾M的包..知道diskfiles好處了吧.
//你會看到以下提示:
//You have installed the ZendOptimizer package.
//Edit /usr/local/etc/php.ini and add:
//[Zend]
//zend_optimizer.optimization_level=15
//zend_extension_manager.optimizer="/usr/local/lib/php/20050922-zts/Optimizer"
//zend_extension_manager.optimizer_ts="/usr/local/lib/php/20050922-zts/Optimizer_TS"
//zend_extension="/usr/local/lib/php/20050922-zts/ZendExtensionManager.so"
//zend_extension_ts="/usr/local/lib/php/20050922-zts/ZendExtensionManager_TS.so"
//********************************************************************************
//ok根據(jù)提示我們繼續(xù).
# ee /usr/local/etc/php.ini
//如果你打開是空白.那一定是忘了
# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini//
//然后再
# ee /usr/local/etc/php.ini
//在最下邊加上.
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20050922-zts/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20050922-zts/Optimizer_TS"
zend_extension="/usr/local/lib/php/20050922-zts/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20050922-zts/ZendExtensionManager_TS.so"
//先不要急著測試apache mysql php是否好使..心急吃不了熱豆腐...明白不?我還沒說完呢...
No.9 編輯httpd.conf
#ee /usr/local/etc/apache22/httpd.conf
//查找 :
#Listen 12.34.56.78:80 //行,將該行下面的內(nèi)容修改為
Listen 125.208.15.3:80 //此處為您服務(wù)器的IP地址
//查找 :
User www
Group www
//改為:
User nobody
Group nobody
ServerAdmin
stuceo@stuhack.com
//再往下找..
Options Indexes FollowSymLinks
//改為Options FollowSymLinks
//別說我沒告訴你.163都會有這種錯誤.被黑客目錄瀏覽到配置文件.到時候死了沒我的事.
DirectoryIndex index.html index.php
AddDefaultCharset ISO-8859-1,
//將那行內(nèi)容更改為AddDefaultCharset gb2312
//亂碼煩不煩人?
//再往下找 怎么著?煩了...煩了睡覺去吧.這兒你不看別想解析php!
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
//再下面添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
//最下面
Include etc/apache22/extra/httpd-mpm.conf //把#去掉
//ESC退出保存
#ee /usr/local/etc/apache22/extra/httpd-mpm.conf
ServerLimit 3000
StartServers 5
MaxClients 5000
MinSpareThreads 75
MaxSpareThreads 300
ThreadsPerChild 50
MaxRequestsPerChild 80000
//切記... ServerLimit 3000 這兒一定要加上限制連接數(shù)..要不然重啟的時候肯定報錯
Starting Apache22
WARNING:MaxClients of 5000 would ruquire 100 servers,and would exceed the ServerLimit value of 16 Automatically lowering MaxClients to 800.To increase ,please see the ServerLimit directive.
//這是一網(wǎng)友告訴我的:MaxClients = StartServers * ThreadsPerChild
//ESC保存退出.
//ok現(xiàn)在您可以放心的reboot了...
//起來之后打開你的IP地址..看到什么了?大聲告訴我..什么...空白?空白就對了...嘿嘿....
//因為...
QUOTE:
編輯php.ini
#ee /usr/local/etc/php.ini
//safe_mode = Off,更改為safe_mode = On
//查找disable_functions =phpinfo //探針就不好使了..想看配置沒門//disable_functions 禁止了phpinfo函數(shù)唄...
//想看看辛勤勞動的結(jié)果是吧?
#ee /usr/local/etc/php.ini
//找到disable_functions =
//ESC退出保存..
No.13 重起apache
#apachectl restart
//F5刷新一下看看有什么東西出現(xiàn)了...
No.14 myql
#mysql
Welcome to the MySQL monitor.Commands end with ; or \g.
You MySQL connect id is 2 to server version:5.1.11-beta
Type 'help;' or '\h' for help.Type 'c\' to clean the buffer.
mysql>show databases;
+-------------------------+
| Database |
+-------------------------+
|information_schema |
|cluster |
|mysql |
|test |
+-------------------------+
4 rows in set
mysql>create database stuhack;
Query OK ,1 rows affected
No.15 phpMyAdmin
#cd /usr/ports/distfiles
#tar -zxvf phpMyAdmin-2.9.0.2.tar.gz
x phpMyAdmin-2.9.0.2/themes/original/img/spacer.png
x phpMyAdmin-2.9.0.2/themes/original/img/vertical_line.png
x phpMyAdmin-2.9.0.2/themes/original/img/window-new.png
x phpMyAdmin-2.9.0.2/themes/original/info.inc.php
x phpMyAdmin-2.9.0.2/themes/original/layout.inc.php
x phpMyAdmin-2.9.0.2/themes/original/screen.png
#mv phpMyAdmin-2.9.0.2 /usr/local/www/apache22/data/phpMyAdmin
#cd /usr/local/www/apache22/data/phpMyAdmin
#cp config.sample.inc.php config.inc.php
#ee config.inc.php
//找到
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
//改成
//如果這兒不添的話.他會提示你"配置文件現(xiàn)在需要絕密的短語密碼(blowfish_secret)。"
$cfg['blowfish_secret'] = 'fuck'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
//'fuck'這個你隨便寫.不一定是root的密碼..
//繼續(xù)找
$cfg['Servers'][$i]['controluser'] = 'pmausr';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';
//找到這句改成
$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = '';
//打開
http://ip/phpMyAdmin
//歡迎使用 phpMyAdmin 2.9.0.2
//Language GB2312
//登入
//登入名稱:
// 密碼:
//您直接輸入root回車就可以.
//您會看到...
# 顯示 MySQL 的運行信息
# 顯示 MySQL 的系統(tǒng)變量 文檔
# 進程 文檔
# 字符集和整理
# Storage Engines
# Reload privileges 文檔
# 權(quán)限
# 數(shù)據(jù)庫
//點權(quán)限
//root localhost 否 ALL PRIVILEGES 是 編輯權(quán)限
//更改密碼 執(zhí)行
//刷新phpMyAdmin頁面
#1045 - Access denied for user 'root'@'localhost' (using password: NO)
#cd /usr/local/www/apache22/data/phpMyAdmin/
#ee config.inc.php
//把
$cfg['Servers'][$i]['controlpass'] = '';
//改為
$cfg['Servers'][$i]['controlpass'] = 'stuhack';
//保存.刷新phpMyAdmin
//或者是:
#cd /usr/ports/database/phpmyadmin
#make install clean
No.16 配置虛擬主機.綁定域名
//配置虛擬主機.把兩個域名綁定.分別顯示各自的內(nèi)容.之前要把域名解析到該IP
#ee /usr/loal/etc/apache22/httpd.conf
//找到
#Virtual hosts
#Include etc/apache22/extra/httpd-vhosts.conf
//把Include前邊的#去掉.
#cd /usr/local/www/apache22/data/
#mkdir htdocs
#cd htdocs
#ee index.php
輸入:
//htdocs 為unix.stuhack.com目錄
#cd ../
#mkdir wwwroot
#cd wwwroot
#ee index.php
輸入:
//wwwroot 為vhost.stuhack.com
#ee /usr/local/etc/apache22/extra/httpd-vhosts.conf
//按照下面的改成自己的
NameVirtualHost 125.208.15.11:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any block.
#
ServerAdmin
stuceo@stuhack.com
DocumentRoot /usr/local/www/apache22/data/htdocs
ServerName unix.stuhack.com
allow from all
Options +Indexes
ServerAdmin
stuceo@stuhack.com
DocumentRoot /usr/local/www/apache22/data/wwwroot
ServerName vhost.stuhack.com
allow from all
Options +Indexes
#apachectl restart
//重起Apache服務(wù)器生效
//ok 打開
http://unix.stuhack.com/
//會顯示 Unix.stuhack.com
//打開
http://vhost.stuhack.com
//會顯示 Vhost.stuhack.com
No.16 MRTG 流量分析
//安裝MRTG 可謂艱難.查了好多資料.也走了很多彎路.一步一步走出來的..
//在安裝 MRTG 之前,我們先使用 ports 來安裝 SNMP:
#cd /usr/ports/net-mgmt/net-snmp
#make install clean
#cd /usr/local/share/snmp
#cp snmpd.conf.example snmpd.conf
#ee /usr/local/share/snmp/snmpd.conf
//添加以下內(nèi)容
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
rocommunity mrtg
syslocation Office
syscontact
stuceo@stuhack.com
#/usr/local/etc/rc.d/snmpd start
#netstat -an
udp4 0 0 *.161 *.*
//接著ports 來安裝 MRTG:
#cd /usr/ports/net-mgmt/mrtg
#make install clean
#################################################
# Please create a MRTG config file in /usr/local/etc/mrtg #
# A configuration file can be automatically generated with cfgmaker #
# A sample configuration file is installed as mrtg.cfg.sample #
# #
# To enable MRTG in daemon mode, put the following to your /etc/rc.conf or #
# /etc/rc.conf.local file: #
# mrtg_daemon_enable="YES" #
#################################################
#ee /etc/rc.conf
snmpd_enable="YES"
mrtg_daemon_enable="YES"
#mkdir /usr/local/www/apache22/data/mrtg
//新建mrtg 為了是用ip可以直接訪問mrtg
#cd /usr/ports/distfiles/
#tar -zxvf mrtg-2.14.5.tar
#cd mrtg-2.14.5
#cp images/* /usr/local/www/apache22/data/mrtg
//把mrtg解壓一下.再把這些圖像文件cp到mrtg下面.
#cd /usr/local/etc/mrtg
# rehash
# cfgmaker mrtg@
www.stuhack.com
>mrtg.cfg
//上面請?zhí)貏e注意:在 mrtg@
www.stuhack.com
也可以換成mrtg@yourip
//mrtg 是有其意義的(在 snmp 這個通訊服務(wù)里面的預(yù)設(shè)搜尋的一個代碼,默認的可能是public,這就是剛才要查看snmpd.conf里的原因了)
//所以,如果你的主機的動態(tài) DNS 名稱為 your.domain.name 則你就『一定』要寫成
mrtg@your.domain.name
才行!千萬不要弄錯了!
#ee mrtg.conf
//還需要編輯一下這個文件加入WorkDir這一項,就是你的生成的網(wǎng)頁的存放的位置。
WorkDir: /usr/local/www/apache22/data/mrtg
# Options[_]: growright, bits
Language:GB2312
//這個要注意的一點是他們前邊不要有空格,否則會有什么” ERROR: Line 8 ( WorkDir: /var/www/html/mrtg) in CFG file (mrtg) does not make sense”的錯誤。
#whereis mrtg
mrtg: /usr/local/bin/mrtg /usr/local/man/man1/mrtg.1.gz /usr/ports/net-mgmt/mrtg
//為查找mrtg到底在哪..
# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
//這個需要運行3次,前兩次都會報錯,不用去理會他,第3次就應(yīng)該沒有錯誤了
//不過,若是有問題的話,就需要修改mrtg.cfg,再執(zhí)行直到?jīng)]有錯誤發(fā)生為止。
//如以下錯誤:
Rateup WARNING: /usr/local/mrtg2/bin/rateup could not read the primary log file for localhost
Rateup WARNING: /usr/local/mrtg2/bin/rateup The backup log file for localhost was invalid as well
Rateup WARNING: /usr/local/mrtg2/bin/rateup Can't remove localhost.old updating log file
Rateup WARNING: /usr/local/mrtg2/bin/rateup Can't rename localhost.log to localhost.old updating log file
#whereis indexmaker
indexmaker: /usr/local/bin/indexmaker /usr/local/man/man1/indexmaker.1.gz
/usr/local/bin/indexmaker
//為了查找indexmaker在哪.不要弄錯了..
#/usr/local/bin/indexmaker -output=/usr/local/www/apache22/data/mrtg/index.html -title=LL /usr/local/etc/mrtg/mrtg.cfg
//上面這個程序indexmaker是在制作首頁。會自動地輸出一個index.html的文件中。
//如果說你以后修改了這個文件(比如增加對CPU,硬盤等的偵測,要再重新生成一次,否則圖面會出不來的.
#crontab -e
//按下I鍵 插入的意思!
*/5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
//ESC 輸入
:wq!
//設(shè)定每5分鐘執(zhí)行一次
//使用手工運行mrtg并不能定時產(chǎn)生適當?shù)慕y(tǒng)計信息,因此最好還是定時自動運行mrtg來生 成統(tǒng)計信息,默認為五分鐘運行一次。
//ok!到此為止,配置完畢,記得一定要重新啟動snmp和httpd服務(wù)!
#/usr/local/etc/rc.d/snmpd restart
Stopping snmpd.
Starting snmpd.
#apachectl restart
//現(xiàn)在你可以使用
http://yourserver/mrtg
來連去看看。
//打開
http://unix.stuhack.com/mrtg/
No.17 與系統(tǒng)帳號分離的PureFtpd
//架設(shè)ftp我是一直沒寫.也一直找不到和合適的.選來選去還是用pureftpd
# cd /usr/ports/ftp/pure-ftpd/
# ee Makefile
加入 --with-puredb \
# make WITH_LANG=simplified-chinese install
# pw groupadd ftpgroup
# pw useradd ftpuser -g ftpgroup -d /dev/null -s /etc
# mkdir /home/stuhack
#/usr/local/bin/pure-pw useradd stuhack -u ftpuser -d /home/stuhack -m
//輸入兩次密碼
#chown -R ftpuser:ftpgroup /home/stuhack
# /usr/local/bin/pure-pw mkdb /usr/local/etc/pureftpd.pdb
# cd /usr/local/etc/
# cp pure-ftpd.conf.sample pure-ftpd.conf
# ee pure-ftpd.conf
找到# PureDB /etc/pureftpd.pdb把
#掉支掉,路徑改成你剛才建的!∥业氖/usr/local/etc/pureftpd.pdb
# /usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/30118/showart_270460.html |
|