一群棒子的技術部落格

Apache

ubuntu-apache2-drupal 單一根目錄多網站建立

為什麼要使用多網站? drupal安全性更新問題與減少模組佔用記憶體 如果今天部使用多網站,而是每個網站分開資料夾,那麼今天要做安全性更新,就必須一個網站,一個網站更新。 今天所有網站都放在同一個資料夾,那麼drupal核心更新時,在更新一次,可能就可以更新5.6個網站。 同時也減少大量相同模組安裝,所造成佔用的記憶體。 如何使用多網站(以ubuntu-apache2為例) 1.在/etc/apache2/sites-available/建立設定檔 bene5.n.tw設定檔 nano bene5.n.tw.conf ServerAdmin xyz@arthurtoday.com ServerName bene5.n.tw ServerAlias bene5.n.tw DocumentRoot /var/www/drupal ErrorLog /var/www/drupal/

drupal8 設定關閉快取跟開啟twig debug

當我們每次改完twig外觀時,頁面都要重新清除快取一次頁面才會呈現出來。這篇主要寫關閉快取跟開起twig debug。 step1.首先到sites=>default 資料夾下複製一份default.services.yml改名為“services.yml” step2.接著開啟”services.yml“ 修改 twig.config: debug: true auto_reload: true cache: false 設定完成圖如下: step3.再到頁面去清除一次cache,檢視元素之後就會發現twig debug 的註解頁面 清除快取方式:configuration=>Performance 點擊clear all caches step4.再到page.html.twig下輸入一段文字 再到瀏覽器上直接刷新頁面就會直接出現剛剛修改的內容囉~不用在每次修改twig就要清一次快取頁面才會出現~

Alternative PHP Cache(APC)

Alternative PHP Cache(APC) 介紹 APC,全稱是Alternative PHP Cache,官方翻譯叫”可選PHP緩存”。它為我們提供了緩存和優化PHP的中間代碼的框架。 APC的緩存分兩部分:系統緩存和用戶數據緩存。 系統緩存和用戶數據緩存 系統緩存 它是指APC把PHP文件源碼的編譯結果緩存起來,然後在每次調用時先對比時間標記。如果未過期,則使用緩存的中間代碼運行。默認緩存3600s(一小時)。但是這樣仍會浪費大量CPU時間。因此可以在php.ini中設置system緩存為永不過期(apc.ttl=0)。不過如果這樣設置,改運php代碼後需要重啟WEB服務器。目前使用較多的是指此類緩存。 用戶數據緩存 緩存由用戶在編寫PHP代碼時用apc_store和apc_fetch函數操作讀取、寫入的。如果數據量不大的話,可以一試。如果數據量大,使用類似memcache此類的更加專著的內存緩存方案會更好 apc 安裝方法 安裝apc apt-get install php-pear php5-dev libpcre3-dev make pecl

Drupal 運用Crontab 來trigger Elysia Cron

elysia cron是一個可以細部控制drupal cron的模組,像是定時的清除快取、定時的備份、每隔幾小時發信等工作。 elysia cron主要有以下這些功能: > * 設定每個cron的執行的順序與頻率 * 同時執行cron * 為cron分頻道 * 停用某些cron * 詳細的紀錄cron的執行時間與次數 * 提供API給模組使用 * 支援自訂cron job 當你有這些需求時可以使用這個模組: > * 不想再巔峰時刻執行cron * 不想一次執行所有的cron * 管理微調快取cron * 同時執行cron * 關閉/開啟你想要的cron * 分開debug cron 當我們安裝好elysia cron可以直接在設定/系統/cron settings看到模組已經執行起來了 選擇設定頁籤 展開CLICK FOR HELP AND CRON RULES AND SCRIPT SYNTAX可以看到時間的設定範例 SINGLE JOB SETTINGS就是我們設定時間跟頻道的地方 像是我們這邊以ctools_cron為舉例

Docker

什麼是docker?

什麼是 Docker Docker 是一個開源專案,誕生於 2013 年初,最初是 dotCloud 公司內部的一個業餘專案。它基於 Google 公司推出的 Go 語言實作。 專案後來加入了 Linux 基金會,遵從了 Apache 2.0 協議,原始碼在 GitHub 上進行維護。 Docker 自開源後受到廣泛的關注和討論,以至於 dotCloud 公司後來都改名為 Docker Inc。Redhat 已經在其 RHEL6.5 中集中支援 Docker;Google 也在其 PaaS 產品中廣泛應用。 Docker 專案的目標是實作輕量級的作業系統虛擬化解決方案。 Docker 的基礎是 Linux 容器(LXC)

CMS

Drupal Rules 抓取customer profiles send mail

Rules是一個很好用的模組,常常發信要用到rules,可是要抓取到正確想要的值並不是那麼容易的事情,像是要發送訂購資訊這種信件等等…. 首先先新增自己的一個rules 設定/流程/Rules Add new rule 根據我們要的條件選擇觸發事件在這邊我們選擇Completing the checkout process 條件這個區域就是幫助我們抓取值得地方 動作這個區域就是我們後續要處理的事情 這邊我們先新增一個條件可以看到Select the condition to add 我們選擇Entity has field Data selector我們選擇commerce-order 數值選擇commerce_customer_billing 動作的Select the action to add選擇Fetch_entity_by_id 此時就可以看到我們要抓取的entity Data selector選擇commerce-order:commerce-customer-billing:profile-id 這裡我們給上自己的標

利用Acquia Dev Desktop 2 快速在本機建立drupal

利用Acquia Dev Desktop 2 快速在本機建立drupal7,drupal8 step1:首先我們先到acquia [https://www.acquia.com/downloads]下載Acquia Dev Desktop ,依使用者的作業系統點擊下載 step2:下載完成後點擊安裝 step3:接著一直點擊Next>來完成安裝動作 step4:安裝完成之後會進入下圖的頁面 step5:點擊install可以進行你要安裝的drupal版本等…. step6:接著會進入到下圖頁面Local codebase folder:安裝的檔案路徑Local site name site 名稱Use php 可以選擇想要使用者php版本 5.3~7.0皆可選Database 可以選擇新建資料庫等。New database name 可以輸入新建資料庫的名稱 完成之後按下 finish step7:

利用drush 安裝drupal

利用drush指令 安裝drupal step1:首先先用終端機到你要安裝drupal的目錄下 cd  /Users/qkqkzzzz/Sites/drupal/ step2: 輸入 drush dl drupal step3:到剛剛安裝的drupal-7.41目錄底下 step4:接著輸入 drush site-install –db-url=mysql://root:123456@localhost/drupal8 root = 資料庫使用者 123456 = 資料庫密碼 drupal8 = 資料庫名稱 step5:接著drush 會自動生成drupal 帳號&密碼(admin/BqpRLK4qMo)

利用JS在input裡面新增placeholder屬性

CMS無法任意改寫input裡面的placeholder的屬性時可以使用這種JS的方式寫入。 //首先取得可以控制的id或class //使用ID的寫法 document.getElementById("edit-name").placeholder = "帳號"; document.getElementById("edit-pass").placeholder = "密碼"; //使用class的寫法 document.getElementsByClassName("edit-name").placeholder = "帳號"; document.getElementsByClassName("edit-pass").placeholder = "密碼"; 完成之後就可以在input裡面看到placeholder新增的名稱囉~

CMS

Ubuntu 12.04 + apache2 + Varnish 4 + drupal7

varnish介紹 Varnish是一款高性能且開源的反向代理服務器和HTTP緩存加速器; 它的作者Poul-Henning Kamp是FreeBSD(註1)的內核開發者之一,他認為現在的計算機比起1975年已經復雜許多。在1975年時,儲存媒介只有兩種:內存與硬盤。但現在計算機系統的內存除了主存外,還包括了CPU內的L1、L2,甚至有L3快取。硬盤上也有自己的快取裝置,因此Squid Cache(註2)自行處理物件替換的架構不可能得知這些情況 而做到最佳化,但操作系統可以得知這些情況 ,所以這部份的工作應該交給操作系統處理,這就是Varnish cache設計架構。 嚴格意義上說,Varnish 是一個高性能的反向代理軟件/軟體,只不過與其出色的緩存功能相比,企業更願意使用其搭建緩存服務器。同時,由於其工作在Web Server 的前端,有一部分企業已經在生產環境中使用其作為舊版本的squid 的替代方案,以在相同的服務器成本下提供更好的緩存效果,Varnish 更是作為CDN(註3) 緩存服務器的可選服務之一。 註1 FreeBSD是一種自由的類Unix作業系統,它起源於AT

CMS

Drupal Commerce Form Validate

有時候製作commerce的時候會遇到一些購買上數量限制,這個時候就必須要自己去寫自己的validate ,畢竟這種事情是沒有模組可以幫你的,這個時候我們就必須要create自己的module 首先我們先create自己的module,然後就要去查一下相關的hook 1.hook_form_alter 2.hook_validate function hellosanta_form_alter(&$form, &$form_state, $form_id) { //dpm($form); if($form_id=='views_form_commerce_cart_form_default'){ $form['#validate'][] = 'hellosanta_batch_commerce_form_validate'; //新增一個自己的validate } } function

利用jQuery控制A的文字內容等於B的文字內容

CMS系統中容易因某些自動生成的div文本內容寫死導致不法修改這時候就可以利用jQuery來控制文本的內容 利用jQuery控制A的文字內容等於B的文字內容 此段代碼如下: jQuery(document).ready(function() { jQuery('h1#page-title').text(jQuery('.form-item>.active').text());// }); 當頁面加載完成時,此段code的意思是說.form-item>.active的文本內容等於h1#page-title的文本內容。

CMS

drupal安裝redis

drupal安裝redis 關於redis Redis 是一款開源的,基於BSD 許可的,高級鍵值(key-value) 緩存(cache) 和存儲(store) 系統。由於Redis 的鍵包括string,hash,list,set,sorted set,bitmap 和hyperloglog,所以常常被稱為數據結構服務器。你可以在這些類型上面運行原子操作,例如,追加字符串,增加哈希中的值,加入一個元素到列表,計算集合的交集、並集和差集,或者是從有序集合中獲取最高排名的元素。 為了滿足高性能,Redis 採用內存(in-memory) 數據集(dataset)。根據你的使用場景,你可以通過每隔一段時間轉儲數據集到磁盤,或者追加每條命令到日誌來持久化。持久化也可以被禁用,如果你只是需要一個功能豐富,網絡化的內存緩存。 Redis 還支持主從異步複製,非常快的非阻塞初次同步、網絡斷開時自動重連局部重同步。其他特性包括: > * 事務

apache2 pagespeed網頁速度優化

apache2 pagespeed 網站速度不但對關鍵字排名具有影響,更是一個考驗使用者耐心的重大因素,以當前的行動裝置趨勢來說,網頁速度更是顯得重要,有越來越多使用者是用手機在外面上網,充分利用這些零碎且寶貴的時間上網,若進到了一個網站讀取速度太慢,使用者是很少有耐心等候網頁載入完畢的 這次我們將安裝,pagespeed來加速我們網頁。 apache2內建的模組有pagespeed所以安裝與啟用上非常容易。 pagespeed apache2 安裝與啟動 1. 下載 For 64bit System – $ wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb For 32bit System – $ wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb 2.安裝

使用snowstorm.js,讓網站添加飄雪的特效

想讓自己的網站加上漂亮的飄雪特效~可以看看唷。 剛好也快聖誕節了,來應景一下吧!! 首先呢~先在HTML裡面引入snowstorm.js <script src="snowstorm.js"></script> 接著寫入: <script> snowStorm.snowColor = '#99ccff'; //雪的顏色 snowStorm.flakesMaxActive = 96; //頁面中顯示雪的數量 snowStorm.useTwinkleEffect = true; //當雪碰到頁面底部時會慢慢的消失 snowStorm.snowCharacter = '•'; //雪的樣式,可自行更換 snowStorm.usePositionFixed = false;//true = 關閉跟隨滑鼠移動 false = 開啟跟隨滑鼠移動 <

CMS

Drupal Markdown filter

Markdown 其實就是給大家一個統一標準的格式,Markdown會自動幫你把文章內容編譯成HTML,好處是哪一天網站突然改版了CSS換了不會造成內文大崩壞的事情drupal使用起來也是非常的簡單只要安裝起模組,並且啟用文字格式就可以了。 那麼首先在這邊安裝的是 Markdown filter [https://www.drupal.org/project/markdown] 模組安裝好之後在 設定/內容撰寫/文字格式新增一個文字格式吧。 新增文字格式 將啟用過濾器內的Markdown功能打勾 文字格式選擇剛剛啟用markdown 就成功囉!!很簡單吧 不過比較不方便的是插入圖片,像是大家習慣的Insert模組插入圖片之後也只是一串img標籤囉

CMS

Drupal Commerce 觀念小筆記

因為工作的關係,有機會可以接觸到購物車這塊,所以特地來寫一點小筆記以免自己日後忘記 Drupal的Commerce組成有以下這些: > * product display (產品顯示) * product (實際上的產品,SKU) * order (訂單) * line item (有數量 價錢 總totla) * tax (稅) * fee (手續費) * shipment (運費) product display就是在content type給人看得node 內容有圖片 簡介之類 ex: iphone product 就是後台給使用者訂 價錢 貨號 尺寸 型號 ex: iphones 64G  白色 一筆order內可以有很多個line item 再加上 tax(line item) shipment(line item)

drush 常用指令

安裝Drupal7 core drush dl drupal 發信指令 drush php-eval “print mail(‘xxxxxx@gmail.com’, ‘Subject’, ‘Message’, ‘From: xxxx@xxx.com’);” Drupal7使用drush安裝中文界面 下載drush的語言相關模組 drush dl drush_language drush dl l10n_update && drush en -y $_ 安裝繁體中文語言檔 drush language-add zh-hant  && drush language-enable  $_ drush l10n-update-refresh drush l10n-update Drush安裝模組 使用drush下載模組 (以views為例) drush