Author: Ken

  • How to install PHP 7.4 on FreeBSD 12

    一直以來我都使用源代碼編譯的方式安裝php,一方面是因為Centos上yum的php版本比較舊,源代碼編譯比較適用於各種類unix平台,另外一方面是因為有時候需要加入第三方的模塊,比如pagespeed的時候,就必須從源代碼進行編譯,但是,FreeBSD一直都不支持pagespeed,所以,其實使用pkg自帶的版本就足夠好用了。

    安裝的命令很簡單:

    pkg install php74 php74-zlib php74-exif php74-gd php74-mbstring php74-xml php74-pdo_mysql php74-mysqli php74-curl php74-opcache php74-intl php74-sockets php74-zip php74-openssl php74-bz2 php74-pecl-redis php74-session php74-json php74-dom php74-fileinfo php74-simplexml php74-simplexml php74-pdo_sqlite php74-iconv php74-pecl-imagick-im7 php74-filter

    如果有需要其他的模塊,繼續在後面添加就可以。

    我一般會對/usr/local/etc/php.ini做如下一些修改:

    post_max_size = 22M

    upload_max_filesize = 20M

    date.timezone = Asia/Taipei

    opcache.memory_consumption=32
    opcache.blacklist_filename=/root/sh/opcachebl.txt

    當你不想為所有的php script啟用opcache的時候,你可以把那些目錄加入黑名單,這樣你可以節省很多內存。

    有一些pkg中沒有的so,phpize安裝後,需要在/usr/local/etc/php 目錄中新建一個extension.ini,並添加例如
    extension=imagick.so

    如果服務器內存足夠大,那麼我們可以使用redis作為session handler,將php的session放入內存,比直接扔在磁碟上的效率要高不少,針對php.ini需要修改兩處:

    session.save_handler = files 修改為
    session.save_handler = redis

    同時,session.save_path = “/tmp”
    修改為session.save_path = “tcp://127.0.0.1:6379?auth=ifyouhaveapassword”

    如果redis-server沒有設置密碼,那麼後面就不需要添加。

    好吧,其實是因為使用源代碼編譯intl模塊在FreeBSD上怎麼都過不去,看起來似乎是一個bug,而且是幾年前的bug,粗略的尋找了一下,沒有找到答案,也許以後可以解決這個問題。

  • Blocking aggressive crawlers/scrapers/bots

    有很多人喜歡用Blocking UA的方法,但很幸運的是,如果你使用了CF的CDN服務,那麼Cloudflare為我們提供了防火牆功能。

    當你把你的網站放在CF的CDN後面,有許多增強的安全設置可以為我們所使用,其中一個就是根據UA來進行處置,Block或者Challenge,使用Challenge選項時,會首先到達一個驗證碼頁面,這個頁面,在大陸由百度雲加速提供,除大陸地區,由CF自己提供,這個Challenge頁面非常類似於常用的抗DOS設備的跳轉頁面,需要輸入驗證碼,或是使用js檢測瀏覽器完整性後,才會將用戶側瀏覽器傳遞到目的url。

    但是,很多時候,一些非正式的bot,使用了各種千奇百怪的UA,比如華為和阿里巴巴,你們又沒有搜索引擎,抓來抓去抓什麼呢?這種時候,我覺得UA非常煩擾,於是我通常會將16位的B類地址段直接設置為需要Challenge,通常來講,既然它是bot,它就不可能完成Challenge。當然,還有一些俄羅斯和法國的惡意bots,通常也會加到Challenge的範圍,由於俄羅斯的實在是太多,乾脆就直接把Russia加進去。

    通過以上的一些設置,整個服務器的負荷就小了很多,訪問量變成高峰期的三分之二左右。

  • 骨纖維異常增殖

    我多年來屢次偶發右手肘的疼痛終於有了答案:骨纖維異常增殖,這是一種發育不良的疾病,通常好發於青少年……積水潭醫院不知道哪科的主任醫生看了一下片子就說你這個沒什麼,娘胎裡帶來的病,沒症狀不管它。

    起因為和欣茹打羽毛球,用力了使用了右手肘兩天之後,自覺手痛得快要斷了,終於去醫院拍了手肘核磁和CT。

    這是一種自限性疾病,意思就是當它沒有症狀的時候不需要處理,有症狀處理症狀,可能自我恢復,也可能不,簡單的說,就是大多數時候它不需要處理,但是一旦有了問題,就可能需要做手術。

    CT片子上看起來,像是右手肘的骨頭近端由於異常增殖變得膨大和磨玻璃化,擠到了旁邊的骨頭,於是當我做出類似打網球,反手的動作時,骨頭會卡住,骨頭相互摩擦,就發炎,疼痛,當我不做這個動作,就沒有問題,但是,經過這次檢查後,它並沒有像以前一樣的速度恢復,這次恢復的速度非常慢,大概在四個月之後,才逐漸好轉,而且變得更為脆弱。

    從小我就有各種奇怪的疾病,我記憶中的大概有肺炎,關節炎,肺結核,脊柱椎管內腫瘤,不在我記憶當中的,也聽父母說起過小時候經常往醫院跑,

    如葳君所說,這大概是一種考驗吧,他的電腦硬碟突然壞了,Mac的硬碟一般是很少壞的,何況是固態硬碟,而且他聽從我的指示,沒有將固態硬碟塞很滿,留出40G的空間,現在這種時候,出門很危險,去Apple店面進行維修,也是很麻煩的事情,他說他叫了一個上門維修服務,不知道有沒有幫助,曾經我叫他把所有的文件放到雲端,他不聽,覺得自己有移動硬碟備份,這下可好,上次備份是在過年前。


    隨著疫情逐漸嚴重,原本打算把觀賞奈飛相關的設備寄往台北,後來發現,各國海關的審查比之前嚴格了許多,台灣的海關在去年原本是可以很容易通關,後來推出了實名制,清關時間可能無法預估,想想算了,下次人肉帶去便是,不必急於一時,要不然萬一被海關扣下來不知道等到何年何月。