2009年8月31日
【DNS Server】架設心得
記得再update bind
#yum install bind*
更新完之後就會有chroot的功能
控制chroot開關狀態是在
/etc/sysconfig/named
裡面有個參數:ROOTDIR
若不啟動註解掉即可
chroot可大大提高安全性
即使named被hacker控制
最多也只能在root dir內遊走
named.conf - 主要設定檔
可參考sample
/usr/share/doc/bind-9.3.4/sample/etc/named.conf
以下是我的簡單設定
options
{
directory "/var/named"; // the default
};
zone "." { // root server
type hint;
file "named.ca";
};
//本機正反解
zone "localhost" {
type master;
file "named_localhost";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "arpa_127.0.0";
};
//herbsite 正反解
zone "herbsite.tw" {
type master;
file "named_herbsite.tw";
};
zone "75.208.134.in-addr.arpa" {
type master;
file "arpa_134.208.75";
};
herbsite正解設定:
named_herbsite.tw
$TTL 1d
@ IN SOA www.herbsite.tw. root.herbsite.tw. (
2009090100;
28800;
14400;
720000;
86400;
)
@ IN NS herbsite.tw.
@ IN A 134.208.75.141
@ IN NS dns.herbsite.tw.
dns IN A 134.208.75.143
@ IN NS www.herbsite.tw.
www IN A 134.208.75.143
@ IN MX 10 mail.herbsite.tw.
mail IN A 134.208.75.143
herbsite 反解設定:
arpa_134.208.75
$TTL 1d
@ IN SOA localhost. root.localhost. (
2009090100;
28800;
14400;
720000;
86400;
)
@ IN NS herbsite.tw.
@ IN NS mail.herbsite.tw.
141 IN PTR herbsite.tw.
143 IN PTR mail.herbsite.tw. //只做mail反解,以免被當成垃圾信
然後就可以啟動了
/etc/init.d/named restart
若有錯誤或失敗請檢查/var/log/messages
最常見錯誤為分號和空格問題!
2009年8月18日
【bat】背景執行與kill process
在linux上只需要在指令後面加 & 就可以在背景執行
那windows上呢?
start /D<folder> /I /MIN /NORMAL /B <EXEC> > <log file>
那要刪除背景執行的程式呢?
除了使用工作管理員以外
要在bat內完成就是要下指令瞜
taskkill /IM mytest.exe /F
這樣所以mytest.exe產生的子程序也會跟著關閉了
2009年8月13日
【Apache】WebDav 相關設定
最近發現個好玩的東西
叫webdav
怎麼好玩呢?
當一台 web server 上沒有任何其他service時
要怎麼把檔案傳上web server呢?
其實可以靠Apache 的WebDav模組!
而且在Windows上有個軟體叫NetDrive
可以把ftp、webdav的連線內容模擬成一個磁碟來操作(當然需要相對的權限)
如此方便的功能,一定要來玩玩看得啦
首先要確定Apache有無安裝wevdav module
打開httpd.conf
搜尋
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
這兩行的註解記得拿掉
並且加上
Include conf/extra/httpd-dav.conf
路徑是妳webdav的設定檔
接下來就是設定httpd-dav.conf了
幾個重要參數介紹一下
DAVLockDB /usr/local/apache/var/DAVLock
這個必須要放在所有設定的最上面
DAVLock這個檔案mod_dav會在地一次執行時建立
但路徑裡的資料夾必須是要存在的
Alias /webdav "C:/xampp/webdav"
這是設定webdav的資料夾
<Directory "C:/xampp/webdav">
#將DAV功能開啟
Dav On
#設定該資料夾權限
Order allow,deny
Allow from all
#類似title
AuthName DAV-upload
AuthType Basic
#該資料夾登入時所用的帳號密碼檔(可用htpasswd建立)
#使用方法:htpasswd.exe -c "C:/yourPath/user.pwd" username
AuthUserFile "C:/xampp/security/htpasswd.webdav"
#設定使用權限,GET是read權限,PUT是write權限
<LimitExcept GET PROPFIND OPTIONS PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
#哪個user適用這個權限
require valid-user
</LimitExcept>
</Directory>
最後在加上
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
就完成一個簡單的設定了
之後重新啟動Apache
就可以使用webdav的功能摟!
ps. 補上CentOS上的設定
<IfModule mod_dav_fs.c>
LimitXMLRequestBody 131072
#WebDAV資料夾必須更改擁有者與擁有群組為apache:apache
<Directory /home/sites/your.domain.tld/webdav>
# Options none
Options Indexes FollowSymLinks
IndexOptions FancyIndexing
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /webdav "/home/sites/your.domain.tld/webdav"
<Location /webdav>
DAV On
AuthType Basic
AuthName DAV
AuthUserFile /etc/httpd/your.webdav.users.pwd
<LimitExcept GET HEAD OPTIONS>
require valid-user
</LimitExcept>
</Location>
</IfModule>
2009年8月7日
【Javascript】Random get number
function getRandomInt(min, max){
return Math.floor(Math.random() * (max - min + 1)) + min;
}
2009年8月5日
【PHP】撿到寶還是惡夢的開始 - 縮圖程式 TimThumb
很高興能找到這隻縮圖程式
但在server上縮一張很大的圖片時
一直給我出現 超出記憶體使用的Warring
php.ini裡的memory_limit我都調到3G了
他還是一直出現錯誤
搞了老半天
浪費一堆時間
終於在這隻可愛的 timthumb.php 裡找到一行...
ini_set('memory_limit', "30M");
.......
當場傻眼.......
好吧,我也只能說
這隻程式非常貼心
2009年8月1日
【Ubuntu】Ubuntu 9.04 VNC 遠端畫面不刷新
並找到這篇:
http://sntc06.pixnet.net/blog/post/24187572
原來是用了compize 的關係
裡面提出了幾個解決方法
但是我都沒用
因為並不打算拿Ubuntu Desktop版本當server
自然也不用遠端管理啦
不過還是紀錄一下
說不定以後會遇到 ^_^
【Linux】PuTTY Connect to CentOS5.3、Ubuntu 亂碼
最主要還是因為新版Linux編碼預設都是使用UTF-8
這也剛好符合我的需求
但putty預設編碼為big5
所以會有亂碼存在
解決方法有兩種
一種是更改linux系統編碼為big5
另外一種就是更改putty連線編碼為utf-8
當然是推薦第二種摟!
以下轉貼自:
http://www.wretch.cc/blog/nidgetgod/6561431
PuTTY 官方網站:PuTTY: A Free Telnet/SSH Client
中文亂碼解決辦法:
開啟 PuTTY -->左側選單 Window-->Translation-->Received data assumed to be in which character set-->改為『UTF-8』
最後左側選單的 Session-->Saved Sessions-->輸入你喜歡的名稱,例:Ubuntu-->按 Save 儲存
如此就不需要每次連線都去修改。
【CentOS】Web Server (Apache + PHP + MySQL + phpMyAdmin)
參考文章:
http://imniha.googlecode.com/files/c.htm
http://corpocrat.com/2008/09/28/how-to-fix-phpmyadmin-403-forbidden-error/
架設server不難
難的是設定!!
安裝只需要下yum search 之後再yum install
就可以了
目前就先列出需要安裝的package
httpd.i386 : Apache HTTP 伺服器
php.i386 : PHP: 內嵌於 HTML 的程序語言。(PHP:Hypertext Preprocessor)
php-gd.i386 : 能讓 PHP 應用程式使用 gd 圖形函式庫的模組
php-mbstring.i386 : 為 PHP 應用程式提供多位元組字串處理能力的模組
php-mysql.i386 : 能讓 PHP 應用程式使用 MySQL 資料庫的模組。
mysql-server.i386 : MySQL 伺服器與相關檔案。
phpmyadmin.noarch : Web application to manage MySQL //這要安裝RPMforge才會有 可參考環境建制那篇
phpmyadmin可不使用yum安裝
可直接到網路上下載壓縮檔
在document root下解壓縮後記得將config.sample.ini.php copy 一份
並重新命名為config.ini.php
再修改
$cfg['Servers'][$i]['auth_type'] = 'http'; //預設是cookie
Apache 設定檔:
/etc/httpd/conf/httpd.conf
web service port : 80
PHP 設定檔:
/etc/php.ini
MySQL 設定檔:
/etc/my.cnf
mysql service port : 3306
ps. 要知道哪個service佔用用哪個port可查看 /etc/service
補充:
更改MySQL預設編碼:
修改/etc/my.cnf
最上面加入
[client]
default-character-set=utf8
[mysqld]標籤內加入
default-character-set=utf8
default-collation=utf8_general_ci
重新啟動即可
使用yum安裝的phpmyadmin會有 403 Forbidden的問題
修改/etc/httpd/conf.d/phpmyadmin.conf
#Order Deny,Allow
#Deny from all
Allow from 127.0.0.1
即可解決
設定開機啟動:
chkconfig --list 查看
chkconfig httpd on 設定啟動
chkconfig httpd off 關閉
【CentOS】CentOS 5.3 初始環境設定
http://www.weithenn.idv.tw/cgi-bin/wiki.pl/CentOS_5.1-%E5%88%9D%E5%A7%8B%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A
網路設定
網路設定檔案位置:
/etc/sysconfig/network-scripts/ifcfg-ethX
X代表裝置號
亦可使用
/sbin/ifconfig ethx 設定網路相關選項
# ifconfig 介面 IP-位址 [broadcast 位址 ] [netmask ###]
ex. /sbin/ifconfig eth0 192.168.0.133 //設定eth0網卡上的ip為192.168.0.133
或用指令system-config-network設定網路
安裝 RPMforge
yum預設套件太太太太太少!!
所以這必裝
#rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
yum常用指令:
yum update //更新套件 (一個一個問)
yum update -y //更新所有套件 (所有回答都回答 Y)
yum check-update //列出需要更新的套件清單
yum upgrade //升級套件
yum install aaa //安裝套件
yum remove aaa //移除套件
yum clean all //清除安裝時的暫存檔
yum search aaa //搜尋套件
yum list //列出可安裝的套件清單
yum info aaa //列出套件訊息
yum grouplist //列出郡組安裝套件清單
yum groupinstall "GNOME Desktop Environment" //安裝 Gnome 套件郡組
yum groupupdate //更新套件群組
yum groupremove //移除套件群組
yum groupinfo //列出郡組安裝套件內含哪些套件
Mandatory Packages: //強制安裝套件
Default Packages: //預設安裝套件
Optional Packages: //建議安裝套件 (自已視需求另外安裝)
rpm 常用指令
rpm -ivh aaa //安裝 rpm
rpm -e aaa //刪除 rpm
rpm -Uvh aaa //升級 rpm 套件
rpm -qa |grep aaa //查尋該套件版本
rpm -qi aaa //列出該套件詳細資訊
rpm -ql aaa //列出該套件相關檔案
rpm -qc aaa //列出該套件設定檔及啟動檔
更新locate db
剛安裝完CentOS並下指令locate尋找檔案時會出現
locate: can not open `/var/lib/mlocate/mlocate.db': No such file or directory
所以要先建立這個db檔
#updatedb
只要檔案有變動要要讓他update一次
要不然會找不到檔案
環境建制完
接下來就可以開始建立各種Server摟!!