Archive

2011年2月 的Archive

uBuntu安裝nginx

2011年2月25日 尚無評論

今次安裝nginx
記錄一下

$ sudo apt-get update
$ sudo apt-get install nginx

相關設定我是參考
http://plog.longwin.com.tw/my_note-unix/2010/11/09/nginx-php-cgi-ubuntu-10.04-2010

Categories: uBuntu Tags: ,

uBuntu修改/設定hostname

2011年2月23日 尚無評論

這個真重要,尤其是常用VM……..

可直接下指令:
$ sudo hostname vm3

編輯 /etc/hostname 這個檔

vm3

要修改 /etc/hosts 這個檔
不然 sudo 的時候會有錯誤

127.0.0.1    localhost    vm3
127.0.1.1    ubuntu.ubuntu

# 底下的是ip6的設定就不要管他了
.............................
Categories: uBuntu Tags: , ,

uBuntu 10.10上安裝Ruby on Rails

2011年2月22日 尚無評論

這裡小記一下我在uBuntu 10.10上安裝Ruby on Rails的過程吧

由於之前用 apt-get install 怎麼裝就是會有問題,只好採用 compile 的方式~

下載 Ruby source code


http://rubyonrails.org/download

此時的版本為1.8.7-9174

$ cd ~/source
$ mkdir ruby
$ cd ruby
$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz
$ tar xzvf ruby-1.8.7-p174.tar.gz
$ cd ruby-1.8.7-p174
$ ./configure
..........
$ make
..........
$ make test
..........
$ sudo make install
..........

測試版本
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux]

$ which ruby
/usr/local/bin/ruby

安裝 RubyGems
下載 source code,現最新版本1.5.2,但為了某種理由,得裝舊版1.3.7
從這找 1.3.7的吧:http://rubyforge.org/frs/?group_id=126

$ cd ~/source
$ mkdir rubygems
$ cd rubygems
$ wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
$ tar xzvf rubygems-1.3.7.tgz
$ cd rubygems-1.3.7
$ sudo ruby setup.rb

測試版本
$ gem -v
1.3.7
$ which gem
/usr/local/bin/gem

安裝 rails
為了某種理由,要指定版本

$ sudo gem install rails -v=2.3.5

來看一下他自動裝了哪些東西:

$ gem list

*** LOCAL GEMS ***

actionmailer (2.3.5)
actionpack (2.3.5)
activerecord (2.3.5)
activeresource (2.3.5)
activesupport (2.3.5)
rack (1.0.1)
rails (2.3.5)
rake (0.8.7)

安裝 rack
為了某種理由,要指定版本
(在裝rails時就自動加進去了,如果沒有才要再裝)

$ sudo gem install rack -v=1.0.1

※ 接著我好奇,不指定 rails 的版本,結果他裝了一堆東西~出現沒有lib~不過,暫時不管他了~

Categories: uBuntu Tags: ,

Mercurial 的WEB界面安裝

2011年2月16日 尚無評論

簡單記一下這次安裝版本控制系統的過程

版本控制是用 Mercurial 這套
安裝基本上就是用指令線上安裝即可:

$ sudo apt-get install mercurial

基本的指令用法可直接看官網 Guide

接著就是建立一個可以用瀏覽器直接查看程式碼及各版本內容的環境
參考資料也是從官網而來:Serving Mercurial repositories with Apache and mod_wsgi

這裡需要的環境是

  • Apache (2.2.6, 2.2.3)
  • mod_wsgi (1.1, 2.0)
  • Python (2.5.1, 2.4.4)
  • Mercurial (1.1)
  • hgwebdir.wsgi

Apache和Python就不用再多說明,而mod_wsgi是需要手動安裝的,這在 在現有Apache2再安裝新的module – mod_wsgi.so 可以看到我之前的註記,當然現在版本是又更新了。

有了 module 後,接著就是設定 Apache 及文件環境

首先是先建立一個目錄
以我的習慣是在 /home/andy/www 下建立一個 hg 目錄
再 softlink 到 /var/www/ 底下

$ cd ~/www
$ mkdir hg
$ cd hg
$ mkdir cgi-bin

其中 hg 就是網站根目錄
底下的 cgi-bin 是之後要放cgi的目錄

接著是要找到 hgweb.wsgi 這個檔案,這個檔案是 Mercurial 提供的一個 sample
以我的環境是在 /usr/share/doc/mercurial/examples/hgweb.wsgi
把這個檔 copy 到 www/hg/cgi-bin

$ cd cgi-bin
$ sudo cp /usr/share/doc/mercurial/examples/hgweb.wsgi hgwebdir.wsgi

然後修改裡面的內容:

# An example WSGI for use with mod_wsgi, edit as necessary
# See http://mercurial.selenic.com/wiki/modwsgi for more information

# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/var/www/hg/cgi-bin/hgweb.config"

import os
os.environ["HGENCODING"] = "UTF-8"

# Uncomment and adjust if Mercurial is not installed system-wide:
import sys; sys.path.insert(0, "/path/to/python/lib")

# Uncomment to send python tracebacks to the browser if an error occurs:
import cgitb; cgitb.enable()

# enable demandloading to reduce startup time
from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb.hgwebdir_mod import hgwebdir
application = hgwebdir(config)

其中第5行的 config 內容:

[web]
# paper, monoblue, spartan, gitweb, static
style = monoblue

contact = Andy
description = 專案說明文字
name = 專案名稱
allow_archive = gz, zip, bz2

[paths]
RDLAB3 = /home/andy/www/rdlab3

[collections]
# www = /home/andy/www

[hooks]
changegroup =
# reload wsgi application
changegroup.mod_wsgi = touch /var/www/hg/cgi-bin/hgwebdir.wsgi

其中第19行,指定的路徑必需是 wsgi 檔的完整絕對路徑,即使 config 檔是和 wsgi 檔是放在相同目錄,也要指定完整絕對路徑!!

這些設定完成後,得把 www/hg 整個目錄權限修改一下,也要 softlink 到 /var/www 底下:

$ cd ~/www
$ sudo chown www-data:root hg -R
$ cd /var/www
$ sudo ln -s ~/www/hg/ .

設定 vhost:

<VirtualHost *:80>
     ServerName hg.nb3vm.com

     ServerAdmin rdandy@gmail.com

     DocumentRoot "/var/www/hg/"

     WSGIScriptAliasMatch ^(.*)$ /var/www/hg/cgi-bin/hgwebdir.wsgi$1

    <Directory "/var/www/hg/">
        Options -Indexes MultiViews FollowSymLinks

        AllowOverride None

        Order allow,deny
        Allow from all
    </Directory>

    <Directory /var/www/hg/cgi-bin>
        Options ExecCGI FollowSymlinks
        AddHandler wsgi-script .wsgi
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.hg.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.hg.log combined
</VirtualHost>

然後就會看到專案列表了!

Categories: Python, uBuntu Tags: , ,

Zend Framework DOCTYPE!

2011年2月15日 1 則評論

現行最普遍好用的DOCTYPE是 XHTML1_TRANSITIONAL

XHTML11:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

XHTML1_STRICT:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML1_TRANSITIONAL:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML1_FRAMESET:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML1_RDFA:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

XHTML_BASIC1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">

HTML4_STRICT:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

HTML4_LOOSE:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

HTML4_FRAMESET:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

HTML5:
<!DOCTYPE html>