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

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

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

[Linux筆記]如何製作多重開機 grub

昨天晚上原本要看 paper 的,可是幫同學處理安裝好 Fedora 7 的時候出現底下問題:

Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename grub> 其實我自己也不知道安裝好為啥會出現這個,電腦裡面三顆硬碟,兩顆 SATA 一顆 IDE,然後用光碟開機的時候分別是 sda sdb sdc 三顆,所以安裝好之後通常會把 sda mbr 寫入開機訊息,照道理說這樣就可以開機了,可是目前看來是不行,後來是重新安裝了 mbr 我把她安裝到 IDE 那顆硬碟,底下先轉貼開機 mbr 磁區介紹:

在硬碟最最最開始的磁區叫MBR(Master Boot Record),這是MicroSoft的正式稱呼! 有些人叫它Pre-Boot磁區或Pre-Load磁區. MBR (512 bytes)can be divided into 3 parts: (1) 前面446bytes為開機程式(即Pre-Boot程式),實際只用約200bytes (2) 接著的64bytes就是partition table,每16bytes代表一個logical HD (3) 最後2bytes一定是 55 AA (十六進位) FDISK/MBR 就是把前面446 bytes 換成乾淨的Pre-Boot 程式! 它絕不會動後面的66bytes!!! mbr位於硬碟第0軌,長度為512位元組內含偵測active partition的程式及 長64位元組的partition table(16 bytes * 4 partition records) 每一partition record紀錄partition的起始位置,是否active及os type 從這裡決定要用哪一個partition開機(active partition) 文章轉錄自: http://www.pczone.com.tw/vbb3/archive/t-20579.html

[Read More]
grub  Linux  MBR 

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