14
Jan
08

StartSSL:免費的SSL證書

市面上的SSL證書動輒都要起過100美金一年,如果只是為自己家裏的伺服器加密傳輸的資料就好像不值了。其中一個解決辦法是自己替自己簽發證書,只是這樣一來每個瀏覽器也會出警告,說同學的證書無效。

另一個較好的方法是申請一張免費的StartSSL證書,因為這簽發機構已通過了Mozilla的稽核,所以這張證書在Mozilla的瀏覽器是有效的,就好像由VeriSign等商業機構簽發的證書一樣。

首先到StartSSL申請一個戶口,但個人資料最好填寫正確的,因為申請過程會由人手批核。之後就可到Validations Wizard核實域名擁有者〈Sub-domain是不行的〉,核實過程會寄郵件到postmaster/webmaster等地址,所以同學要確定收到域名的電郵。

同學可以順道申請Google Apps

核實後便可到Certificates Wizard申請證書,選擇SSL/TLS Web Server Certificate,然後輸入私人密匙的密碼sub-domain〈證書可以同時用於domain和sub-domain〉並取得密匙(ssl.key)、certificate signing request(ssl.csr)和證書(ssl.crt)。Certificate signing request對證書用處不大,但私人密匙和證書就一定要保存好了。

解密私匙

# openssl rsa -in ssl.key -out server.key

下載簽發機構的證書

# wget http://www.startssl.com/certs/ca.crt
# wget http://www.startssl.com/certs/sub.class1.server.ca.crt

組合證書

# cat ssl.crt ca.crt sub.class1.server.ca.crt >> server.crt

最後修改伺服器設定就可以了。

Technorati Tags: , ,

14
Jan
08

nginx + PHP + FastCGI:輕型網頁伺服器

nginx是一個非常輕型的網頁伺服器,而且也有在大型網站上使用。

安裝PHP和FastCGI

# aptitude install php5-cgi libfcgi0c2

下載FastCGI的init script

# cd /etc/init.d
# wget -O php-fastcgi http://daufu.files.wordpress.com/2008/01/php-fastcgiinit.txt

修改檔案屬性

# chmod +x php-fastcgi

下載FastCGI init script的設定檔

# cd /etc/default
# wget -O php-fastcgi http://daufu.files.wordpress.com/2008/01/php-fastcgidefault.txt

如果執行後沒有問題就把init script安裝到系統

# update-rc.d php-fastcgi defaults 19 21

  1. 啟動php-fastcgi
    # /etc/init.d/php-fastcgi start
  2. 可用ps aux指令檢查php-fastcgi有沒有執行

安裝nginx的必要套件〈以下的套件足以compile所有nginx的功能〉

# aptitude install zlib1g-dev libpcre3-dev libssl-dev libgcrypt11-dev

官網下載nginx

# cd /usr/src
# wget http://sysoev.ru/nginx/nginx-0.5.35.tar.gz

解壓縮檔案

# tar zxvf nginx-0.5.35.tar.gz

Compile及安裝nginx

# cd nginx-0.5.35
# ./configure --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --user=www-data --group=www-data --with-http_ssl_module  --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module--http-client-body-temp-path=/var/cache/nginx/client_body_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --with-sha1=/usr/lib
# make
# make install
# mkdir /var/cache/nginx
# chown www-data:www-data /var/cache/nginx

安裝nginx的init script

# cd /etc/init.d
# wget -O nginx http://daufu.files.wordpress.com/2008/01/nginxinit.txt
# chmod +x nginx
# update-rc.d nginx defaults

這個init script是從Debian的套件提出的

為nginx設定FastCGI

# cd /etc/nginx
# wget -O fastcgi_params http://daufu.files.wordpress.com/2008/01/fastcgi_params.txt

修改nginx的設定檔

# nano nginx.conf

同學可參考nginx的英文wiki或我的設定檔

修改完設定檔後,nginx便要重新讀取設定檔

# kill -HUP 'cat /var/run/nginx.pid'

nginx的一個特色是重啟並不需要先關閉伺服器,所以訪客的連線是不會中斷的。而將來nginx出了新版也可以用同樣的方法升級。

參考資料:

Technorati Tags: , ,

07
Jan
08

另一個BitTorrent程式:Transmission + Clutch

Transmission原本是一個Mac OS X的BitTorrent程式,但它同時支援了Linux和不用compile GUI,所以也適合在玄箱裏使用。而Clutch則是個基於PHP的Transmission網頁介面,但它開發了不久,所以功能也不算齊備,暫時只有簡單的選項和Torrent管理。

安裝Transmission的必要套件

# aptitude install libgetopt++-dev intltool libssl-dev

安裝Clutch的必要套件

# aptitude install php5-json

轉到/usr/src目錄

# cd /usr/src

Transmission官網下載源程式碼

# wget http://download.m0k.org/transmission/files/transmission-1.00.tar.bz2

解壓縮檔案

# tar jxvf transmission-1.00.tar.bz2

轉到目錄下

# cd transmission-1.00

Compile並安裝程式

# ./configure --disable-gtk
# make
# make install

然後切換到網頁伺服器的使用者,以下假設為www-data

# su www-data

啟動transmission-daemon

# transmission-daemon

然後轉到網頁伺服器的根目錄並到Clutch官網下載源程式碼〈下載WebUI Source (Other)版本〉

# wget http://www.clutchbt.com/Files/Clutch-0.2.tar.gz

解壓縮檔案

# tar zxvf Clutch-0.2.tar.gz

刪除壓縮檔並更改目錄名稱

# rm -f Clutch-0.2.tar.gz
# mv Clutch-0.2 clutch

修改目錄下/remote/data/socket.txt的內容為

/var/www/.transmission/daemon/socket

之後用瀏覽器開啟網頁便成功了。

如果同學用Firefox 3,Clutch只會顯示Connection Failed的,這應該是Clutch的臭蟲。

但要留意Clutch沒有密碼保護功能,所以同學有需要的話就要修改網頁伺服器的設定了。另外一點是transmission-daemon是不會跟着玄箱一起啟動的,要留意唷。

Technorati Tags: , , , ,

07
Jan
08

MoBlock:Debian套件安裝

首先把moblock-deb的位置加入APT的source list

# nano /etc/apt/sources.list

加入以下一行:

deb-src http://moblock-deb.sourceforge.net/debian etch main

之後就加上作者的PGP鑰匙到APT的key ring

# gpg --keyserver wwwkeys.eu.pgp.net --recv 9072870B
# gpg --export --armor 9072870B | sudo apt-key add -

轉到/usr/src目錄

# cd /usr/src

建立並轉到moblock目錄

# mkdir moblock
# cd moblock

更新套件列表

# aptitude update

安裝必要的套件

# aptitude install fakeroot
# apt-get build-dep moblock

下載moblock-deb的源程式碼

# apt-get source moblock

在寫這篇文章的時候,作者把不穩定的RC版同時放到Stable Release中…如果同學遇到這個情況可到官方網站下載相關的.diff.gz.dsc.orig.tar.gz檔案

# wget http://moblock-deb.sourceforge.net/debian/dists/etch/main/source/net/moblock_0.8-39+etch.diff.gz
# wget http://moblock-deb.sourceforge.net/debian/dists/etch/main/source/net/moblock_0.8-39+etch.dsc
# wget http://moblock-deb.sourceforge.net/debian/dists/etch/main/source/net/moblock_0.8.orig.tar.gz

然後把它們解壓縮
# dpkg-source -x moblock_0.8-39+etch.dsc

轉到解壓縮後的目錄

cd moblock-0.8

compile為deb套件

# dpkg-buildpackage -rfakeroot

之後在上一層目錄便可找到剛compile的deb檔案

# cd ..
# ls

最後便可以安裝

# dpkg -i moblock-nfq_0.8-39+etch_powerpc.deb

安裝完成後MoBlock會嘗試更新block list並啟動,但這很大機會把同學們一起擋掉,所以這時候一定要按Ctrl + C中止更新。

如果停不了就要進入EM Mode來繼續了…

修改設定檔

# nano /etc/moblock/moblock.conf

如果想HTTP連接無阻的話,找到以下一行

WHITE_TCP_OUT=""

改為

WHITE_TCP_OUT="80 443"

如果你的IP地址是192.168.1.x,找到以下行

WHITE_IP_IN=""
WHITE_IP_OUT=""

改為

WHITE_IP_IN="192.168.1.0/24"
WHITE_IP_OUT="192.168.1.0/24"

儲存後便可更新MoBlock

# moblock-control update

如果想知道MoBlock是否運行中可以用以下指令

# moblock-control status

Technorati Tags: , , , , ,

23
Jun
07

eAccelerator:PHP加速器

安裝eAccelerator之前必須安裝php-dev、automake、autoconf、libtool和m4套件:

# aptitude install php5-dev automake autoconf libtool m4

之後就需要網頁伺服器的使用者ID,假如網頁伺服器的使用者是www-data,可用以下指令查到它的UID:

# grep www-data /etc/passwd
www-data:x:33:33:www-data:/var/www:/bin/sh

其中第二個冒號後的數字就是UID,即33。

然後到官方網站下載eAccelerator:

wget http://bart.eaccelerator.net/source/0.9.5.1/eaccelerator-0.9.5.1.tar.bz2

解壓後轉到目錄裏:

# tar jvxf eaccelerator-0.9.5.1.tar.bz2
# cd eaccelerator-0.9.5.1

Compile eAccelerator:

# phpize
# ./configure ---with-eaccelerator-userid=33
# make

安裝:

# make install

複製設定檔到/etc/php5/conf.d目錄:

# cp eaccelerator.ini /etc/php5/conf.d

建立暫存目錄:

# mkdir /var/cache/eaccelerator
# chown www-data:www-data /var/cache/eaccelerator
# chmod 0644 /var/cache/eaccelerator

修改設定檔,找到以下幾行:

;extension="eaccelerator.so"
zend_extension="/usr/lib/php4/eaccelerator.so"

eaccelerator.cache_dir = "/tmp/eaccelerator"

修改為:

extension="eaccelerator.so"
;zend_extension="/usr/lib/php4/eaccelerator.so"

eaccelerator.cache_dir = "/var/cache/eaccelerator"

如果同學想知道自己是否安裝成功,可以用php-cgi -v指令看看。如果顯示大約如下,那就表示PHP成功載入eAccelerator。

PHP 5.2.0-8+etch4 (cgi-fcgi) (built: May 13 2007 19:11:51)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
with eAccelerator v0.9.5.1, Copyright (c) 2004-2006 eAccelerator, by eAccelerator

但如果想知道eAccelerator是不是真的運作中就進行以下步驟:

在網頁伺服器的目錄建立info.php檔案,內容如下:

<?php
phpinfo();
?>

並且將擁有者轉為www-data

# chown www-data:www-data info.php

和加上可執行權限:

# chmod +x info.php

如果在網頁瀏覽器看見以下信息,同學便成功了!

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
with eAccelerator v0.9.5.1, Copyright (c) 2004-2006 eAccelerator, by eAccelerator

如果看不見,就可能要「重新啟動」PHP,但由於在下技術低劣,所以只懂重新啟動Debian:

# reboot

Technorati Tags: ,

21
Jun
07

網頁伺服器:lighttpd + PHP + Ruby on Rails + MySQL

相比Apache的穩「重」,lighttpd是一個相當輕巧而且穩定的網頁伺服器。連維基百科和YouTube也有採用。

首先安裝MySQL及其相關的:

# aptitude install mysql-server mysql-common mysql-client libmysqlclient15-dev mytop zlib1g-dev

過程中會問MySQL root使用者的密碼,這和Debian的root無關的。

想知道MySQL是否運作中,可以用以下的指令:

# mysqladmin -u root -p ping
Enter password:
mysqld is alive

安裝PHP及其相關的:

# aptitude install php5-cgi php5-dev php5-mysql

想知道有什麼PHP相關的套件可以安裝,可以到這裡

安裝Ruby及其相關的:

# aptitude install ruby1.8-dev ruby ri irb rdoc libreadline-ruby1.8 libruby1.8 rubygems libmysql-ruby1.8

安裝Rails:

# gem install rails --include-dependencies

不用gem安裝的話,也可以用aptitude安裝:

# aptitude install rails

但這樣就裝不了最新版囉!

安裝lighttpd:

# aptitude install lighttpd lighttpd-mod-magnet lighttpd-mod-mysql-vhost lighttpd-mod-trigger-b4-dl lighttpd-mod-webdav

啟用FastCGI:

# lighty-enable-mod fastcgi

如果同學使用PHP5的話,就要修改/etc/lighttpd/conf-available/10-fastcgi.conf,把以下一行:

“bin-path” => “/usr/bin/php4-cgi”,

修改為:

“bin-path” => “/usr/bin/php5-cgi”,

或:

“bin-path” => “/usr/bin/php-cgi”,

修改/etc/lighttpd/lighttpd.conf設定檔:

  • server.modules列出與lighttpd同時啟動的模組,如果想啟動某個模組,只要把前面的#號刪除便可。
  • server.document-root指出了儲存網頁的目錄。
  • server.username和server.groupname分別是lighttpd所用的使用者身份。
  • 詳細的設定可參考這裡

重新啟動lighttpd:

# /etc/init.d/lighttpd restart

Technorati Tags: , , , , , ,

16
Jun
07

MLDonkey: BitTorrent + eMule + …

MLDonkey是一個支援多個P2P網絡的軟件,而且內置了網頁介面,同學平日使用也會很方便。

安裝:

# aptitude install mldonkey-server

安裝過程中會問到以下的問題:

  1. 是否在開機時啟動MLDonkey
  2. MLDonkey運作時的目錄
  3. 最高下載速度
  4. 最高上載速度
  5. 管理員密碼

之後MLDonkey就會啟動。每次MLDonkey啟動都會自動從網上下載資料,所同學請等一會,如果想知道MLDonkey正在做什麼,可以查看系統記錄檔:/var/log/syslog

然後在步驟2的目錄裏會找到個叫downloads.ini的檔案,那就是MLDonkey的設定檔。由於所有設定都可以在網頁介面進行,平常是不用修改這檔案的。但MLDonkey預設網頁介面只能從玄箱自己進入,所以同學要把自己的IP地址加入allowed_ips裏,如:

allowed_ips = [
"127.0.0.1";
"192.168.1.0/24";]

如果是一個網段,同學可在這個網站找到適合的表示法。

設定完成後重新啟動MLDonkey:

# /etc/init.d/mldonkey-server restart

在網頁瀏覽器輸入玄箱IP地址:4080,如:192.168.1.100:4080就可以進入網頁介面。

如果同學不能安裝MoBlock,MLDonkey也提供IP阻擋功能的。每次MLDonkey啟動時都會下載Options/Web infos裏指定的檔案到web_infos目錄。之後在Options/Net/ip_blocking填上該檔案,如:web_infos/level1.gz便可。

Technorati Tags: , , , ,




Follow

Get every new post delivered to your Inbox.