https://im.qq.com/linuxqq/
雖然還是 beta 版本,今年的四月有最新的更新也算是有誠意了
helloworld
- Jun 23 Tue 2020 11:59
安裝訊騰 QQ Linux版本
- Jun 08 Mon 2020 14:59
博客來中衛醫療口罩第二波搶購
- May 29 Fri 2020 15:51
修改 mysql charset 編碼
有些時候可能需要調整mysql 原來的編碼,以達到預期的功能
如為了要存放emoji icon時
1. 修改 my.cnf 預設值
[client]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
2. 修改已經存在的 database 預設值
ALTER DATABASE `example_db` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
3. 修改已經存在的 table 預設值
ALTER TABLE `example_db`.`example_table` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ;
但上面這串語法,只會改變table 的預設值,對於已經存在的欄位編碼不會調整
4. 如果要變更欄位編碼,需要再下以下的sql 語法
ALTER TABLE `example_db`.`example_table` MODIFY `example_col` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
或是
ALTER TABLE ``example_db`.`example_table` CHANGE `example_col` `example_col` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
5. 如果想要table,column 都一起被調整 (強烈建議)
可以直接執行以下語法
ALTER TABLE `example_db`.`example_table` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- May 27 Wed 2020 10:57
限制google bot 爬網站的頻率
預設google bot 或是spider 會根據你的網站效能來評估抓取網站內容的頻率
但是如果你的網站真的已經被爬到吃不消
或是流量費超支
或是後端有其他瓶頸,google 也無從得知
這時候可以透過 google search console 暫時限制 google bot 爬網頁的頻率
進入
https://www.google.com/webmasters/tools/settings
請選取資源
選擇 限制 Google 的檢索頻率上限
並調整到一個適合的檢索頻率
儲存
- May 19 Tue 2020 11:44
活動預告 5/21 無印良品不限金額結帳81折
- May 19 Tue 2020 11:15
解決因X-Frame-Options 無法載入 iframe 問題
以下是各大瀏覽器的錯誤訊息
[IE]
此內容無法在框架中顯示
為了協助保護您在此網站所輸入的資訊安全性,此內容的發行者不允許在框架中顯示資訊。
您可以嘗試的方式:
在新視窗中開啟此內容
[Firefox]
因 X-Frame-Options 封鎖
連線到 example.com 時發生錯誤。
因為這個頁面包含 X-Frame-Options 政策,不允許以這種方式載入,Firefox 封鎖了這個頁面載入。
[google chrome]
Refused to display 'https://example.com/xxx.html' in a frame because it set 'X-Frame-Options' to 'deny'.
如果你有iframe 中網址的管理權限
請檢察apache 設定檔是否有以下設定
Header always set X-Frame-Options "xxx"
設定這個參數可以防止你的網站被攻擊
有三種設定值
1. DENY
不允許插入iframe 中
2. SAMEORIGIN
只允許插入同一個域名的網頁iframe中
3. ALLOW-FROM uri
只能插入指定的域名中
如: X-Frame-Options: ALLOW-FROM https://helloworld.pixnet.net/
- May 18 Mon 2020 11:29
將google ga code 插入pixnet 痞客幫blog
首先到ga首頁 https://analytics.google.com/
為你的blog 申請一個ga code
系統會自動幫你生成一段java script
你可以選擇將這段script 貼在某個側邊欄中
但是可能會改壞,可能手機版頁面不會載入這個側邊攔
最建議的做法是
到痞客幫應用市集 https://appmarket.pixnet.tw/
下載安裝Google數據分析
並設定事前已經申請好的ga code
格式應該是 UA-123456789-0
- May 06 Wed 2020 16:22
博客來x兒童福利聯盟x原燒 【愛、T恤義賣活動】
博客來 2020 一人衣愛助兒盟
2020愛T恤 | 一人衣愛助兒盟12周年 贈原燒350元愛心折抵券乙張
認購2020愛T恤349元送原燒350元折抵券
6/30前到店使用再贈廣島牡蠣
由「拾蒔生活製作所」插畫家李伊甯設計
愛心大使林柏宏邀您一起響應公益
一人衣愛助兒盟!
- May 05 Tue 2020 14:39
解決: Gmail - TLS Negotiation failed, the certificate doesn't match the host.
如果你是用gmail 當MUA, 也就是利用gmail 來收發外部的郵件
最近在寄信時出現這個錯誤訊息
郵件未傳送
你已設定使用「以這個地址寄送郵件」功能,透過其他電子郵件地址或別名傳送這封郵件。不過,該地址所屬帳戶的設定錯誤或已失效。請檢查相關設定,然後再嘗試重新傳送。
瞭解詳情
伺服器的回應如下:
TLS Negotiation failed, the certificate doesn't match the host.
以postfix + comodo wildcard ssl 為例
1. 取得合法的 ssl 憑證
免費或是購買1~2年憑證 (略)
2. 合併ca憑證
# cd /ssldir/example.com/
# cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ca-bundle.crt
3. 修改 postfix main.cf
# vi /usr/local/etc/postfix/main.cf
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /ssldir/example.com/example.com.key
smtpd_tls_cert_file = /ssldir/example.com/STAR_example_com.crt
smtpd_tls_CAfile = /ssldir/example.com/ca-bundle.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
4. 重啟 postfix 服務
# /usr/local/etc/rc.d/postfix restart
5. 測試
# openssl s_client -connect mail.example.com:25 -starttls smtp
觀察 Certificate chain 是否有噴錯誤訊息,如果都正常的話,就開開心心的寄一封信到別的網域測試看看吧
- Apr 29 Wed 2020 14:59
Dell R320 server boot from USB 隨身碟
dell r310 server 如果無法利用usb 隨身碟開機的話
請在開機時按F12 進入BIOS 設定畫面
1. 在開機設定的地方確認 Hard drive C: 是否已勾選
2. 按+ 將usb 開機順序移到內接硬碟/raidcard 前
- Apr 08 Wed 2020 16:16
利用 Google Chrome 移除PDF 密碼
- Mar 31 Tue 2020 15:05
透過 Linode 主機寄信
因為 Linode 政策關係,2019 年底後註冊的新使用者
預設對外不開放 tcp 25 468 587 port
也就是不能收發郵件
目的是為了要減少spam
但新用戶也不用擔心,租了卻不能發信
只要按照以下步驟
還是可以收發信的
1. 在 DNS server 上設定該台 linode 的正解 A 紀錄
2. 在 linode 管理介面設定相對應的反解紀錄
http://blog.sina.com.tw/helloworld/article.php?entryid=695484
3. 開 tickets 說這台linode 有寄信的需求
原則上只要你設定正確,很快就會幫你開通了
參考資料
https://www.linode.com/2019/11/05/a-new-policy-to-help-fight-spam/
https://www.linode.com/docs/email/running-a-mail-server/#sending-email-on-linode
- Mar 26 Thu 2020 14:54
windows / mac 遠端連線到 Mac OS 桌面
因為疫情關係
很多公司行號都在演練異地或是居家辦公,WFH (work from home)
vpn 是一個方式
但如果已經習慣辦公場所的電腦環境
沒有他不行的話
現有遠端連現有幾個方式可以使用
可以使用商業軟體如 team viewer
team viewer 的好處是
可以不受防火牆限制
dhcp client 也不用特別去記目前的ip
windows 有內建的 remote desktop
可以讓其他 windows 用戶連線到遠端主機的桌面
甚至是 iphone 和 mac os 也可以下載 app 連線到 windows remote desktop
https://apps.apple.com/tw/app/remote-desktop-mobile/id714464092
而 Mac OS 內建也有類似的設定
server 端
1. 系統偏好設定 -> 共享
2. 開啟螢幕共享 -> 桉 + 號 允許下列使用者存取
client 端
1. 前往 -> 連接伺服器
2. 輸入 vnc://IP:5900 , 連線即可
如果 client 是 windows 環境也可以下載 vnc viewer 連線
https://www.realvnc.com/en/connect/download/viewer/
- Mar 12 Thu 2020 11:21
Install Percona XtraDB Cluster 5.7 on CentOS 8 / RHEL 8
- Feb 17 Mon 2020 15:53
解決 Warning: file_get_contents(http://xxx): failed to open stream: Permission denied in xxx
如果在 CentOS + apache + php 的環境下面出現 Warning: file_get_contents(http://xxx): failed to open stream: Permission denied in xxx
或是一些摸不著頭緒的錯誤訊息
當確定程式沒有問題,在其他設備上也可以正常執行
請檢察看看 selinux 的設定
最簡單的方式就是 修改 /etc/selinux/config
SELINUX=disabled
重開機
- Feb 03 Mon 2020 11:01
解決 WSREP has not yet prepared node for application use 問題
- Jan 22 Wed 2020 17:29
20200122 汐止文化里康誥坑溪櫻花花況
- Jan 16 Thu 2020 17:06
阻擋 Bytespider 爬蟲
根據網路上的說法
Bytespider 是字節跳動旗下的今日頭條正在開發搜索引擎所派出來的爬蟲
但頻率真的太高了
有些小網站根本受不了
如果要擋的話有幾個方式
1. robots.txt
不允許 Bytespider 來爬網站,但可能不會有效
2. apache rewrite rule
判斷 agent 為 Bytespider 則回應 403
3. 防火牆直接擋在外面
這是最直接有效的方式,也不用讓人家進到web server 後再給人家拒絕
目前整理出來幾個網段可以參考
110.249.202.0/24
110.249.201.0/24
111.225.149.0/24
111.225.148.0/24
60.8.123.0/24
220.243.135.0/24
220.243.136.0/24
- Jan 10 Fri 2020 14:08
解決 percona xtradb 新node 無法加入 cluster 問題
準備啟動第二個node 要加入 perconaxtradb cluter 中
但是啟動失敗
看一下 /var/log/mysqld.log
[ERROR] WSREP: Command did not run: wsrep_sst_xtrabackup-v2 --role 'donor' --address ' :4444/xtrabackup_sst//1' --socket '/var/lib/mysql/mysql.sock' --datadir '/home/mysql' --defaults-file '/etc/my.cnf' --defaults-group-suffix '' --mysqld-version '5.7.28-31-57' '' --gtid 'xxxx'
暫時的解法,把 wsrep_sst_method 由 xtrabackup-v2 改成 rsync
vi /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
# SST method
#wsrep_sst_method=xtrabackup-v2
wsrep_sst_method=rsync
- Jan 10 Fri 2020 11:19
計算 mongodb 某個 collection 資料比數
- Jan 07 Tue 2020 11:21
varnish 不分大小寫比對字串
varnish 預設使用 regular expression 比對字串是有區分大小寫的
如
if (req.http.User-Agent ~ "spider") {
return (synth(403));
}
如果要不分大小寫比對字串時,可以在字串前面加入 (?i)
如
if (req.http.User-Agent ~ "(?i)spider") {
return (synth(403));
}
- Jan 02 Thu 2020 17:29
解決windows 10 部分程式顯示模糊問題
- Dec 30 Mon 2019 10:58
PHP CURL function 指定IP抓取 vhost 網頁內容
在 shell 下如果要用curl 指定IP抓取 virtual host 網頁內容可以用以下指令
# curl 'http://192.168.5.111/path/pagename' -H "Host: example.pass.tw"
相對於以上指令,如果要用php 執行的話
<?php
$ch = curl_init('http://192.168.5.111/path/pagename');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: example.pass.tw'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($ch);
- Dec 24 Tue 2019 17:38
FreeBSD 安裝 AWStats
AWStats 是一套強大的 opensource log 分析工具
可以分析來自 web , mail , ftp server 等格式的紀錄
以下測試環境:
FreeBSD 12.1-RELEASE
apache24/httpd-2.4.41
awstats-7.7
更新ports
# portsnap fetch update
安裝 apache24
# cd /usr/ports/www/apache24/
# make install clean
接下來安裝 AWStats
# cd /usr/ports/www/awstats/
# make install clean
設定apache, 將以下註解拿掉
# cd /usr/local/etc/apache24/
# vi httpd.conf
LoadModule cgid_module libexec/apache24/mod_cgid.so
設定vhost , 如果這台是單一功能的機器也可以直接寫在 httpd.conf 內
# cd /usr/local/etc/apache24/Includes/
# vi awstats.conf
<VirtualHost *:80>
ServerAdmin webadm@staff.pass.tw
ServerName awstats.pass.tw
ErrorLog /home/archive/logs/error_log-awstats.log
CustomLog /home/archive/logs/access_log-awstats.log combined
Alias /awstatsclasses "/usr/local/www/awstats/classes/"
Alias /awstatscss "/usr/local/www/awstats/css/"
Alias /awstatsicons "/usr/local/www/awstats/icon/"
ScriptAlias /awstats/ "/usr/local/www/awstats/cgi-bin/"
<Directory "/usr/local/www/awstats/">
Options None
AllowOverride None
Require all granted
</Directory>
<Directory "/usr/local/www/awstats/cgi-bin/">
Options ExecCGI
SetHandler cgi-script
</Directory>
</VirtualHost>
重新啟動apache
# apachectl restart
編輯設定檔,簡單調整適合自己的設定
# cd /usr/local/www/awstats/cgi-bin/
# cp awstats.model.conf awstats.pass.tw.conf
# vi awstats.pass.tw.conf
LogFile="gzip -cd /home/workdir/access_log.pass.tw*.gz |"
LogType=W
LogFormat=1
LogSeparator=" "
SiteDomain="books.pass.tw"
DirData="/usr/local/www/awstats/data"
開始分析數據
# mkdir /usr/local/www/awstats/data
# /usr/local/www/awstats/cgi-bin/awstats.pl -config=pass.tw -update
打開瀏覽器,網址輸入
http://主機名稱或ip/awstats/awstats.pl?config=設定檔
如
http://awstats.pass.tw/awstats/awstats.pl?config=pass.tw
測試如果正常的話,將 /usr/local/www/awstats/cgi-bin/awstats.pl 寫入 crontab 每日固定時間執行即可
- Dec 24 Tue 2019 15:05
FreeBSD 安裝 AWStats
FreeBSD 安裝 AWStats
AWStats 是一套強大的 opensource log 分析工具
可以分析來自 web , mail , ftp server 等格式的紀錄
以下測試環境:
FreeBSD 12.1-RELEASE
apache24/httpd-2.4.41
awstats-7.7
更新ports
# portsnap fetch update
安裝 apache24
# cd /usr/ports/www/apache24/
# make install clean
接下來安裝 AWStats
# cd /usr/ports/www/awstats/
# make install clean
設定apache, 將以下註解拿掉
# cd /usr/local/etc/apache24/
# vi httpd.conf
LoadModule cgid_module libexec/apache24/mod_cgid.so
設定vhost , 如果這台是單一功能的機器也可以直接寫在 httpd.conf 內
# cd /usr/local/etc/apache24/Includes/
# vi awstats.conf
<VirtualHost *:80>
ServerAdmin webadm@staff.pass.tw
ServerName awstats.pass.tw
ErrorLog /home/archive/logs/error_log-awstats.log
CustomLog /home/archive/logs/access_log-awstats.log combined
Alias /awstatsclasses "/usr/local/www/awstats/classes/"
Alias /awstatscss "/usr/local/www/awstats/css/"
Alias /awstatsicons "/usr/local/www/awstats/icon/"
ScriptAlias /awstats/ "/usr/local/www/awstats/cgi-bin/"
<Directory "/usr/local/www/awstats/">
Options None
AllowOverride None
Require all granted
</Directory>
<Directory "/usr/local/www/awstats/cgi-bin/">
Options ExecCGI
SetHandler cgi-script
</Directory>
</VirtualHost>
重新啟動apache
# apachectl restart
編輯設定檔,簡單調整適合自己的設定
# cd /usr/local/www/awstats/cgi-bin/
# cp awstats.model.conf awstats.pass.tw.conf
# vi awstats.pass.tw.conf
LogFile="gzip -cd /home/workdir/access_log.pass.tw*.gz |"
LogType=W
LogFormat=1
LogSeparator=" "
SiteDomain="books.pass.tw"
DirData="/usr/local/www/awstats/data"
開始分析數據
# mkdir /usr/local/www/awstats/data
# /usr/local/www/awstats/cgi-bin/awstats.pl -config=pass.tw -update
打開瀏覽器,網址輸入
http://主機名稱或ip/awstats/awstats.pl?config=設定檔
如
http://awstats.pass.tw/awstats/awstats.pl?config=pass.tw
測試如果正常的話,將 /usr/local/www/awstats/cgi-bin/awstats.pl 寫入 crontab 每日固定時間執行即可
- Dec 11 Wed 2019 15:15
測試你的網站是否支援資料壓縮
目前幾乎所有的瀏覽器都已支援壓縮功能
以下幾個網站可以方便檢測你的網站是否有開啟壓縮的功能
https://aruljohn.com/gziptest.php
https://www.whatsmyip.org/http-compression-test/
http://www.gidnetwork.com/tools/gzip-test.php
- Dec 03 Tue 2019 17:48
varnish frontend 與 backend 路徑不同時的設定
情境
example.com/a/test.html -> a.example.com/test.html
example.com/b/test.html -> b.example.com/test.html
# vi /etc/varnish/default.vcl
vcl 4.0;
import directors;
import std;
[.... 中間略 ....]
sub vcl_recv {
if (req.http.host ~ "example.com") {
if (req.url ~ "^/a/") {
set req.url = regsub(req.url, "^/a","");
set req.http.host = "a.example.com";
set req.backend_hint = a.backend();
} else if (req.url ~ "^/b/") {
set req.url = regsub(req.url, "^/b","");
set req.http.host = "b.example.com";
set req.backend_hint = b.backend();
}
}
}
- Nov 29 Fri 2019 11:03
Synology NAS 系統設定備份&還原
我們可能會遇到系統硬體不夠力,想要換一台新的NAS
或是空間不族,想要更換大一點的硬碟空間
首先除了先要把裡面的資料備份出來外
如果原來的設定很單純的話,當然可以直接在新機器上面設定
但是如果裡面很多的服務和帳號的話,建議還是用系統提供的備份還原機制
控制台 -> 更新 & 還原 -> 系統設定備份
1. 備份設定
系統會將以下的設定及帳號密碼備份出來一個 .dss 的檔案
2. 還原設定
(1) 選擇要還原哪一個備份檔
(2) 選擇要還原的設定及是否要覆寫衝突
如果是全新的設定的話,當然是全選
但是如果只是單純因為前一刻手誤,不小心改壞設定或是誤刪帳號,就可以選擇各別的設定還原
PS. 還原設定的時候不會異動到網路設定,所以可以不用擔心新舊兩台機器會有IP 衝突的狀況
- Nov 28 Thu 2019 14:07
測試 Synology DS413 安裝 10TB硬碟
測試Synology DS413 可以抓到單顆10TB硬碟
但是這個型號的NAS 每個 volume 的上限是 16TB
所以裝 10TB的硬碟很尷尬
做成 raid10 / raid5 / raid6 都會超過 16TB
只能做成兩個raid1 的 volume
官方資料
https://www.synology.com/zh-tw/knowledgebase/DSM/tutorial/Storage/Why_does_my_Synology_NAS_have_a_single_volume_size_limitation
因應現在硬碟空間愈做愈大,建議就買可以上到108TB 的機型
- Nov 26 Tue 2019 15:15
測試 Dell R310 + PERC H700 + 10TB硬碟