技客文化

[Apache] 利用 .htaccess 設定強制導向 https

這是很頻繁遇到的問題了,遇到只能使用 cPanel 的網站,但又需要設定強制導向 https,就必須從 .htaccess 著手。之前查過不少方法,基本上大多是設定判斷 RewriteCond 來偵測用戶連結的是不是 https(443),如果不符合就用 RewriteRule 導向 https 通訊協定。

剛剛因為更新 Drupal 核心程式不小心把 .htaccess 覆蓋掉了,所以又上網查了一下,找到 How to redirect all traffic to HTTPS on your Drupal site 文章,裡面提的方法簡單又好設定,記錄一下,避免日後又要再查一次。

基本上是把下面的程式碼放在 RewriteEngine on 下面

[VSCode] 用 Visual Studio Code 直接編輯遠端檔案

平常已經習慣使用 Terminal + VIM 的工作方式,直接連線到遠端編輯檔案,對我來說,大概就是把 Terminal 環境設置好,以及使用 SSH Key 直接登入主機,就省去不少麻煩。雖然這樣的工作方式對我來說很方便,不過最近需要跟一位前端設計師合作套版,思索了一下,覺得這樣的工作方式應該會造成設計師困擾,因此就開始找尋可以直接在本地編輯檔案的方法。

當然,一般來說,用 FileZilla 或 WinSCP 這類工作就可以用透過 SSH 登入遠端主機,並把遠端檔案下載到本機,在編輯後再重新上傳到遠端主機,這樣的工作模式其實也沒什麼不好。但,考量到現在使用 Sass/SCSS 的前端開發環境大多需要結合 gulp 同時開 node.js 執行開發環境,以便讓開發者可以看到即時的 Sass 編譯結果,所以還是需要讓前端設計師開始學習新的協同合作模式。

[Drupal] 利用版型覆寫 views 輸出結果

我這次主要是想在 views 的 more-link 加上 .btn-primary 的 class,讓輸出結果直接變成按鈕樣式。在查找資料中[1][2],發現在 Drupal 8.0.x 的早期版本中,是有 views-more.html.twig 版型範本檔案的;不過在最新的 8.6.x 版本已沒有這個檔案了,我並沒有進一步去瞭解為什麼要拿掉這個版型檔案。

由於已經沒有 views-more.html.twig 可以修改,所以如果要覆寫 views 的輸出結果,就要在 THEMENAME.theme 檔案中利用程式直接修改。在網路上找到的參考文章有提供一段範例程式碼如下:

[Drupal] 在 Drupal 8 印出變數資訊

在 Drupal 7 開發模組或版型時,若需要列印變數資訊,會直接安裝 Devel 模組,而後使用 dpm() 或 dsm() 方法就可以列印變數資訊了。然而,Drupal 8 因為已經捨棄 Krumo,所以使用 dpm / dsm 方法雖然可以列印變數資訊,但卻是沒有良好格式化的結果(根據 How to Print Variables using Kint in Drupal 8 一文是說 dpm / dsm 方法還可以使用,但實際上我沒有成功過),所以建議改用 kint() 來列印變數資訊。

由於 kint 屬於 Devel 8.x 的子模組,所以要使用 kint() 還是需要下載 Devel 模組並啟用 kint 模組,安裝方式可參考此文。依照 Drupal 7 的經驗,安裝並啟用模組後,應該就可以直接使用 kint() 或 ksm() 方法,然而實際上在程式碼內直接呼叫這方法會出現錯誤訊息,如下:

[Drupal] 建立 Drupal 8 Barrio 子版型

近兩年習慣用 Bootstrap 版型進行開發,最近總算也要面對用 Drupal 8 開發系統了,於是也找了 D8 的 Barrio 版型(採用 Bootstrap 4 flex 架構),雖然很常在建 D7 的 Bootstrap 子版型,但 D8 下的建立流程和步驟不太一樣,而且要改的地方很多,所以把連結記錄在這,方便日後搜尋。

Creating a custom Barrio sub-theme

附帶一提,如果想用 SASS 的話,看來 Bootstrap 4 - Barrio SASS Starter Kit 可以試試。

[Drupal] Field Collection 無法儲存資料

這個案例很特別。這個網站用 field collection 有好一段時間了,突然客戶回報無法儲存資料,嘗試好幾次確實都是在 field collection 填入資料但無法順利寫入資料庫。

查了下發現兩年前就有這個問題,然而近四個月還有傳出類似災情,詳情可以閱讀這則討論。解法方法也不難,打入該則討論裡提到的 patch 即可。

[Linux] 與被植入的挖礦程式惡戰

最近學校的一台主機經常飆高 CPU,一開始追查發現原來是被塞入了一隻惡意程式,用途是在挖礦的。在資訊工程師生涯近十年來,首次看到被塞入的程式居然不太惡意,純粹只是會佔用主機資源而已,著實令人驚奇!

簡單記錄一下幾個比較關鍵的點,提供搜尋到這篇文章的人參考。

Pages