2019年2月28日 星期四

Ubuntu 16.04 與 Apache多站台管理


Apache是一個開放原始碼的網頁伺服器軟體,

免費與跨平台的特性,

使其在架站軟體中,

佔有很大的市場,

當然,

其功能性的強大也是無庸置疑的,

發展至今有許多整合套件可使用

例如  LAMP ,   XAMPP等等,

將架站所需要的資料庫,伺服器軟體等都整合為一套開源軟體包,

安裝此類軟體包就能滿足大多數架站的需求,

今天就來教大家

Ubuntu 16.04 與 Apache多站台管理


要使用Apache架設網站有幾個命令是一定要知道的,

網站的 enable /disable   可透過 Apache 命令

a2ensite   與   a2 dissite    執行,

使用方法也很簡單,

在命令後面帶入設定檔名稱即可,

設定有變更之後,

必須將apache重啟,

這時使用的命令為

service   apache2   reload




以上圖為例,

假設要新增一個網站  opt.domain.com

1.
先到Ubuntu   找到

/etc/apache2/sites-available/000-default.conf

這是網站設定檔的範例,

拷貝一份修改為底下設定之後,


   
        ServerName opt.domain.com
        DocumentRoot /var/www/opt



存成

/etc/apache2/sites-available/opt.conf

2.
執行

a2ensite opt

將此網站設定啟用

3.
再將apache重啟就新增了一個網站opt.domain.com

service apache2   reload





若要再新增網站 abc.domain.com

就是新增一個設定檔內容如下


   
        ServerName abc.domain.com
        DocumentRoot /var/www/abc



重複上述步驟2與3即可


此種方法是以進入的domain  name進行多站台的管理,

根據輸入的域名不同,

就會進入對應的網站,

每個站都有各自的設定檔案,

已啟用的網站設定檔可於

/etc/apache2/sites-enabled/    中找到,



除此以外,

Apache也有其他的方式來區別多網站,

有機會再進行介紹







2019年2月27日 星期三

Ubuntu 16.04 開機自動執行程式


在程式開發中,

一些service 或者程式需要重開機也能自行載入,

這時就要透過設定開機自動執行程式的步驟,

也就是今天要來教大家的:

Ubuntu 16.04 開機自動執行程式


方法一:

rc.local 是linux中著名的開機自動執行檔,

一般Linux系統該檔案都放置在/etc/init.d/rc.local ,

在Ubuntu中有些許不同,

必須修改/etc/rc.local,


利用vi 編輯/etc/rc.local,



sh /etc/init.d/test.sh

加到exit 0 的上方後

拷貝要自動執行的script檔到/etc/init.d/中,

sudo reboot 進行測試



利用

sudo cat /var/log/syslog | grep test

搜尋剛才的程式是否有執行

在上圖可看到

rc.local [1792] : test






第二個方法是:

同樣將測試的script拷貝到/etc/init.d/中

執行

update-rc.d opt_auto.sh defaults 99

來新增一個自動執行的服務,

要移除的話也很簡單,

透過:

update-rc.d -f opt_auto.sh remove

即可



sudo reboot之後,

一樣到  /var/log/syslog 可找到類似下圖的log

表示設定成功




2019年2月24日 星期日

Open edX smtp 設定教學


之前提到過Open edX   線上教學平台,

它是一個功能強大的開源軟體,

今天就來教大家

Open edX smtp 設定教學


底下是Gandi 所提供的信箱設定,

以此作為範例來進行設定


release版本中

在資料夾 /edx/app/edxapp

以文字編輯器打開 lms.env.json,

找到底下三個欄位並修改為上圖所看到的SMTP設定

"EMAIL_HOST" :     mail.gandi.net

"EMAIL_PORT" :   587

"EMAIL_USE_TLS" :  true



接著在同個資料夾打開 lms.auth.json

設定正確的

"EMAIL_HOST_USER"



"EMAIL_HOST_PASSWORD"



找到

"LMS_ROOT_URL"與SITE_NAME

更改為正確的網址,

此兩者會顯示在認證信中







將上述兩種EMAIL設定同樣套到

cms.auth.json

cms.env.json




利用

edx/bin/supervisonctl   restart lms

edx/bin/supervisonctl   restart cms

將系統重新啟動以後




註冊一個帳號進行試驗



第一次登入系統會告知請檢查註冊信箱

前往該信箱收信



點擊認證信中的連結就能直接   active帳號了














2019年2月22日 星期五

在Apache上安裝SSL憑證


SSL全名為Secure Sockets Layer,

安全通訊層,

用來保持網路連線安全防止系統間傳遞的資料被讀取或修改,

若有安裝SSL憑證的網站,

其網址就會是 https://網站名

而今天的主題就是

在Apache上安裝SSL憑證

這裡以

SSL for Free  及 Gandi 作為範例來介紹,

首先前往SSL for Free官網,

並在首頁填入要加入SSL的網域

 官方提供了三種方法驗證網域的使用權,

選擇任何一種即可,

這裡是以DNS 紀錄作驗證

 簡單的說,

只有三個步驟

按下Retry   Manual   Verification得到DNS新增TXT紀錄的資料,

到DNS控制台新增TXT紀錄,

下載免費SSL憑證
先到Gandi登入並選擇域名進入控制台


直接到區域檔紀錄進行更改


在右上角選擇新增紀錄




 根據上述的TXT資料新增,

Gandi的話,

沒辦法設定TTL 為1秒

暫定以300秒作為設定



建立之後等待幾分鐘,

等待DNS更新完畢以後,

按下verify acme-challenge出現成功以後,

在點選底下的下載憑證,

就會產生三個檔案供SSL憑證安裝

接著到XAMPP的控制台設定Apache,

先設定httpd-conf


找到

VirtualHost *:80

DocumentRoot "\projects\www\xhome\"
ServerName xhome.twshop.asia

#設定http自動轉址為https
RewriteEngine On
RewriteRule ^/(.*)$ https://xhome.twshop.asia/$1 [R=301,L]



接著設定httpd-ssl-conf

Listen 443

確定監控443 port

找到自己的伺服器設定

VirtualHost *:443

#   General setup for the virtual host
DocumentRoot "D:/projects/php/xampp/htdocs"
ServerName xhome.twshop.asia:443
ServerAdmin admin@mail

ErrorLog "D:/projects/php/xampp/apache/logs/error.log"
TransferLog "D:/projects/php/xampp/apache/logs/access.log"

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on

SSLCertificateFile "conf/ssl.crt/certificate.crt"
SSLCertificateKeyFile "conf/ssl.key/private.key"
SSLCertificateChainFile "conf/ssl.crt/ca_bundle.crt"




將底下三個設定,

改為上述在SSL for Free最後步驟下載的檔案

SSLCertificateFile "conf/ssl.crt/certificate.crt"
SSLCertificateKeyFile "conf/ssl.key/private.key"
SSLCertificateChainFile "conf/ssl.crt/ca_bundle.crt"



重新啟動apache,

網站就能以Https運行


當然,

免費的憑證有效期為三個月,

到期之後需要登入網站來renew的,




2019年2月19日 星期二

vi文字編輯器常用指令與windows快捷鍵對照


凡使用過Linux系統的使用者,

想必應該也聽過vi文字編輯器,

它是由1976年至今還屹立不搖的內建文字編輯器,

今天就以

vi文字編輯器常用指令與windows快捷鍵對照


來教大家使用它

vi有兩種模式

命令模式與輸入模式,

從Linux的命令提示字元輸入vi

就能進入此文字編輯器,

預設為命令模式

可用 a 或者 i 進入輸入模式

按ESC可回到命令模式

首先就由最常用的複製貼上功能來介紹vi

1.
在windows上以shift+方向鍵,

就能夠選取文字,

而在vi則是在命令模式輸入 v,

然後再以方向鍵選取文字,

選取的文字會以反白方式顯示,

同時在視窗的左下角會提示目前在選取功能中


選取文字可用來進行文字的複製貼上,

複製在windows 快捷鍵為  ctrl + c ,

而在vi中則是選擇完文字以後按 y 即可,



貼上在windows 快捷鍵為 ctrl + v

在vi中則是以 p 來實現,

如下圖,

可以看到之前選取的文字已經複製一份貼上


想取消執行上一步,

在windows 使用 ctrl + z

在vi使用 u 即可



而剪下在windows上為ctrl + x

在vi中選取文字以後使用 d 進行剪下動作



按下d之後,

可看到上圖所選的文字已經被剪下


而剪下後貼上,

vi 依舊是打 p 


既然編輯文字,

有時打開文件要搜尋裡面字串,

在windows上以 ctrl + f 來搜尋,

vi中則以 / 開始搜尋,

視窗的左下角可看到出現 /


打上要搜尋的字串以後,

按enter,

vi就會跳到搜尋結果,

若想找下一個按 n 即可


修改文件之後要存檔在windows 以 ctrl + s

在vi則是在命令模式下打冒號    :

w 就能存檔


若不想儲存修改可改用  q!  不存檔離開


取代字串

在windows相關的文書處理軟體中,

預設以 ctrl + h 打開取代功能視窗,

而 vi 編輯器則是先使用 ESC 鍵離開編輯模式,

再打底下命令來進行取代字串的設定,

:%s/尋找字串/取代字串/ic

最後的參數可以為:

g :整行,i :不分大小寫, c:詢問

此處範例為不分大小寫、取代前詢問。



2019年2月16日 星期六

2019年豬年應景燈籠與元宵節


是的,

農曆一月又稱為元月,

古人稱夜晚為宵,

故農曆一月十五日,

就稱為元宵節,

同時又是一元復始的年度第一個月圓之夜,

元宵節又稱為上元節

2019年豬年應景燈籠與元宵節

除了點燈慶祝以外,

元宵節要吃元宵也是很重要的一個習俗,

元宵由糯米製成,

而製作元宵就是俗稱的滾元宵了



上面就是參加滾元宵活動的產物,

(當然是志在參加, 有趣就好)


猜燈謎又叫做打燈謎,

這個活動出現在南宋時期,

原本燈謎是寫在紙條上並貼上燈籠上由大家去猜,

流傳至今就是現在所謂的猜燈謎囉


當然到了現代,

每逢元宵節,

家長就得上勞作課,

做什麼呢?

看了就知道,

今年是豬年,

所以組裝燈籠通常都是豬造型




Google Stackdriver監控服務

Google statck 提供了基礎架構的指標,紀錄和事件資料,

讓營運人員與開發人員能夠更快速得到所需的資料,

以期達到快速解決問題 , 加快分析速度等,

Google Stackdriver監控服務

不需要透過整合作業,

並提供多項資訊管理工具,

Stackdriver是專為雲端設計的監控服務,

而且不限於Google, AWS也能夠支援,

提供的工具很多,

例如偵錯工具, 錯誤報告, 運作時間監控, 追蹤 , 訊息通知, 資料分析等等

這邊就以Google Cloud Platform做範例,

進行記憶體使用的監控


GCP上的VM執行個體在負載過大時候,

系統會直接在控制台上方秀出建議,

底下範例就是記憶體用量過大,

GCP建議加大記憶體容量


在上圖點選VM,

並選擇監控頁面,

這是GCP 內建的陽春型監控程式,

GCP會建議如果需要更為詳細的監控資料,

請設定stackdriver

所以螢幕右上角點選設定


首先要為監控的目的物,

建立一個workspace,

這裡選擇 Edx Project

 接著點選continue

 系統主動詢問是否要監控AWS

 如果不需要可選擇Skip跳過,

接著選擇安裝監控代理程式

系統詢問要通知管理者的間隔時間,

可選每天或者每周一次

到此暫時設定完畢,

接下來要設定監控的目標

 首先先前往Dashboard


 選擇create dashboard

在右上角點選Add Chart


找到要監控的資源與監控的目標,

並設定好監測的間隔時間



這裡的範例是要監控GCP VM的記憶體使用情形,

其他還有許多不同的工具,

下次有機會在介紹

2019年2月15日 星期五

如何在Open edX上新增superuser 與刪除account

是的,

日前曾介紹過安裝Open edX,

Open edX是功能很齊全的線上教學平台,

同樣也是需要做各種不同的設定,

才能讓它正常工作,

而在設定過程中,

難免需要一個superuser帳號,

這就要自己手動建立了,

今天就來教大家

如何在Open edX上新增superuser

步驟很簡單


1.
cd /edx/app/edxapp/edx-platform

2.
sudo su edxapp -s /bin/bash

3.
cd ~

4.
source edxapp_env

5.
cd /edx/app/edxapp/edx-platform

6.
python manage.py lms createsuperuser --settings aws

執行到此處,

如果能看到系統要求輸入使用者名稱,

按照系統要求的步驟進行,

就能夠新增一個superuser




至於刪除一個account也是能透過cmd達到目的

前面五個步驟如上,

第六步驟的命令變為

python manage.py lms manage_user --remove username username@example.com --settings aws

如果看到

Removing user: "username"

表示該使用者已從系統中移除