2015年10月15日 星期四

LXR 安裝教學

本教學的OS使用:ubuntu 14.04 64bit(但通常沒有差別)

首先需要的軟體:
LXR 0.3Glimpse、Apache

Apache安裝:
這部份網路上已有很多的教學文了,主要的是要開啟CGI的功能
sudo a2enmod cgi
sudo service apache2 restart
安裝完後,把網頁的資料放在這個底下便可瀏覽
/var/www/html/(網頁or資料)

可以先把他放在自已方便的地方,這邊就先放在家目錄下的/teach資料夾
並且將它解壓縮:
tar xf glimpse-latest.tar.gz
tar xf lxr-0.3.1.tar.gz










安裝glimpse:
cd glimpse-4.18.6/
./configure
sudo make
sudo make install



安裝LXR:

先進入/lxr-0.3
cd lxr-0.3

檢查perl的版本和路徑
vim Makefile










修改安裝路徑
一定要在/var/www/html/底下











之後開始安裝
make
sudo make install
之後就可以看到/var/www/html/底下會看到lxr2,那就安裝完了~






修改apache2的設定:
cd /etc/apache2
sudo vim apache2.conf

在apache2.conf文件中合適式的地方加入下列的設定文字
<Directory /var/www/html/lxr2/http>
    Options All
    AllowOverride All
    order allow,deny
    allow from all
</Directory>
上方紅字的部份為你安裝LXR的地方






















重啟Apache
sudo service apache2 restart

之後開始來設定LXR的設定檔
cd /var/www/html/lxr2/http
sudo vim lxr.conf
這邊會有些不好懂,但我會盡力......的說明
在這個設定檔主要會看到的是下面的文字
variable: v, Version, [/local/lxr/source/versions], [/local/lxr/source/defversion]
在這裡的variable有點像是datatype的在宣告一個變數v
Version則是顯示在網頁上
後面的兩個中括號,前面那個像是list的概念
前面那個則是在list中,哪個為預設值
這裡寫成/local/lxr/source/versions的路徑,是指要去這個路徑下讀versions這個檔案中的清單
variable: a, Architecture, (i386, alpha, m68k, mips, ppc, sparc, sparc64)
而使用小括號則是括號中為list,其中第一個為預設值
baseurl: http://lxr/
這個是你網路的入口
htmlhead: /local/lxr/http/template-head
htmltail: /local/lxr/http/template-tail
htmldir:  /local/lxr/http/template-dir
然後網站的html語法的的template
sourceroot: /local/lxr/source/$v/linux/
srcrootname: Linux
原始碼的位置
incprefix: /include
dbdir: /local/lxr/source/$v/
原始碼資料庫的位置,因為可能不只放一個版本而已
glimpsebin: /local/bin/glimpse
(是不是看不懂......沒關系,和我做一次吧~)

//首先這行
variable: v, Version, [/local/lxr/source/versions], [/local/lxr/source/defversion]
//改成這樣,讓可以讀到versions這個檔案
variable: v, Version, [/var/www/html/lxr2/source/versions], [/var/www/html/lxr2/source/defversion]
//這三行
htmlhead: /local/lxr/http/template-head
htmltail: /local/lxr/http/template-tail
htmldir:  /local/lxr/http/template-dir
//改成這樣
htmlhead: /var/www/html/lxr2/http/template-head
htmltail: /var/www/html/lxr2/http/template-tail
htmldir:  /var/www/html/lxr2/http/template-dir
(是不是有感覺了...)
//這行
sourceroot: /local/lxr/source/$v/linux/
//改成
sourceroot: /var/www/html/lxr2/source/$v/linux/
//其中這邊的$v就是上面有宣告的變數v,好讓使用者可以選擇版本
//這行
dbdir: /local/lxr/source/$v/
//改成
dbdir: /var/www/html/lxr2/source/$v/
//這行
glimpsebin: /local/bin/glimpse
//改成
glimpsebin: /usr/share/bin/glimpse
之後可以先將lxr.conf儲存了~
那開始來解析原始碼吧~
那我們的source都是放在/var/www/html/lxr/source/
cd /var/www/html/lxr/source/
這邊我們下載三個版本做為範例:linux-2.6.32、linux-3.4.109、linux-4.1.10
那要先把各別版本的資料夾創出來
sudo mkdir linux-2.6.32
sudo mkdir linux-3.4.109
sudo mkdir linux-4.1.10
之後進去任一個版本
cd linux-2.6.32
下載Linux kernel
sudo wget https://cdn.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/linux-2.6.32.68.tar.xz
sudo tar xf linux-2.6.32.68.tar.xz
//改名sudo mv linux-2.6.32.68 linux

改名為linux的原因為lxr.conf預設為linux,也可以改名稱,但要與設定檔對得上











接下來我們要來解析原始碼先進到這個目錄
cd /var/www/html/lxr2/source/linux-2.6.32
把genxref設定為可執行檔
sudo chmod a+x ../../bin/genxref
解析原始碼
sudo ../../bin/genxref linux
跑完之後可以在資料夾下看到這兩個檔案fileidx、 xref





把fileidx的權限更改一下
sudo chmod 755 fileidx
(這個要等一些時間......然後其他版本也是這麼做~)
那剛剛有提及要去versions這個檔案讀list,那現在就來製做
剛剛是放在/source底下所以先去那
cd /var/www/html/lxr2/source/
sudo vim versions
輸入下列三行 linux-2.6.32 linux-3.4.109 linux-4.1.10 再來設定預設的值
sudo vim defversion
輸入下列一行
linux-2.6.32
設定Apache的存取權限:
在/var/www/html/lxr2/http/下面加入一個.htaccess的檔案
cd /var/www/html/lxr2/http/
sudo vim .htaccess
加入下最內容
<Files ~ (search|source|ident|diff|find)>     SetHandler cgi-script     Options ExecCGI </Files>

設定LXR的額外功能:

cd /var/www/html/lxr2/source/linux-2.6.32/
sudo glimpseindex -H . .

當出現Size of files being indexed = xxx B, Total #of files = xxx,就可以按ctrl+C
xxx為一組數字
之後會在資料夾下看到一些隱藏檔
.glimpse_index、.glimpse_messages、.glimpse_statistics、.glimpse_tmpi2















更改權限
sudo chmod 755 .glimpse_*
各版本的資料夾都要做一次

之後就可以進去看到了Linux Cross Reference
http://(Your IP)/lxr2/http/source

此外,如果有要調樣版的話,可以在/var/www/html/lxr2/http/底下會有三個template的檔案,裡面是可以調html樣版的。













可以參考我做的設定檔:link

2015年5月5日 星期二

Markdown 格式

前陣子在學習Git和Github的技能,發現有個東西頗好用的說,就是「Markdown」

他是一種「易讀易寫」的文件格式。

這邊有個簡單的影片可以了解Markdown是什麼:



然後,以下有兩個還蠻好的學習網站可以學習:

markdown.tw上的教學
https://github.com/othree/markdown-syntax-zhtw

OpenFoundry上的教學
https://www.openfoundry.org/tw/resourcecatalog/Program-Development/Markup-Languages/markdown

Chrome上也有套件可以檢示這種.md的格式
Markdown Preview
https://chrome.google.com/webstore/detail/markdown-preview/jmchmkecamhbiokiopfpnfgbidieafmd


以下是我簡單寫的範例:

#標題(階段1)

文字

##標題(階段2)

文字

###標題(階段3)

文字

####標題(階段4)

文字

#####標題(階段5)

文字

######標題(階段6)

文字

*斜體*

**粗體**

沒有順序的清單

- house 
- key
- fan

有順序的清單

1. 一年級
2. 二年級
3. 三年級

超連結(有註解)

[連結](http://www.ccu.edu.tw "中正大學")

超連結(沒註解)

[連結](http://www.ccu.edu.tw)

劃一條線

*************************

再一條

-----------------------------------------

block 框框

> 文字在框框

> 文字在框框

> 文字在框框

> 文字在框框

> 文字在框框

> 文字在框框

 
最後會呈現成這樣子



2015年1月24日 星期六

[Linux筆記] adduser、sudo


新增使用者
adduser username 

預設的家目錄是/home/username

如果要將這位user加入sudoer中

方法一
可以去/etc/sudoers中編輯
sudo visudo






在文件最後加入這行
range2 ALL=(ALL) ALL
(這邊以username為range2為範例)

最後可以查看一下是否有加入
sudo less /etc/sudoers



方法二
查看/etc/sudoers內的有sudo權限的群組名稱














之後再打入下列指令
sudo adduser username sudo
ps.使用者名稱要先建立才可加入群組中~

ubuntu 架VPN Server

本教學使用OS環境為:Ubuntu 14.04.01 64-bits LTS

開啟Terminal,並且確認你的帳號有sudo的權限。

1.安裝PPTPD套件

sudo apt-get install -y pptpd
2.設定 pptpd.conf文件


sudo vim /etc/pptpd.conf




















要把下列四行的註解#拿掉:(把前面的#刪掉)

#logwtmp 
......
#connections 100 
......
#localip 140.123.102.xxx 
#remoteip 192.168.3.1-220,192.168.4.1-220

這邊比較要注意的是localip是指你那台電腦的IP
remoteip則是要配發給客戶端的的IP

3.設定DNS

sudo vim /etc/ppp/pptpd-options








(由於筆者是在學網架的,所以DNS就是填學網的DNS)
如果你的ISP服務商有提拱DNS可以使用他們提供的DNS,沒有的話,可以直接使用Google的DNS

ms-dns 8.8.8.8 
ms-dns 8.8.4.4

4.設定使用者帳號密碼
sudo vim /etc/ppp/chap-secrets










這邊主要有四個欄位:
第一欄:帳號
第二欄:伺服器,直接填「pptpd」就可以了
第三欄:密碼
第四欄:配發IP,如果沒有特別限制的話,可以直接打上「*」,或像上圖最後一欄打上特定IP 

5.最後重啟VPN service

sudo /etc/init.d/pptpd restart








6.新增防火牆規則

sudo iptables -t nat -A POSTROUTING -s 192.168.3.1/24 -o eth0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 192.168.4.1/24 -o eth0 -j MASQUERADE

紅色的部份看你是配給你的客戶端多少的IP address來設定

7.設定轉送封包
sudo vim /etc/sysctl.conf







把這行 net.ipv4.ip_forward=1 註解#拿掉

將sysctl.conf讀入
sudo sysctl -p
這樣VPN Server就架好了喔~~