還好,原來執行 taskmgr,也是可以把「工作管理員」叫起來。
星期五, 五月 27, 2011
星期五, 五月 20, 2011
我終於救回ubuntu的聲音了
前天,我為了要在ubuntu 9.10上使用麥克風。(我的音效卡 Codec: VIA ID 4441 )
開始瘋狂地亂灌套件。
apt-get install linux-backports-modules-alsa-karmic-generic-pae
apt-get install linux-sound-base alsa-base alsa-utils
apt-get install gnome-alsamixer
apt-get install gnome-audio
apt-get install esound
儘管microphone就是沒有反應~然而,更糟的事卻發生了…
ubuntu /系統/ 偏好設定/ 聲音 ----------- 只得到了 "正在等候音效系統回應"
////
幹,有套件被我玩爛了。這時候,我陷入了前所未有的困境,因為X11的config檔或是log檔,我從來都沒有看懂過。
剛才我靈機一動,我下了個指令
aptitude search audio
得到了不尋常的結果:
p pulseaudio-dbg
pB pulseaudio-esound-compat
p pulseaudio-esound-compat-dbg
pB pulseaudio-module-bluetooth
p pulseaudio-module-bluetooth-dbg
pB pulseaudio-module-gconf
p pulseaudio-module-gconf-dbg
p pulseaudio-module-lirc
p pulseaudio-module-lirc-dbg
p pulseaudio-module-raop
p pulseaudio-module-raop-dbg
p pulseaudio-module-rygel-media-server
p pulseaudio-module-rygel-media-server-dbg
pB pulseaudio-module-udev
p pulseaudio-module-udev-dbg
pB pulseaudio-module-x11
看到B,就覺得這個字母不對。
當我下了 sudo apt-get install pulseaudio-esound-compat 之後。
ubuntu的聲音總算回來了。
星期日, 五月 01, 2011
在ubuntu上,設置userdir網頁環境
首先,要安裝的是apache。
sudo apt-get install apache2
apache2安裝好之後,預設的http doc root是指向 /var/www ,此處有一個問題,如果直接在這邊放網頁的話,會有要改權限的問題。讓網頁的ower為root也不是一件好事。
所以,在user的home dir下,建立public_html ,然後,啟動apache2的userdir模組。
sudo a2enmod userdir
重新啟動apache2
sudo /etc/init.d/apache2 restart
如此,就可以用 http://127.0.0.1/~userA 去指向 /home/userA/public_html 了
sudo apt-get install apache2
apache2安裝好之後,預設的http doc root是指向 /var/www ,此處有一個問題,如果直接在這邊放網頁的話,會有要改權限的問題。讓網頁的ower為root也不是一件好事。
所以,在user的home dir下,建立public_html ,然後,啟動apache2的userdir模組。
sudo a2enmod userdir
重新啟動apache2
sudo /etc/init.d/apache2 restart
如此,就可以用 http://127.0.0.1/~userA 去指向 /home/userA/public_html 了
星期三, 四月 27, 2011
mysql cache改善效能
一般而言,改進web site的效能,首先第一個performance瓶頸是web server,這個可以利用reverse proxy來處理。第二個瓶頸,通常落在database上。
由mysql performance的blog得知,用
APC Cache > File Cache > MySQL Query Cache (Unix Socket) > Memcached Cache (TCP/IP) > MySQL Query Cache (TCP/IP)
所以,看來如果要用的話,應該首選就是php APC cache了。
這邊有一個簡單的apc cache的範例:
主要是利用
apc_exists
apc_fetch
apc_store
apc_delete
星期六, 四月 23, 2011
星期五, 四月 15, 2011
Debug PPTPVPN
最近公司的project是在一份linux 24.18的 OS上,使PPTP VPN server可以運作。一連遇到了好幾個關卡:
這分linux source code是被patched過的,所以它的pppd的版本比較舊,支援的option也不太一樣。最大的不同點在於,和mppe相關的config,格式有所修改。變成和pptpvpn官網的不一樣。
Usage:
By default pppd tries to negotiate MPPC and don't negotiate MPPE but will agree if peer wants encryption. If peer supports a few key lengths, according to RFC3078 pppd will choose the strongest one.
mppe suboptions:
required - make MPPE obligatory, disconnect if peer doesn't support MPPE
stateless - try to negotiate stateless mode
no40 - disable 40 bit keys
no56 - disable 56 bit keys
no128 - disable 128 bit keys
Examples:
pppd [options] - try to negotiate MPPC, MPPE is optional
pppd nomppe [options] - try to negotiate MPPC and disable MPPE; peer will disconnect if it requires MPPE
pppd nomppc [options] - disable MPPC; MPPE is optional
pppd mppe required,stateless,no128 [options] - try to negotiate MPPC, require MPPE in stateless mode and disable 128 bit keys; pppd will disconnect if peer doesn't support MPPE
//
在除錯的過程中,也一直不知道windows的pptpvpn 的選項,直到最後,終於看懂了
ConfReq <+H, -M, +S, -L, -D>
=> 這是使用mppe 128bits, stateless, nomppc的意思
之後,掙扎了很久,總算是生出一分可以使用的config檔。
/etc/ppp/options.pptpd
name "pptpd"lockmtu 1450mru 1450proxyarpauthipcp-accept-localipcp-accept-remotelcp-echo-failure 3lcp-echo-interval 5deflate 0+chap+mschap-v2mppe required,stateless
/etc/pptpd.conf
ppp /bin/pppd
option /etc/ppp/options.pptpd
localip 172.16.16.1
remoteip 172.16.17.1-254
/etc/ppp/chap-secrets
"帳號" pptpd "密碼" *
在ubuntu 9.10上灌svn
灌好之後,用svnadmin 來做svnroot 時,
sudo mkdir /var/local/svnroot
sudo svnadmin create /var/local/svnroot
得到error message
svnadmin: SQLite compiled for 3.6.16, but running with 3.6.10
後來,找了半天,終於找到一個超簡單的解法:
sudo svnadmin create --pre-1.6-compatible /var/local/svnroot/
订阅:
博文 (Atom)