[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 底下是:

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

[Read More]

[FreeBSD]解決 lighttpd log Permission denied 問題

今天早上伺服器 lighttpd 沒有跑起來,發現是因為沒有寫入 lighttpd.access.log 的權限,所以造成不能啟動

2008-07-04 08:37:15: (mod_accesslog.c.535) opening access-log failed: Permission denied /var/log/lighttpd/lighttpd.access.log 目前的解法大概就是不能去改 /var/log 這個資料夾權限,所以我在 /var/log 底下新增 lighttpd 這個資料夾

[Read More]

[高雄美食] [推薦]高雄夢時代 Dream Mall 一樓 Cold Stone 冰品

Click to view full size image 我來推薦一下高雄的美食吧,上禮拜去高雄夢時代逛逛,發現一樓的Cold Stone 冰品店相當多人,結果想說進去試試看吧,這一間裝潢的很不錯喔,雖然說不會很安靜,可是工作人員服務的態度好的不得了,所以一定要推薦給各位朋友來去吃,那這尖兵品店,全部都是純手工製作的冰喔,雖然說價位有點高,可是偶而吃一次其實還不賴說,底下就是大概介紹一下冰淇淋的圖片

Cold Stone冰淇淋專賣店 高雄夢時代門市 ADD:高雄市前鎮區中華五路789號1樓 TEL:07-9703588

[Read More]

[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 伺服器的加強效能,其實我自己試了很多套:eAcceleratorPear APC,跟 Zend Optimizer,這三套都是可以加速php的速度,當你的 apache 效能遇到瓶頸,就可以選用這三個來改善網頁瀏覽速度,不過應該沒有人三個都用吧,畢竟三個東西,感覺都是cache幫助,所以達成我們所想要的要求,有時候並不是全部安裝就是代表你的伺服器一定會超快,因為我的經驗是三個不能同時裝,只要裝了兩個都會出問題,這是我這幾天測試的結果,只要裝了Pear APC,就不能裝Zend Optimizer跟eAccelerator了,因為我的 httpd 的 log 會噴出底下訊息:

signal Segmentation fault (11) 跟 pid 15879 (httpd), uid 80: exited on signal 11

[Read More]

[PHP]解決網站被 SQL injection 攻擊

其實這個安全性的問題,在目前台灣網站都存在這樣的問題,大家平常用 $_POST,$_GET 用得很順利,但是沒有想過帳號密碼被 SQL injection 破解,當網站被破解了,基本上你損失就是相當嚴重,網路上也有很多攻擊方式,不過這方法是最常被拿出來講的,我自己有一套解決方式,除了比較重要的地方,就是輸入帳號密碼的地方要加強防護之外,加上數字驗證碼,還要 check 帳號的特性,我底下是我驗證帳號密碼機制

if($user_name == '' || $user_passwd == ''){
    	ErrMsg("帳號或密碼不得空白");
    }
    if (!preg_match('/^\w+$/', $user_name)){
    	ErrMsg("請勿攻擊本站台");
    }
[Read More]
MySQL  php  sql 

[FreeBSD & Linux]網站分流:簡易架設 HAProxy 伺服器

最近在玩這套 Web 的 Load Balance 軟體,其實這是之前我寫的一篇:[筆記] FreeBSD 一張網卡多重 ip 實現 Round Robin DNS Load Balancing,有網友留言給我說可以玩看看 HAProxy,這樣的確改善了很多效能,而且也是正確達到 load balance 的效果,不然用 DNS Robin DNS Load Balancing 的方式的卻沒辦法做的很好,關於 HAProxy 在 google 了一下,好像國內很少人在寫這方面的教學,我自己來寫一下筆記好了,其實我還不是對設定很熟悉,只是大概知道他的原理罷了,底下我們來看看官網的一張圖 haproxy-pmode

[Read More]

[FreeBSD]解決swap不夠的情況:Add Swap Space

最近在使用 FreeBSD 架站,apache + MySQL + PHP,但是最近常常會吐出來 swap 不夠的情形,然後系統就會吐出下面訊息

Jun 19 20:59:57 backup kernel: swap_pager_getswapspace(7): failed Jun 19 20:59:57 backup kernel: swap_pager_getswapspace(16): failed Jun 19 20:59:57 backup kernel: swap_pager_getswapspace(2): failed Jun 19 20:59:57 backup kernel: swap_pager_getswapspace(5): failed 目前上網看到的解決方法,都是增加 swap 的容量,那底下是在 FreeBSD 下面得作法:

[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]

[教學]修復 Windows 的開機磁區各種方法

如何恢復 Windows 開機磁區,我想這是玩 Linux 跟 Windows 多重作業系統會碰到的問題之一,也是大家最頭痛的問題,當然其實方法很解決,沒有想像的那麼困難啦,只是大家安裝完 Linux 之後,然後砍掉他們的磁區,就會造成開機 boot loader 讀不到資料,所以造成 grub 的錯誤,那可以參考鳥哥那邊的作法,當然首先要瞭解:磁碟檔案系統,然後再去瞭解 Boot Loader: Grub,當然本篇試教您如和清除開機MBR,恢復 windows 系統的 boot loader。 方法一:利用XP光碟片還原 放進去XP的原版光碟,隨便一種XP光碟即可,只要能原始安裝即可,畫面中按 R 或 F10 進入「Windows 修復主控台」,當然進去之後,她會偵測到目前的系統 C:\windows 之類的,她會詢問密碼,就直接按 enter 即可,然後打入 fixmbr 然後按 Y 確定就可以了

[Read More]