2017年7月27日 星期四

無法在 GoDaddy 設定 @ 的 CNAME

因為網站是用 WordPress 架在 AWS 上,所以網域應該要用 CNAME 導去 AWS 的位址
本來很單純想說網域(假設是 example.com)想要自動轉去 https://www.example.com
設定上就是加上 @ 的 CNAME
但結果在 GoDaddy 上就是無法設定,它一直顯示紀錄已存在。

花了一些時間查詢以後,雖然細節有點看不太懂,不過總之原因好像是因為 CNAME 其實會跟其他像是 TXT、MX 之類的紀錄重疊 [1-2]
所以某個網域或者子網域如果要設定 CNAME 的話,這個網域或子網域應該要不存在任何除了 A 以外的紀錄
否則會導致紀錄之間衝突,因而產生像是 [3] 的結果,某些既存的其他服務會因為被 CNAME 覆蓋而無效了。

另外 [2] 的回覆也有提到,DNS 的規格文件 RFC 1034 的 3.6.2 小節中,有以下的具體描述。

A CNAME RR identifies its owner name as an alias, and specifies the corresponding canonical name in the RDATA section of the RR.  If a CNAME RR is present at a node, no other data should be present; this ensures that the data for a canonical name and its aliases cannot be different.  This rule also insures that a cached CNAME can be used without checking with an authoritative server for other RR types.

而這個問題要解決的話,以 GoDaddy 來說,可以去設定它免費提供的「網域轉址」
就可以把網域(example.com)自動導向到某個自行指定的網址了。
不過實際實驗時,好像網域轉址只對 HTTP 有效,HTTPS 似乎無效就是了。
也就是說,設定後 http://example.com 會有自動轉址的效果,但是 https://example.com 則沒有反應。

參考資料
  1. Configuring “@” CNAME record in GoDaddy control panel
  2. CNAME and TXT record for same subdomain not working
  3. Why it's a bad idea to put a CNAME record on your root domain
  4. RFC 1034

2017年7月23日 星期日

使用 Django 建立網站(二):建立第一個自定義的頁面

在前一篇當中,我們已經產生了一個叫做 myweb 的專案,接著要建立一個應用程式(App)。
這部份基本上也可以參考 Django 官方的教學文件 [1]。

2017年7月16日 星期日

在 Eclipse 使用 Python 虛擬環境開發 Python

最近再度開始學習 Python,然後看到不少 Python 套件的官方文件提到虛擬環境
因此來紀錄一下,以 Java 開發者的角度來看 Python 虛擬環境相關的基本知識。

2017年7月15日 星期六

在 Ubuntu 14.04 安裝 venv

在 Ubuntu 14.04 上,想要用下述指令建立虛擬環境時,出現沒有安裝 venv 的錯誤訊息

root@default:/# python3 -m venv myvenv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

但依照訊息的描述去安裝 python3-venv 時,又出現找不到這個 package 的錯誤。
參考 [1] 的作法,實際上好像應該安裝的套件是 python3.4-venv

apt-get install python3.4-venv
參考資料
  1. Python3-venv not installed ubuntu 14.04

2017年7月6日 星期四

使用 ssmtp 連接郵件伺服器時的驗證問題

同事在使用 ssmtp 連接 Office365 時,Office365 的郵件伺服器一直回覆下述的訊息

535 5.7.3 Authentication unsuccessful

花了一段時間研究後,發現問題其實是在於登入的密碼包含像是 # 這種特殊符號
導致 ssmtp 並沒有送出正確的密碼,因而造成驗證錯誤。

由於目前這仍然是個 open issue,因此也只能紀錄一下,然後去改密碼了 XD。

參考資料
  1. Special characters in ssmtp password

2017年7月5日 星期三

使用 Django 建立網站(一):安裝 Django

其實只是需要用 Python 做 RESTful 的網站,然後隨便搜尋一下就看到 Django,於是就試著用看看。

2017年7月4日 星期二

使用 Java 存取 FTP 伺服器

要存取 FTP 伺服器,簡單地搜尋了五秒,大概就會看到 Apache Commons Net 這個函式庫吧 XD。
包山包海地實作了包括 FTP、NTP、SMTP、Whois 等等的一堆基礎網路相關的協定。
而這篇的目的是為了簡單地紀錄 FTP 的使用方法。(其實真的蠻簡單的 XD)