如何讓 Apache 支援顯示以 Markdown 標記語言為基礎的頁面
林博仁(Buo-Ren Lin) edited this page Oct 23, 2017
·
2 revisions
- 我們所有服務會用到的第三方軟體都安裝在
/opt
目錄底下 - 為了便於開發不用以 root 身份操作,我們建一個專門用來做這件事的
site-admin
群組並將自己以及有相同需要的管理員加進去- 使用者管理 - 新增讓管理員可以更方便管理網站(例如編輯 /opt 底下維護的的第3方軟體)的
site-admin
群組 · ntouind/sites.ind.ntou.edu.tw-etckeeper@506adf6 - 使用者管理 - 將我自己加入
site-admin
群組 · ntouind/sites.ind.ntou.edu.tw-etckeeper@fcdafdd sudo chown --changes root:site-admin /opt
sudo chmod 2775 /opt
- 登出再登入,讓設定生效
- 使用者管理 - 新增讓管理員可以更方便管理網站(例如編輯 /opt 底下維護的的第3方軟體)的
-
hamano/apache-mod-markdown: Markdown filter module for Apache HTTPD Server 軟體提供了 markdown 網頁顯示的支援,由於目前 Ubuntu 沒有提供該軟體我們要自行建構安裝,我們將其來源碼版控倉庫 clone 到
/opt
目錄下:-
$ git clone --shared https://github.com/hamano/apache-mod-markdown.git "/opt/apache-mod-markdown - Markdown filter module for Apache HTTPD Server"
-
--shared
命令列選項讓同樣是site-admin
群組的人能夠存取 Git 版控倉庫
-
-
- 用
checkout
Git 命令切換到該軟體最近期的釋出版本$ git checkout 1.0.x
- 為了方便日後管理,我們要將其打包為一 Debian 軟體包,首先我們要安裝該軟體的建構軟體用依賴軟體(build dependencies),需要用到
mk-build-deps
這個可以自動產生建構依賴軟體軟體包的命令,該命令由devscripts
軟體包提供,並需另外安裝equivs
這個軟體包才能運作 - 在該軟體來源碼目錄中建一個新目錄名為
debian
,執行equivs-control debian/control
命令建立一個 Debian control 檔案範本 - 參考 Debian Policy 手冊跟官方網站的安裝說明編輯該檔案,我們只需要補足 Source (根據 Debian 軟體包命名慣例規則)跟 Build-Depends 欄位即可,範例:
Source: libapache2-mod-markdown Section: misc Priority: optional Homepage: https://github.com/hamano/apache-mod-markdown Standards-Version: 3.9.2 Build-Depends: build-essential, libtool, automake, autoconf, libmarkdown2-dev, apache2-dev # 附註:apache2-dev 為上游教學文件當時未列出的建構依賴軟體
-
執行
mk-build-deps
命令建構建構軟體用依賴軟體軟體包- 如果執行失敗代表 equivs 軟體仍有在包含空白字元路徑中會執行失敗的軟體缺陷,可以用 sites.ind.ntou.edu.tw/equivs-build.patch at master · ntouind/sites.ind.ntou.edu.tw 修正檔來修正程式
-
我們需要 gdebi 命令(由 gdebi-core 軟體包提供)來安裝本地端的軟體包,先安裝它
-
執行
# gdebi <package>
命令來安裝本軟體的軟體建構依賴軟體與執行時期依賴軟體 -
依照軟體安裝指引執行到
make install
前先停下來 -
目前上游並不支援使用我們希望用 APT 軟體包管理系統來管理我們即將安裝進系統中的 apache-mod-markdown 軟體未來才能乾淨的解除安裝軟體,所以我們使用 checkinstall 這個自動把軟體安裝成 Debian 軟體包的軟體來處理,以 root 身份在來源碼目錄中在終端機中執行uninstall
make 命令來乾淨移除軟體,所以# checkinstall
命令並按照提示操作- 如果發生錯誤表示 checkinstall 尚未修正在含空白字元的目錄下執行會發生錯誤的軟體缺陷,可以用 sites.ind.ntou.edu.tw/checkinstall.patch at master · ntouind/sites.ind.ntou.edu.tw 修正檔來修正程式
-
由於該軟體並沒有提供啟動該功能的 Apache 伺服器設定檔,我們要自己新增
- 在 /etc/apache2/mods-available 目錄中新建
markdown.load
檔,包含:LoadModule markdown_module /usr/lib/apache2/modules/mod_markdown.so
- 在 /etc/apache2/mods-available 目錄中新建
markdown.conf
檔,包含:
<Location /> AddHandler markdown .md .markdown .mkd .mkdn # If you want to use stylesheet. MarkdownCss style.css </Location>
- 在 /etc/apache2/mods-available 目錄中新建
-
以 root 身份執行
systemctl restart apache2
命令重新啟動 Apache Web 伺服器即可。