What have you found for these years?

2009-01-21

小網站的標準流程 (0)

小網站的標準流程 (1)

不折不扣的筆記....

假設要架一個叫做 NAME 的網站,則跑以下的流程:
(基本原則是,所有的網站都要是 stand alone 的)

遠端:

$ sudo useradd NAME -m # => 產生該使用者,與其 home 目錄
$ sudo su NAME # => 切過去
$ passwd # => 改密碼
$ cd ~ # => 回到 home
$ git init # => 建立 git repository

本機:

> git remote add origin ssh://NAME@123.123.123.123/~ # => 設定 origin
> git push origin master # => 推進去

基本檔案:

.bashrc # => 設定 gem runtime 用 user gem
.gemrc # => 同上
.gitconfig # => 設定 git 要用的使用者名稱
.gitignore # => 忽略常見檔案,例如 .log
.vimrc # => 設定 encoding 為 utf-8, 關掉 auto indent

參考:
source-tools 的 template

以後會把這加到 source-tools 的 task 裡,例如產生 rails projects,
就生出上面那一堆東西,只要設定 project name 即可。

Rakefile 裡面設定 app-deploy, 然後進入遠端:

$ rake app:install # => 下載和安裝所有 dependency
$ rake app:server:start # => 啟動 server

另外可能會用到的:

$ rake app:deploy # => 重設程式碼,重啟 server
$ rake app:server:restart # => 單純重啟 server
$ rake app:server:stop # => 停止 server

這些都在 app-deploy 裡,設定好就能用了。
設定 app-deploy, 目前需要從 github 下載,
那還會需要 bones. 跑:
$ gem install --no-ri --no-rdoc bones
其他的 gem 可以由 rake app:gem:install 安裝。

遠端修改:

$ sudo vim /etc/conf.d/local.start

加入:

cd /home/NAME && sudo -u NAME rake app:deploy

這樣可以在意外重開機後自動啟動。

如果需要讓 server process 的 user 跟程式碼 owner 分開:

$ sudo chown root:root -R /home/NAME

全部切成 root, 反正檔案的權限 user 有 r 的權力就可以執行。
有上傳檔案的需求,再開一個 777 的 directory,
或是另外建一個 /home/NAME/uploaded 這個的 owner 設成 NAME,
上傳檔案丟到那邊,接下來要怎麼處理就再弄。



此外,小網站全部跑在同一台即可,所以設定一個 nginx 做 reversed proxy.

$ sudo vim /etc/nginx/nginx.conf

加入:

upstream NAME {
server 127.0.0.1:9000;
}

server {
# serve static files
location ~ ^/NAME/(images|javascripts|stylesheets)/ {
root /home/NAME/public;
}

# forward to upstream
location ~ ^/(NAME) {
root /home/NAME/public;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;

proxy_pass http://NAME;
proxy_redirect off;

proxy_intercept_errors on;
recursive_error_pages on;
}
}


當然 gzip 等等的設定要設,這邊就省略了。重啟 nginx:

$ sudo /etc/init.d/nginx restart

以上是 gentoo.

至於 rails 該怎麼搭配此設定呢?請見下一篇談 rails 基本設定。

0 retries:

Post a Comment

All texts are licensed under CC Attribution 3.0