2013年10月17日 星期四

[Apache] 在 Ubuntu 12.04 中修改 Apache 的 (土阜) 號 (port number)

[Django] Installing Django with Apache & mod_wsgi 中曾經介紹一部分的 Apache 設定。基本上, Apache 原始使用 80 (土阜) 作為網站的入口。可是問題來了‧‧‧如果不想使用 80 port,而是想使用其他的 port number 來作為網站的入口,我該怎麼做呢?

答案是,!!!

首先,找到 /etc/apache2/port.conf 這個檔案,並修改這個檔案如下:

NameVirtualHost *: PORT NUMBER
Listen PORT NUMBER


接著,將 /etc/apache2/site-available/default 這個檔案中的 <VirtualHost *:80> 修改為:

<VirtualHost *: PORT NUMBER>

最後,重新啟動 Apache 就大功告成囉!

sudo service apache2 stop
sudo service apache2 start

想驗證設定成功與否,打開瀏覽器並鍵入 http://localhost:PORT NUMBER。如果出現網站的首頁即表示修改 (土阜) 號成功!

2013年10月5日 星期六

[Ubuntu] 在 Ubuntu 12.04 搭建 PXE 伺服器

下面是最近實驗的一些紀錄。

在 Ubuntu 12.04 上搭建 PXE 伺服器必須安裝下列 packages:

1. inetutils-inetd
2. tftpd-hpa
3. isc-dhcp-server

安裝完畢後,分別對 TFTP, DHCP, inetd 進行組態。

TFTP

1. 編輯 /etc/default/tftpd-hpa 檔案,在原始檔案內加入:

RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"

2. 重啟 TFTP

/etc/init.d/tftpd-hpa restart

DHCP 

1. 編輯 /etc/dhcp/dhcpd.conf,在原始檔案內加入: 

1-1. 如果原始環境已存在 DHCP 伺服器,請在原始設定中加入【以下為範例】

subnet 192.168.1.0 netmask 255.255.255.0 {
    < 原有的設定 >
    filename "pxelinux.0";
    next server < PXE 伺服器 >;
}

1-2. 如果原始環境未存在 DHCP 伺服器,請參照下列範例進行設定。

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.3 192.168.1.255;
    filename "pxelinux.0";
}

inetd 

1. 編輯 /etc/inetd.conf,在原始檔案末端加入:

tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot 

完成上述 packages 以及設定後,這台伺服器將擁有 PXE 的功能。

2013年6月5日 星期三

[Ubuntu] 在 Ubuntu 12.04 上設定無線網路

  由於實驗上的需求,必須使環境內的伺服器擁有對外網路的功能。但是,實驗室內的網路皆為私有網路,沒有對外存取的功能,因此必須藉由無線網路獲得此項功能。

首先,將無線網卡與伺服器連接。

按照下述步驟即可完成「無線網路」設定:

STEP 1. 尋找無線網卡代號 iwconfig 〈以本次實驗機器為例:wlan0〉

STEP 2. 啟用無線網卡
sudo ifconfig wlan0 up

STEP 3. 尋找可用無線 AP 〈Access Point〉
sudo iwlist wlan0 scanning

藉由上述指令可找出附近可用的無線 AP,並記下它們的 ESSID

STEP 4. 連接無線 AP
sudo iwconfig wlan0 essid "AP_NAME"

STEP 5. 取得 IP
sudo dhclient wlan0

如果是不需輸入密碼的無線 AP,完成上述步驟即可上網。

如果需輸入密碼,請接續下列步驟:
sudo iwconfig wlan0 key ********

2013年3月8日 星期五

[Django] Internationalization 國際化 〈 I I 〉

  在 [Django] Internationalization 國際化〈 I 〉已介紹如何在 view 和 template 中進行國際化,接下來本文將介紹如何實現國際化。

首先,介紹如何產生語言檔 (language file),在此仍以專案繁體中文化為例。

在專案根目錄下,鍵入 django-admin makemessage -l zh_TW。

此命令將在專案根目錄下產生 /local/zh_TW/LC_LANGUAGE/django.po。

開啟 django.po 您將會看到以下範例:

#: path/to/python/module.py:23
msgid "Welcome to my homepage"
msgstr ""

在此快速說明 msgid 和 msgstr。

msgid:是您在 view 或 template 中準備翻譯的部分
【例如:_(Welcome to my homepage) 或 {% trans "Welcome to my homepage" %}】

msgstr:是您預期翻譯後的結果。【例如:歡迎來到我的烘培雞】

在 djago.po 檔中將所有 msgstr 皆填入或存檔,將可進行接下來的步驟。

重新鍵入 django-admin makemessage -l zh_TW。如果您有多種語言,可鍵入 django-admin makemessage -a。

接著,我們將編譯語言檔 django-admin compilemessages。

如此一來,我們已準備好專案繁體中文的翻譯檔且完成專案的繁體中文化。

2013年2月26日 星期二

[Django] Internationalization 國際化 〈 I 〉

Django 在 view 和 template 中對於國際化有完整的支持。

以下將概述如何在 view 和 template 中進行國際化〈在此以專案繁中化為例〉:

首先必須將 settings.py 中的 USE_I18N 設置為 True,並修改 LANGUAGE_CODE = 'zh_TW'。

接下來,將逐一介紹 view 和 template 國際化的方法。

[View]

  Django 所使用 Python 標準的翻譯器 ── gettext。在 views.py 中必須先加入 from django.utils.translation import gettext as _,如以一來將可使用 _ 取代 gettext。

接下來,請參考下列範例:

def homepage(request):
output = _("Welcome to my homepage.")

【也可使用 output = gettext("Welcome to my homepage.")
return HttpResponse(output)

上述範例也可改寫為:


def homepage(request):
sentence = "Welcome to my homepage."
output = _(sentence)
return HttpResponse(output)


如果遇上函式包含變數,可寫為:

def homepage(request, variable):
output = _('%(variable)s is a variable.') % {'variable': variable}
return HttpResponse(output)


[Template]

在 template 中進行國際化較為簡單,僅需在

template 的頂端放置 {% load i18n %}

並在需要國際化的部分改寫為 {% trans "Welcome my homepage" %}

如此一來將完成 view 和 template 的國際化。