囧~其實用 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][PHP]如何使用 flush() 跟 ob_flush()
比如說我們想要緩衝網頁資料,如利用 sleep() 這個函式,那我們不想要等整個 php 執行完畢才輸出畫面,那就是需要緩衝輸出,在 酷學園 的這篇 http://phorum.study-area.org/index.php/topic,52757.0.html 有討論到,所以我實際去測試一下,大概如下:
";
flush();
sleep(2);
for ($i=10; $i>0; $i--)
{
echo $i . "
";
ob_flush();
flush();
sleep(1);
}
ob_end_flush();
?>我覺得相當不錯用,大家可以參考看看。酷學園那篇,我測試好像沒有這種效果,Orz,不知道我測試錯誤,還是啥的地方搞錯 http://blog.goalercn.com/blogview.asp?logID=348[FreeBSD] Lighttpd + PHP + mod_proxy + FastCGI
最近一直在玩 Lighttpd 這一套 web 的 daemon,我覺得這一套還蠻好用的,不像 Apache 掛載這麼多 module 結果吃還蠻大的資源,加上 Apache 預設跑 MPM prefork 所以如果大型網站大概就會掛掉,線上人數一堆,就會快撐不住了,所以用 MPM worker 或者是 MPM Event,然後 Lighttpd 本身還支援 mod_rewrite 的功能,可以參考我之前寫的 [FreeBSD]Lighttpd + php5 + 解決 wordpress Permalinks 問題,不過最近遇到一個很奇怪問題,那就是 Lighttpd 會自己掛點,但是我看 message 跟 error log 底下是:
[Read More]2008-07-10 09:08:31: (server.c.1258) NOTE: a request for /wp-includes/js/scriptaculous/effects.js?ver=1.8.0 timed out after writing 32991 bytes. We waited 360 seconds. If this a problem increase server.max-write-idle
[FreeBSD]Lighttpd + php5 + 解決 wordpress Permalinks mod_write
今天轉換跑道了,最近玩 Apache 玩的很不順,因為只要線上人數一多,就會吃很多記憶體,導致必須重新開 Apache,所以今天來玩看看 lighttpd試試看,看看結果如何,其實轉換到 lighttpd 需要注意很多事情,那就是 Lighttpd 並不支援 .htaccess 檔案,所以 mode_rewrite 功能要設定到 Lighttpd.conf 裡面,然後也去找看看 Lighttpd 的 virtual host 的寫法,然後還有一點就是 wordpress 的 Permalinks 的問題,算是今天都解決了,底下來寫一下作法:
[Read More][FreeBSD]Apache 噴出 signal Segmentation fault (11)
最近在玩 FreeBSD 伺服器的加強效能,其實我自己試了很多套:eAccelerator,Pear APC,跟 Zend Optimizer,這三套都是可以加速php的速度,當你的 apache 效能遇到瓶頸,就可以選用這三個來改善網頁瀏覽速度,不過應該沒有人三個都用吧,畢竟三個東西,感覺都是cache幫助,所以達成我們所想要的要求,有時候並不是全部安裝就是代表你的伺服器一定會超快,因為我的經驗是三個不能同時裝,只要裝了兩個都會出問題,這是我這幾天測試的結果,只要裝了Pear APC,就不能裝Zend Optimizer跟eAccelerator了,因為我的 httpd 的 log 會噴出底下訊息:
[Read More]signal Segmentation fault (11) 跟 pid 15879 (httpd), uid 80: exited on signal 11
[PHP]解決網站被 SQL injection 攻擊
其實這個安全性的問題,在目前台灣網站都存在這樣的問題,大家平常用 $_POST,$_GET 用得很順利,但是沒有想過帳號密碼被 SQL injection 破解,當網站被破解了,基本上你損失就是相當嚴重,網路上也有很多攻擊方式,不過這方法是最常被拿出來講的,我自己有一套解決方式,除了比較重要的地方,就是輸入帳號密碼的地方要加強防護之外,加上數字驗證碼,還要 check 帳號的特性,我底下是我驗證帳號密碼機制
if($user_name == '' || $user_passwd == ''){
ErrMsg("帳號或密碼不得空白");
}
if (!preg_match('/^\w+$/', $user_name)){
ErrMsg("請勿攻擊本站台");
}[Read More]基本優化 tuning apache 跟 tuning mysql 跟 php 效能
最近在玩優化 Apache 跟 MySQL 部份,然後就在 google 上面找一些資料,當然對我自己的網站當然改變不少,速度有增快許多,所以來紀錄一下,其實都是還蠻基本的改 config 檔案就可以了 1. apache 部份 for FreeBSD
# # 利用 ports 安裝 # 在安裝 Apache 時,加入此參數 WITH_MPM=XXXX 即可。 # cd /usr/ports/www/apache22 ; make WITH_MPM=worker install clean如果是要裝在 Linux 機器的話,可能要自己編譯,在 Apache 2.0 有很多效能上得改變,所以原本預設是 prefork
# # 編譯加上 # ./configure --with-mpm=worker在 Ubuntu 底下作法很奇怪,利用 apt-get 方式不能安裝 mpm worker,因為你安裝 php 的時候他會幫你移除,然後裝上 prefork,所以很奇怪,這部份我還不知道怎麼解決。 [Read More]
[FreeBSD] 安裝 PHP APC 加速網頁速度
最近在維護自己的機器,發現網站每秒 request 只要10幾次就會感覺吃很多資源,然後莫名 CPU 飆高到100%,後來只好去找怎麼去 tuning Apache,MySQL,PHP,至於改善 apache 跟 MySQL 我先不講了,我之後會在寫,我先處理了加速 PHP 的部份,我是安裝了 APC(Alternative PHP Cache),來改善執行 PHP 的速度,這個程式必須先安裝好 PECL(PHP Extension Community Library),再來安裝 APC 就沒問題了。 1. 首先安裝 APC
# # 先切換到該軟體下面 # cd /usr/ports/www/pecl-APC/; make install clean[Read More]
[WordPress] Upgrade 2.2.x to 2.5 無痛升級法 For Linux or FreeBSD
今天終於決定升級 wordpress 的版本了,之前剛安裝好,都沒有時間去升級,剛剛去升級一下,發現其實步驟不會很複雜,所以一下子都弄好了,除非你的外掛很多,不然升級一定還蠻快的,我最後花的時間幾乎都是在升級 wordpress plugin,當然我是先去測試我的另一個生活部落格:life.wu-boy.com,目前看起來是沒有什麼問題,所以待會會來生及其他的 wordpress blog,底下來操作一遍吧 步驟一:備份資料庫,可以參考這篇 [Mysql] 資料庫備份[big5]utf8轉換成utf-8
# # 備份方式 # mysqldump -u root -p database_name > db_backup_name.sql[Read More]
[PHP][Xoops] 外掛 AMS 系統 bug ?
上學期接任 CN Journal 組刊管理者,上任網管阿伯,留下一堆bug給我解決,不過還好去 trace 一下 AMS 的 code 之後發現一些 code 怪怪的,也不知道是不是 AMS 系統的問題
[BUG1]Preview button funcation error 修改AMS的編輯模組改為Koivi Editor,即可以解決無法正常預覽的功能 [BUG2]面板線上修改功能,只能看不能修改 這個問題是編寫該文章的作者,如要再次編輯修改該文章內容,需指定版本控制,否則無法修改 [BUG3]線上編輯有問題會PO上去出現空格過多()<預覽跟po上去網頁不同> 建議先轉換成html複製在筆記本上編輯,編好在貼回去比較安全 [BUG4]封面下文字(前言)無法對齊有不規律跳行或莫名的空格 建議把前言文字先用筆記本貼成一排然後在貼到編輯區裏,即可恢復你想要的排版 如果只要有裝 AMS 跟 使用他內建的編輯器 Koivi 會出現很多斷行問題,因為他使用 html 編輯,所以按一次 enter 之後,他會出現
一次,然後系統又使用 nl2br,所以等於斷行兩次,當然我檢查了一下 AMS 裡面的 code 修改:modules/AMS/class/class.newsstory.php
function hometext($format="Show")
{
$myts =& MyTextSanitizer::getInstance();
$html = 1;
$smiley = 1;
$xcodes = 1;
if ( $this->nohtml() ) {
$html = 0;
}
if ( $this->nosmiley() ) {
$smiley = 0;
}
switch ( $format ) {
case "Show":
$hometext = $myts->displayTarea($this->hometext,$html,$smiley,$xcodes);
break;
case "Edit":
$hometext = $myts->htmlSpecialChars($this->hometext);
break;
case "Preview":
$hometext = $myts->previewTarea($this->hometext,$html,$smiley,$xcodes);
break;
case "InForm":
$hometext = $myts->htmlSpecialChars( $myts->stripSlashesGPC($this->hometext));
break;
case "N":
$hometext = stripslashes($this->hometext);
break;
}
return $hometext;
}
[Read More]