FreeBSD

openldap + ssl

[華語, cmn-Hant-TW] 基本上有了 Let’s Encrypt 之後,合格的 SSL 認證取得算是方便非常多,有些之前跳過檢查或是設定自簽 root 的處理方式都可以省掉了,不過有些東西還是要設定加上定時更新才會用的順暢 在 FreeBSD 上 security/ca_root_nss 這個 port 要先裝好,然後 /etc/ssl/cert.pem 就可以拿來用了,如果安裝時沒開啟這個連結的話,直接用 /usr/local/share/certs/ca-root-nss.crt 也是可以的,然後常用的一些套件就可以用這個 cert 了,例如帳號認證用的 net/nss-pam-ldapd,在 /usr/local/etc/nslcd.conf 裡面加上一行 tls_cacertfile /etc/ssl/cert.pem 的設定後就不會抱怨 ssl 是自簽的 (也就是 tls_reqcert allow 用不到了),其他的軟體,像是 php 之類直接吃 /usr/local/etc/openldap/ldap.conf 設定的也不難處理,直接加一行 TLS_CACERT /etc/ssl/cert.pem 就可以搞定,其他的設定也是類似這樣處理即可 當然了,因為 Let’s Encrypt 的認證時間只有幾個月,定期更新憑證是需要的,不然過期的話還是會吃一堆錯誤訊息的

galera cluster 與 FreeBSD

[華語, cmn-Hant-TW] 在 Galera 的官網看到 這篇,想說既然官方有出支援 FreeBSD 的新版,最近剛好有環境而且有用到的需求,就想說來試用看看,古早時候曾經用 ports 裡面的 databases/galera 弄了老半天沒成功,看現在有沒有比較簡單些 結論就是 galera + mariadb 可以跑沒問題,但是目前有些限制存在 因為 Codership 是直接放 port 檔,所以下載後用平常編譯 port 的方式編即可,理論上這些東西應該還是會直接進 ports 吧,到時候用起來應該會更方便才是,同一包裡面還有 mysql 5.6 跟 mysql 5.7 的 cluster patch,不過我打算用 mariadb 10.1 來試所以沒用到 (不過機器有些是 10.x 有些是 11.x) 基本上各台機器設定參考官網的…

letsencrypt.sh

[華語, cmn-Hant-TW] 之前在這篇提到了 Let’s Encrypt 的 SSL,用起來是很開心沒錯,不過因為官方的 client 是用 python 寫的,在 freebsd 下面得裝一大堆 py27-* 的套件 (當然,安裝 security/py-letsencrypt 時會自動一起被裝進去,不用手動一個一個裝) 才能用,然後申請的時候要把 apache/nginx 關掉放出 80 port,某種程度來講還蠻讓人困擾的,後來看到有人用 shell script 寫了一個比較沒那麼肥的 letsencrypt.sh,主要得另外安裝 curl 而已,也不用關掉 apache/nginx,看起來蠻理想的,而且也進 FreeBSD 的 ports 了 (security/letsencrypt.sh),抓來下用了一下感覺還不錯: 用 ports 安裝的話檔案預設會放在 /usr/local/etc/letsencrypt.sh 目錄下,然後因為預設的 $BASEDIR…

Let’s Encrypt + FreeBSD

[華語, cmn-Hant-TW] 免費的 SSL – Let’s Encrypt 終於到了公測階段,其實之前封測的時候就有先試玩看看,是可以用啦不過問題比較多,要一些小技巧還有設定才能跑,而且 FreeBSD 的 ports 也還沒出來,現在的話有進 ports 用起來就方便很多,直接裝 security/py-letsencrypt 就可以用了 裝好之後執行 letsencrypt certonly,輸入 e-mail 跟要申請的網域就可以了,申請的過程需要用 80 port 來驗證,所以要先把網頁伺服器暫時關掉,然後當然要申請的網址也要確實有指到這台機器上,這樣才能驗證成功,如果順利的話應該幾秒鐘就申請完成了 在 FreeBSD 下暫時還沒有支援 apache 跟 nginx 的整合,所以這邊要自己弄,所有 letsencrypt 的檔案都會放在 /usr/local/etc/letsencrypt 的目錄下,以 pighead.cc 網域來當例子的話,就會放在 /usr/local/etc/letsencrypt/live/pighead.cc/,裡面會有 symbolic link 建好的 cert.pem…

php 5.6 + apache 2.4 + laravel

[華語, cmn-Hant-TW] 最近把一些原本跑 php 5.5 跟 apache 2.2 的網站更新到 php 5.6 + apache 2.4,遇到了一些狀況,首先是 composer 在執行的時候噴出這樣子的錯誤訊息: The "https://packagist.org/packages.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failedThe "https://packagist.org/packages.json" file could not…

DigitalOcean 的 FreeBSD 支援

[華語, cmn-Hant-TW] 等好久 DigitalOcean 終於支援 FreeBSD 了,在 Presenting FreeBSD! How We Made It Happen. 裡面有簡單敘述怎麼達成支援的,總之就是現在可以直接開 FreeBSD 10.1 的 droplet 了,就跟其他的支援的 Linux distro 一樣,這應該是目前最簡單的架 FreeBSD 主機的服務了吧? 實際用下來的心得 開機器一定要提供 ssh key,系統不會寄 root 密碼信到自己的信箱,這對 FreeBSD 來講很自然,因為預設的系統根本就不開放 root ssh 啊,而這個 ssh key 事實上是給 freebsd 這個預先開好的帳號用的,這個帳號具有 sudo…

讓 netatalk 減少斷線的參數

[華語, cmn-Hant-TW] 最近又要複製很大的 Time Machine 備份,開給他跑整天結果第二天一看居然連磁碟都被退出了,在伺服器端看到這樣子的訊息: Dec 24 17:41:45 pitaya afpd[49716]: read: Operation timed out Dec 24 17:41:45 pitaya afpd[49716]: dsi_stream_read: len:-1, Operation timed out Dec 24 17:41:45 pitaya afpd[49716]: dsi_stream_read: len:0, unexpected EOF Dec 24 17:41:45 pitaya afpd[49716]: dsi_disconnect:…

linux-c6 及 sublime text 2

[華語, cmn-Hant-TW] FreeBSD ports 的 emulators/linux_base-c6 (CentOS 6.x) 已經出現很久了,但是有很長一段時間都是只有 base 沒有相關套件可用,要跑那些有的沒的 linux 軟體還是得靠 linux_base-f10 (Fedora 10),然而 Fedora 10 是一個很久之前就已經 EOL 的版本,裡面的一堆函式庫都太舊了,一些新的玩具像是 Sublime Text 根本就沒辦法跑。 之前就看到有在推要把 FreeBSD 預設的 linux_base 改成 c6 的計畫,以這個應用來講 CentOS 絕對比 Fedora 來得好,畢竟 Fedora 版號跳很快,舊版本 EOL 的也很快,要跟上很辛苦,CentOS 則是對應企業版的 RHEL,以…

跑 php 頁面讓 httpd 當掉

[華語, cmn-Hant-TW] 這問題卡了一段時間,但是因為也沒太緊急所以就有空的時候才來看一下問題在哪。 總之就是有一台 FreeBSD 11-CURRENT 在某次更新一堆套件之後 laravel 的特定操作就開始會讓 httpd 吃 segmentation fault 了。因為有用到不少套件所以一層一層的追下去發現是 finfo_open() 造成的,會用到這個函式只是要找檔案的 mime-type 而已所以也沒做太奇怪的事情,接著用 laravel 直接跑內建的伺服器模式做一樣的操作,發現也會吃 segmentation fault,那差不多就確定是 php 的問題了,自己寫了一個小程式只呼叫這個函式,用 cli 模式跑一樣炸掉,當下立刻把所有名字含 php55 的套件全部更新,因為 php 跑其他東西都沒當,所以想說應該是某個 php 套件爛掉,因為當掉跟圖形操作有關,一度還以為是 gd 造成的。 結果全部用 ports 重編之後… 照當,那問題就怪了,這時候就把另一台更閒的 FreeBSD 11-CURRENT 更新到最新同時跑 php… 居然沒有當?!對照一下兩邊函式庫安裝的目錄才發現有問題那台的目錄裡面有…

Write failed: Cannot allocate memory

[華語, cmn-Hant-TW] 在一台機器要 rsync 東西的時候,遇到這個訊息 Write failed: Cannot allocate memory 發現是傳大檔出問題,首先懷疑 zfs 造成的,但是記憶體還剩很多,而且 rsync 到同一台機器沒問題,丟到別台不管是哪台都會出問題,那大概就不是檔案系統的事了。找看看有沒有跟網路傳大檔有關的討論,結果在這篇裡面描述的情況跟遇到的狀況很類似,這台機器剛好就是有裝 VirtualBox 而且還有 VM 正在跑,接著在這篇裡面有提到解法: 在 /boot/loader.conf 裡面加上 net.graph.maxdata=65535 設好重開機之後,果然問題就解決了。 另外似乎 VirtualBox 用的網卡跟連外的網卡不同張的話就不會遇到這個問題,有人整理了一下放在這裡,有空的話再來試試這種設定。