網頁

2019年12月8日 星期日

Apache 頻寬限制

Apache2.4 版本已內建頻寬限制模組。將 mod_ratelimit.so 啟動即可。

範例:針對特定目錄限速

LoadModule ratelimit_module modules/mod_ratelimit.so

<Directory "C:/Apache2/htdocs/download">
    SetOutputFilter RATE_LIMIT
    #1000kb/s
    SetEnv rate-limit 1000
</Directory>

相關資料

2019年11月22日 星期五

Web 與 CLI 使用不同的 PHP.ini 設定

Apache 使用自已專用的 php.ini 設定檔,PHP CLI Version 可以另外採用自已專用的 php-cli.ini 設定檔。

PHP CLI Version 使用範例:程式執行時可自行指定要使用的 php-cli.ini 設定  ( php -c C:/PHP/php-cli.ini test.php ;  -c <path>|<file> Look for php.ini file in this directory )

或者輸入 php --ini 看看 Loaded Configuration Files 是不是 php-cli.ini ,是的話直接輸入 php test.php 也是與上方的範例的執行結果相同。

註:將 php.ini 複製並重新命名為 php-cli.ini,這個在 CLI Version 模式會自動的找到 php-cli.ini。但若改成其它名稱時就不會 (例如: php_cli.ini ),此時程式在自行指定要使用的 php 設定檔。這種做法也許是是更為安全的作法,如此在 CLI 模式其它使用者,在時用時原則上仍是採用與 Web 相同的設定的 php.ini 設定。有特殊需求時再自行指定特定的 php_cli.ini 設定檔。

相關參考:

2019年6月6日 星期四

Google analytics 使用gtag 加入 event 事件

新版本的 google analytics 追蹤碼不能使用 ga 的機制
e.g. ga('send', 'event', [eventCategory], [eventAction], [eventLabel], [eventValue], [fieldsObject]);

改寫網頁後,觀察了很久,一直很納悶為什麼在 google analytics 平台內沒有看到資料。後來才發現到這件事。基本上網路上所找到的範例基本上還是以 ga 的方法為主。

目前新版本的 google analytics 追蹤碼要導入事件,要採用的方法是要改用 gtag 的方法。撰寫方式參考相關資料內的連結。

為了方便使用,參考 google 的範例,稍微調整成下面的方式:

function trackEvent(eventCatalog,eventAction,eventValue) {
    gtag('event', 'click', {
        'event_category' : eventCatalog,
        'event_action' : eventAction,
        'event_label' : eventValue,
        'value' : 1
    });
}

這樣的方式前端頁面要使用時,只要在需要加入監控的連結內加入此 function 即可,範例如右 <a href = 'https://www.google.com' onclick="trackEvent(TEST, click,Google)">Google</a>

google analytics 內的報表 =>行為 =>事件內的資料需要等待一段時間才能看到數據。想要即時知道到底改寫正不正確,可以利用報表 =>即時 =>事件功能頁面,再同時打開測試頁面點選測試 URL。這個時候若有在該功能頁面看到數據就表示新加入的 google event tracking 的功能是沒有問題的。


相關資料:

2019年4月17日 星期三

伺服器重新開機自動發送信件提醒

伺服器重新開機自動發送信件提醒,一直以來都是利用 PHP 再加上作業系統的工作排程來逹成這件事,但不是每一台主機都有 PHP 的環境。

找一下資料,在 Windows 主機上也可以透過 Powershell 的腳本來完成這件事,實作方式直接參考相關資料連結即可。

腳本如下,將紅色字體的地方修改成符合自己的環境,再將此文字檔另存為 EmailScript.PS1。透過系統的工作排程器讓主機重新開機後自動執行這個檔案。這樣就可以了。

Powershell 腳本如下:
$SmtpClient = new-object system.net.mail.smtpClient

$MailMessage = New-Object system.net.mail.mailmessage

$SmtpClient.Host = "SMTP.YOURcompany.com"

$mailmessage.from = ("DoNotReply_ToThisEmail@ YOURcompany.com ")

$mailmessage.To.add("Person@ YOURcompany.com , Person2@ YOURcompany.com, …… ")

$mailmessage.Subject = "Alert Subject"

$mailmessage.Body = "Alert Body with Instruction to recipients"

$smtpclient.Send($mailmessage)
工作排程器設定方式:
Program/script:設定為 C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe

Add arguments(optional):設定為 -NoProfile -Executionpolicy bypass -file "Path to your file.ps1" 

相關資料:

2019年4月2日 星期二

AdGuard Home on Raspberry Pi 安裝備忘

  • 安裝指指南
  • 簡單步驟幾個步驟:
    cd $HOME
    wget https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.94/AdGuardHome_v0.94_linux_arm.tar.gz
    tar xvf AdGuardHome_v0.94_linux_arm.tar.gz

    sudo ./AdGuardHome -s install

    到其它電腦內使用瀏覽器連到 Ras[berru Pi 的 IP (e.g. http://192.168.0.2:3000/)後按頁面上的步驟設定即可。
  • 其它要使用的電腦在 DNS 的部份指向這台 Ras[berru Pi 的 IP。
AdGuard 也有推自己的 AdGuard DNS,將電腦的 DNS 直接指向 176.103.130.130、176.103.130.130 就可以達到基本的阻擋廣告效果。自建 Server 的好處在於可以自行定義阻擋規則與加入許多己撰寫好的規則,在應用上更為彈性。

AdGuard 也有提供其它平台的編譯版本,Windows 版本的安裝也很簡單,直接點選執行檔就可以使用了。

相關資訊:

2019年3月14日 星期四

Fedora 忘了密碼怎麼辦

Fedora 忘了密碼怎麼辦,重置的方法還蠻簡單的。

可以直接參考這的做法

在你這畫面(grub)中按『e』,
在下一頁找有kernel的選項上按『e』,
再在那行的最後先空一格再鍵入『1』(或是single)後按enter,
再按『b』開機,進入到單人模式後鍵入passwd指令更改root密碼,
最後再重新啟動系統就好。

參考資料: