centos 6 YumRepo Error: All mirror URLs are not using ftp, http[s] or file.

centos 6 YumRepo Error: All mirror URLs are not using ftp, http[s] or file.

centos 6 YumRepo Error: All mirror URLs are not using ftp, http[s] or file.

由於Centos6 已經停止更新,所以yum會出錯。
修改辦法:
1.修改 vi /etc/yum.repos.d/CentOS-Base.repo

2.只留下面3個
[base]
name=CentOS-$releasever – Base
baseurl=https://vault.centos.org/6.10/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[updates]
name=CentOS-$releasever – Updates
baseurl=https://vault.centos.org/6.10/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever – Extras
baseurl=https://vault.centos.org/6.10/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

3.存檔 應該就可以修好!

大推 Ducky 鍵盤 維修經驗 超優質體驗!!

大推 Ducky 鍵盤 維修經驗 超優質體驗!!

前因:
One 2 午夜鍵盤用了一年多,突然心血來潮,把所有鍵帽拔下來洗一輪,洗完後想把所有長鍵的鐵桿順便上油,
但拆了第一個Enter鍵後就卡關,裝不回去軸體Orz,下次還是單純拆鍵帽就好。
由於已經過保,但還是試試看送修求救!

時間軸:
08/09(日) 凌晨1點由桃園宅配通寄出,寄到Ducky維修部。宅配通費用165元。
08/10(一) 中午Ducky 維修部收到,並且當天寄回。
08/11(二) 傍晚一回家就看到鍵盤的包裹躺在家裡,超級驚訝+感動。

詳細:
由於已經過保,所以有事先跟客服連絡過,被告知可能會有300元的檢測費,以及必須自行負擔寄回的150運費。
Ducky會打電話跟我報價,同意才維修。

可以接受的話就留一張維修小紙條,於是我把維修小紙條放進包裹,於08/09 凌晨1點寄出。

08/10 上網查一下單號,喔喔 中午維修部收到了,開始等待電話報價。
08/11 等了一整天,手機安安靜靜,但是一回到家看到了包裹!! 揪甘心!

一收到寄回來的包裹,當下我十分驚訝,天啊,這樣算起來不到48小時,竟然已經修好並且寄回來了!

該不會是我維修小紙條寫得很詳細,所以帥哥工程師就沒有跟我聯絡,他依照我的要求,直接幫我把整個軸體換新,舊的軸體還寄回來給我以資證明。
而讓我更驚訝的是,其他長鍵他也幫我補油了!!! 揪甘心x2

而且我原本的塑膠蓋子是破損的,帥哥也幫我換了一個新的給我! 揪甘心x3

鍵盤背後的保固貼紙,原本被我戳破了(但我沒有把鍵盤打開,只是手賤把貼紙用破),他也幫我把貼紙貼了新的回去! 揪甘心x4

至於詳細費用,我只能說「揪甘心x5」,有興趣的可以自己上網查其他人送修後實際上被收取的費用,基本上不用害怕。

結論:
從我送出鍵盤到Ducky修好寄到我家,全程不超過48小時,加上整個服務內容完全超過了我所預期的期望值,實實在在的讓我感動。
非常有幸台灣還能有這麼優質的公司,從今以後我絕對變成你們家的鐵粉了!現在開始我要把我所有設備都改成你們家的產品了!

Ducky 創傑 真的是我有史以來遇過最棒的一家公司,產品本身品質絕佳外,售後服務更讓人滿意。
謝謝你們這麼優質的產品,和優異的服務。
Ducky 大推!真是好鴨鴨!!
真心希望貴公司能永續經營下去,並且大富大貴!!

CloudFlare 5秒盾 破解! challenge by pass! 成功突破防火牆! 爬蟲、機器人

CloudFlare 5秒盾 破解! challenge by pass! 成功突破防火牆! 爬蟲、機器人

近期在撰寫爬蟲機器人,發現許多網站都裝上了CloudFlare的防火牆,其中5秒盾是最難攻克的一環。
5秒盾的工作原理是,一旦他覺得你可疑,就會把頁面跳到challenge.html,透過Javascript等待5秒,並且重新送出表單逼你按確定。
才可以重新進入網站。

我試過建立完整的HTTPHEADER以及user-agent依然沒用,還是會被跳轉到challenge.html。
用網路找來的透過第三方網站幫你計算Javascript的五秒盾解密也是失敗。
就算用python的webbrowser先開啟Firefox來破解五秒盾後再進網站有時還是會失敗。

至於PHP,原本想法是先用A.php去取得cloudflare的cookie後,再把這個數值換到B.php身上,再訪問網站,依然失敗。
Cloudflare不虧是世界大站,防火牆等級很高XD

但即使如此,我還是發現了可用的方法!

原理說明:
1.訪問目標網站時,若對方開啟cloudflarfe的網站,這時瀏覽器會取得一組「app_session」的cookie

2.cloudflare會針對這組cookie進行檢測,判斷是否有正常訪問和更新。
3.如果「app_session」未有資料,或是進行不正常訪問,頁面就轉到challenge.html去做驗證。

根據上述,會發現關鍵在於「app_session」有持續更新,所以我的作法如下,以php Curl為例:

1.先用Firefox開啟目標網站,取得完整的cookie值以及User-Agent資料
2.把取得的cookie值,套進curl裡面的「curl_setopt($ch, CURLOPT_COOKIE, $setcookie);」$setcookie這個參數。
3.把取得的User-agent資料,套進curl裡面的「curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);」$headers這個參數。

基本上php修改成這樣就可以了。接下來才是關鍵!

4.Firefox安裝套件 Tab Reloader (page auto refresh)
5.Firefox在目標網站啟動Tab Reloader (page auto refresh)這個擴充套件,並且做下圖設定。

Enable Reloader for this tab 及 Bypass form submission: 要啟用,秒數設定10秒。

如此一來,剛剛得到的「app_session」這組資料就會不斷地被更新,也就比較不容易被轉到challenge.html去做驗證。
Firefox跟php不需要同一個IP,換句話說,你可以透過A電腦開啟firefox取得app_session後,拿到B電腦去用。
只要A電腦的有持續更新app_session就可以了。

===2020/01/03補充====
最好是拿兩種瀏覽器如 Chrome及Firefox 同時進行重新整理動作。

上面這個方法我已經測試了24H*14天,目前一切都正常,未有被檔死的經驗。
有被擋過數次,但很快透過Firefox的autorefresh功能後就會通過驗證了。

以上,如果您有更好的方法,也歡迎在下方留言交流!

StarryDNS 香港VPS 2019 黑色星期五特價!KVM每個月10美金

StarryDNS 香港VPS 2019 黑色星期五特價!KVM每個月10美金

因為網站有連線到中國的需求,但又卡在ICP備案的問題,因此香港的主機往往是連線到中國最佳的機房。
個人使用StarryDNS這家主機商已經兩年多,有許多問題幾乎都在十分鐘內回覆解決。
站長不接業配,也不愛業配,這邊附上我的訂購紀錄跟問答紀錄,可以看到他們都很快地處理。

今天要分享的是,2019 黑色星期五,StarryDNS也很阿莎力給了將近3.5折的特價!!!
雖然我消息晚了,但還是有搶到一台!可選擇香港/荷蘭/新加坡/日本/洛杉磯機房 (發文的當天日本已經賣完了,但日本我推薦Linode的)
下面分享兩款主機規格跟價格。

CPU:1核
內存:1GB
硬碟:50GB / RAID10
流量:500GB / 100Mbps
架構:KVM
IP /面板:1IPv4 / SolusVM
價格:HKD 280/年 ,購買鏈接

CPU:3核
內存:3GB
硬碟:100GB / RAID10
流量:1.2TB / 100Mbps
架構:KVM
IP /面板:1IPv4 / SolusVM
價格:HKD 77/月 ,購買鏈接

重點是,我原本有一台3G-OVZ架構的VPS,明年六月到期,年繳價格是HKD 1133。
我租這台3G-KVM架構的VPS,年繳只要HKD 770!
當然立馬換啦XDD,但原本的還沒到期怎麼辦?又不想同時擁有兩台。
寫信給客服後,他們提供按比例退款,WOW~ 所以我拿回了HKD 591,重新訂購HKD 770一年!

超級划算。

這家真是超級佛心,又很敢給的優質VPS商。五星推薦
黑五特價購買連結點我

新。BOOKING.COM / JALAN.NET 滿房訂房攻略

新。BOOKING.COM / JALAN.NET 滿房訂房攻略

[2021/10/14] 網友回報目前失效,等待我有空再來更新

2014年時,寫了一篇文章「BOOKING.COM 滿房訂房攻略!」,主要是在說明,因為訂不到房,所以寫個簡單的程式來無限刷新,
一有房的話就發Mail或其他方式通知我去訂房。
想不到這個概念也有滿多人需要的,但由於後來本人極少使用Booking,加上Booking網頁改版,所以原文的內容已經不敷使用。
可惜無奈的是,booking始終沒有開發空房通知的功能,一定要你上去訪問,但這也許是網頁黏著度的考量,想說你會不會放棄換別家飯店?XD
這幾天突然想起這件事情,想著既然有其他人需要,那不如我來做一個線上服務版的讓其他非資工背景的朋友,也能使用,獨樂樂不如眾樂樂??~~甚好甚好。

所以今天完成了 「Booking搶房系統」。
程式主要是結合網頁機器人+LINE機器人,透過網頁機器人幫你查詢相關房間是否有空房,再利用Line機器人傳送通知給你,或是做其他設定互動。
支援Booking.com 及 Jalan.net訂房網。
有需要的朋友歡迎參考看看 https://booking.34e.cc/
→ Booking.com搶房操作教學 → Jalan(中/日)搶房操作教學

步驟說明:
1.打開網頁進入booking.comJalan.net
2.搜尋你要的飯店跟日期是否有房
3.確定無空房,複製網址列貼至「查詢欄」後送出查詢
4.告訴Line機器人你的搶房編號,之後他就會幫你定時看一下有沒有空房囉。
※ 為了避免造成對方的困擾,機器人以溫和的方式查詢,盡量不造成麻煩。
※ 本系統遵守網路禮儀,並不會自動幫你訂房,只會告知你有空房了。

若有相關問題,請在本篇留言。



DNSMASQ 快取設定

DNSMASQ 快取設定

透過DNSMASQ的DNS快取功能,減少UDP53的查詢

第一步: 安裝所需軟體
yum install bind-utils dnsmasq

第二步: 修改/etc/resolv.conf
新增最上面一筆
nameserver 127.0.0.1

第三步: 新增 /etc/resolv.dnsmasq.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

第四步:複製原本/etc/hosts到dnsmasq內
cp /etc/hosts /etc/dnsmasq.hosts

第五步:修改/etc/dnsmasq.conf
resolv-file=/etc/resolv.dnsmasq.conf
strict-order
addn-hosts=/etc/dnsmasq.hosts
listen-address=127.0.0.1
no-dhcp-interface=
cache-size=10000

第六步:啟動dnsmasq
service dnsmasq start

第七步:測試
dig 34e.cc | grep “Query time”
第一次可能10ms以上,再測一次就會是0ms 表示快取成功

備註:
重開機後如果/etc/resolv.conf被重置,須至網路卡修改

修改檔案/etc/sysconfig/network-scripts/ifcfg-eth0的內容:
增加↓
PEERDNS=no

結束

CentOS 6 安裝 php 5.6

CentOS 6 安裝 php 5.6

移除本來的 php
yum -y remove php php*
安裝測試版本的 yum資料庫
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

安裝php56
yum install php56w php56w-opcache php56w-xml php56w-xmlrpc php56w-pdo php56w-mysql php56w-mcrypt php56w-mbstring php56w-curl php56w-gd

記得啟用OPcache
/etc/php.d/opcache.ini
註:php套件沒有移除乾淨的話,會出現錯誤,ex php-commn

CentOS 6 x86_64 及Win7 安装TensorFlow

CentOS 6 x86_64 及Win7 安装TensorFlow

1) /lib64/libc.so.6: version `GLIBC_2.14′ not found 解決

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
tar -xvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure -prefix=/usr -disable-profile -enable-add-ons -with-headers=/usr/include -with-binutils=/usr/bin
make && make install

2)GCC版本太舊,升级GCC到4.8.3

$ wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.3/gcc-4.8.3.tar.gz
$ tar -zxvf gcc-4.8.3.tar.gz
$ cd gcc-4.8.3
$ ./contrib/download_prerequisites 
$ mkdir build
$ cd build
$ yum -y install gcc-c++
$ ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
$ make && make install
$ cp ./stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19 /usr/lib64
$ cd /usr/lib64
$ rm -f /usr/lib64/libstdc++.so.6
$ ln -s libstdc++.so.6.0.19 libstdc++.so.6

跑tensorflow如果出現
「ImportError: DLL load failed with error code -1073741795」之類的動態檔讀取錯誤,問題是在CPU沒有支援「指令集擴充 AVX」。
有些CPU只有支援「指令集擴充 SSE」,然而tensorflow預設是使用AVX,所以CPU是SSE的永遠不會成功。

查詢你的CPU有無AVX範例:
https://ark.intel.com/content/www/tw/zh/ark/products/52224/intel-core-i5-2410m-processor-3m-cache-up-to-2-90-ghz.html (這顆是AVX)
https://ark.intel.com/content/www/tw/zh/ark/products/41447/intel-core-i7-930-processor-8m-cache-2-80-ghz-4-80-gt-s-intel-qpi.html (這顆是SSE)

我桌機沒有AVX,筆電有,所以剛測試一下,筆電很快就安裝起來了,桌機仍然失敗。
若CPU只有SSE的話必須手動修正tensorflow,
可以來這邊抓取相關的檔案 https://github.com/fo40225/tensorflow-windows-wheel

抓下來之後「pip install 檔名」即可安裝

另外Win7跑Tensorflow最簡單的方式就是用conda建一個虛擬環境,python選3.5,除了CPU指令集會有問題外,基本沒其他狀況。

CentOS 6.9 安裝python2.7

CentOS 6.9 安裝python2.7

yum groupinstall “Development tools”

tar -zxvf Python-2.7.12.tgz
cd Python-2.7.12/
./configure –prefix=/usr/local –enable-optimizations
make && make altinstall
//找出python
which python

ln -s /usr/local/bin/python2.7 /usr/local/bin/python

curl “https://bootstrap.pypa.io/get-pip.py” -o “get-pip.py”
python get-pip.py

pip install jieba
pip install gensim

yum install perl-CPAN

yum install python-setuptools python-setuptools-devel
yum install gcc-c++

cpan YAML
cpan Module::Build #這段常出錯
若是失敗
*yum install perl-ExtUtils-MakeMaker
* cpan Module::Install

上面兩個不確定要不要用 但莫名好了

cpan force install Module::Build

問題 build-essential
yum install -y libxml2 libxml2-devel libxslt libxslt-devel

1. Can’t locate Encode/Detect/Detector.pm 問題解決

wget http://search.cpan.org/CPAN/authors/id/J/JG/JGMYERS/Encode-Detect-1.00.tar.gz
tar -zxvf Encode-Detect-1.00.tar.gz
cd Encode-Detect-1.00
vi parche

—–新增內容—-
— Detector.xs 2006-10-27 16:48:59.000000000 -0400
+++ Detector.xs.old 2008-04-29 15:59:43.000000000 -0400
@@ -38,6 +38,7 @@
#define PERL_NO_GET_CONTEXT /* we want efficiency */
#include “EXTERN.h”
#include “perl.h”
+#undef HASATTRIBUTE_UNUSED
#include “XSUB.h”
}
——內容結束—-

perl Makefile.PL && make && make install

Mysql 錯誤InnoDB: mmap(8585216 bytes) failed; errno 12

Mysql 錯誤InnoDB: mmap(8585216 bytes) failed; errno 12

linux下mysql啟動錯誤,且無法啟動mysql服務,查看myql日誌,發現如下日誌:

2017-08-10 18:11:03 9772 [Note] InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(136019968 bytes) failed; errno 12
2017-08-10 18:11:03 9772 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2017-08-10 18:11:03 9772 [ERROR] Plugin ‘InnoDB’ init function returned error.
2017-08-10 18:11:03 9772 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
2017-08-10 18:11:03 9772 [ERROR] Unknown/unsupported storage engine: InnoDB
2017-08-10 18:11:03 9772 [ERROR] Aborting

其中InnoDB: mmap(136019968 bytes) failed; errno 12是關鍵的錯誤信息。
從網上查資料,有人說修改innodb_buffer_pool_size,經過測試無效。
有人說是swap分區為0導致的此錯誤,使用free -m命令查看系統內存,發現swap確實為0。使用如下命令建立一個臨時的swap分區:

dd if=/dev/zero of=/swap bs=1M count=512 //創建一個swap文件,大小為512M
mkswap /swap //將swap文件變為swap分區文件
swapon /swap //將其映射為swap分區

此時使用free -m命令即可看到swap分區已存在了,然後啟動mysql服務即可。
為了保證下次系統啟動後,此swap分區被自動加載,需要修改系統的fstab文件,操作如下:

vi /etc/fstab
//在其中添加如下一行
/swap swap swap defaults 0 0

保存文件即可。