[MySQL] 實做 MySQL Master-Master Replication 同步

今天無聊實做了 MySQL 資料庫同步化,那可以先看看 MySQL Master Slave Replication,中文網站可以上 google 查詢或者是看看這一篇:MySQL 設定 Replication (Master – Slave),基本上設定還蠻容易的,如果會 Master 同步到 Slave 的話,那 MySQL Master-Master 只是在用相同的方法在做一遍,如果不懂 MMM 的可以先參考這一篇:MySQL Master-Master Replication Manager(1) – 簡介,這篇寫的很清楚,今天看了文章,我實做起來,遇到一些問題,其實還蠻奇怪的,所以底下就來紀錄一下步驟,順便也說明一下。 實做兩台 Ubuntu 機器: db1:192.168.1.1 db2:192.168.1.2 先設定 db1: 目前我都是在 Ubuntu 7.10 底下實做的,那基本上只要有支援 MySQL 的 Linux 或者 FreeBSD 機器都可以實做這個方法: 步驟一:先修改 my.cnf 這個檔案: FreeBSD 的話在:/var/db/mysql/my.cnf Ubuntu:/etc/mysql/my.cnf 有的版本是在 /etc/my.cnf 所以不太一定,請依照自己的作業系統 修改:

#
# bind-address 請 mark 起來,因為我們必須讓 MySQL Listen 各個不同的 IP Address
#bind-address           = 127.0.0.1
#
# server id 請記得每台機器都設定不同喔
#
server-id               = 1
log_bin                 = /var/log/mysql/mysql-bin.log
[Read More]

[FreeBSD]利用 DenyHosts 軟體擋掉暴力破解 ssh 的使用者

不管是架設好 Linux 跟 FreeBSD 通常都會有國外的 hacker 來 try 機器的 SSH 帳號密碼,我想這是很正常的,網路上也提供很多方法來分析 Log 檔,FreeBSD:/var/log/auth.log,我可以分析檔案,然後再利用 firewall like ipfw or pf 的方式來達到,或者是利用寫到 /etc/hosts.deny 來達到 Block 的功能,網路上有很多工具可以用,例如 DenyHostssshguard 或者是 sshit,可以參考我之前寫的一篇利用 sshit 來達到阻擋 ssh 使用者,然而今天來介紹一下 DenyHosts 再 FreeBSD 底下如何設定,還蠻方便的。 首先利用 ports 安裝,DenyHosts 是利用 python 的程式語言寫出來的:

Port:   denyhosts-2.6_2
Path:   /usr/ports/security/denyhosts
Info:   Script to thwart ssh attacks
Maint:  janos.mohacsi@bsd.hu
B-deps: python25-2.5.2_3
R-deps: python25-2.5.2_3
WWW:    http://denyhosts.sourceforge.net/

/* 利用 ports 安裝 */
cd /usr/ports/security/denyhosts; make install clean
[Read More]

[Linux&FreeBSD] 解决 umount時出現的 “Device is busy”

在 Linux 系列 OS 安裝好之後,都會有支援一個 fuser 這一個指令,那有時候在 linux 底下 mount 隨身碟,或者是其他硬體的時候,有時候沒辦法讓您移除,會出現:『Device is busy』,那這個訊息是在保護確保你的資料有儲存到該裝置,有時候如果沒有正確移除,會造成資料遺失,或者是資料不完整,那基本上裝上任何一套 Linux 作業系統,都會有支援了,所以不必在另外安裝,那 FreeBSD 那就要在安裝 /usr/ports/sysutils/fuser 這一個 tool 這樣才會有喔 安裝:『FreeBSD』

cd /usr/ports/sysutils/fuser
make install clean
那使用方法: for FreeBSD
# fuser -m /var/log/maillog
/var/log/maillog:   513wa
# 加上 -u 參數
# fuser -mu /var/log/maillog
/var/log/maillog:   513wa(root)

2008.11.28 update 另外解法: 可以使用 fstat -f /home 來觀看有哪些 process access /home

[Read More]

[PHP] 好用的留言板 驗證碼 功能

這算是大家都知道的技術了吧,因為說實在的,留言板惡意灌水實在是太容易了,就算是檔檔 referer 也是沒用,因為表頭可以自己偽造,那最好的方法就是用 PHP 驗證碼的機制,這個機制利用 GD 縮圖的部份,然後再把驗證數字存放在 SESSION 裡面,不過 PHPBB 的作法是存在 database 資料庫裡面進行比對,然後在 delete 該比資料,畢竟每個連線都有自己的 ssid 的值,所以這樣進行比對,我想是不錯的方法,也可以用在很多地方,那底下是我去 Jax 的工作紀錄 看到的一篇:PHP 驗證碼,拿過來筆記一下。 首先先去 Windows 底下的 Fonts 資料夾,選一個字型吧,因為裡面會用到喔,不然底下這一段 code 會用到

imagettftext($im, 20, 0, 25, 35, $Color,"arial.ttf",$verification__session);
/*
imagettftext (int im, int size, int angle,
int x, int y, int col,
string fontfile, string text)
im 圖片物件
size 文字大小
angle 0度將會由左到右讀取文字,而更高的值表示逆時鐘旋轉
x y 文字起始座標
col 顏色物件
fontfile 字形路徑,為主機實體目錄的絕對路徑,
可自行設定想要的字型
text 寫入的文字字串
*/
[Read More]

[AJAX] google map 的應用~

嗯嗯,我自己的 blog 有在寫美食,就會有美食地點,當然我覺得把 google map api 整合進來,是不錯的方法,其實 google map 也提供了只要輸入地址,就可以直接幫妳對應經度跟緯度的值,這樣就可以利用 ajax 的技術把資料庫裡面的地址都加上 google map 了,至少之前 高雄線上 是這樣加上所有店家資訊的地址 google map,其實要使用 google map 相當容易,其實妳只要按照下面步驟就可以了:

  1. Sign up for a Google Maps API key.
  2. Read the Maps API Concepts.
  3. Check out some Maps API Examples.
  4. Read the Maps API Reference.
[Read More]

[PHP]解決 PEAR::Mail_Mime 標題 UTF-8 亂碼問題(不能顯示)

話說大家在寫 PHP 的時候,一定會很常用到 mail 這個函式,畢竟一個網站一定會有很多需要用到寄信的地方,我先給大家推薦一下 PEAR::Mail_MimePEAR::Mail 這兩個 Pear 的套件,用起來相當不錯,支援 html 跟 UTF-8 或者是 Big5 編碼,我之前寫過一篇 [PHP] 好用的 PEAR – PHP Mail and Mail_Mime,裡面寫的還蠻詳細的,不過上次有一個問題還沒解決,就是如果用 UTF-8 編碼的標題,會顯示不出來,Gmail 收到的話就會是 no subject,然後昨天用了一個非常笨的解決方法,改成把標題使用 Big5 就可以了,解決方法如下: Update:感謝 darkhero 提供解決方法: 如果要用 UTF-8 的標題:

$param['head_charset'] = 'utf-8';
  $hdrs = array(
                'From'    => 'appleboy.tw@gmail.com',
                'Subject' => '=?utf8?B?' . base64_encode($subj) . '?=', 
                'Content-type' => 'text/html; charset=utf-8'
                ); 
先讓主機支援 PEAR:
#
#  FreeBSD ports 安裝
cd /usr/ports/devel/pear
make install clean
[Read More]
Linux  mail  PEAR  php 

[PHP]如何把 Yahoo! BBAuth 加入網站入口認證

最近很紅的一個 Yahoo APIBrowser-Based Authentication,這是目前蠻多網站開始支援的認證之一,在 XDite 網站看到他們去參加 Yahoo Open Hack Day 的參賽作品:「和多繽紛樂XDite 網站說明,裡面就有提供 OpenID 以及 Yahoo BBAuth 登入方式,等於是說目前你有 Yahoo 帳號或者是 OpenID 的帳號都可以直接進去 和多繽紛樂 做登入動作,這對於有使用者不使用註冊這麼多網站,也記太多帳號密碼而煩惱,而 Browser-Based Authentication 也提供了 Single Sign-On (SSO) 給大家使用,底下是大概講解一下 Yahoo BBAuth 是如何運作: bbauth

[Read More]

[FreeBSD]安裝 apache2 (worker) + PHP5.2.6 + mod_fastcgi + php5-fcgi

今天把 FreeBSD web 改成了 apache worker 其實之前就已經這麼做了,只是今天加上 mod_fastcgi 我是參考 DarkKiller 大神 apache22 (worker) + mod_fastcgi + php5-fcgi,之前就把 Server 換成了 php5-fcgi,只不過我是搭配 Lighttpd,效能方面還不錯,可以參考這篇:[FreeBSD] Lighttpd + PHP + mod_proxy + FastCGI,那因為用 lighttpd 的外掛模組真的太少,不像 apache 支援這麼多 module,重點是還缺少了 .htaccess 這個功能,所以大大降低大家使用 lighttpd,近期內會把全部 server 換成 apache2 搭配 mod_fastcgi,那底下寫一下作法了:

[Read More]

[無名小站]利用unix指令 wget 抓取 wretch 圖檔

囧~其實用 wget 就可以迅速抓到 無名小站 的圖放到自己的伺服器上面,當然之前 ptt 的 php 版也有提供利用 curl 的方式來抓取圖,但是還要另寫另一隻讀圖程式,程式碼如下: 感謝 tsangbor@ptt.cc 提供 DEMO: http://download.easygame.com.tw/get_wretch_img.php 輸入框請輸入 無名網友的相本 如: http://www.wretch.cc/album/album.php?id=qsplmiki&book=130 程式碼:

[Read More]