apache

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…

OS X Server 5 的 Xcode 服務

[華語, cmn-Hant-TW] 有一台機器是用 OS X Server 4.x 架設的,上面提供基本的 redmine/git/svn 服務,使用上沒什麼問題,不過自從升級到 OS X Server 5 之後就變得怪怪的了,一開始除了 redmine 正常外 git/svn 完全不能動作,直接下 git 指令才發現是因為同時升級的 Xcode 7 要先同意條款才能使用,這個問題解決之後 redmine 裡面就可以正常瀏覽 git 跟 svn 檔案庫的內容了,不過奇怪的是遠端存取檔案庫的時候 svn 可以動,但是 git 就一直吃 503 Service Unavailable 看了一下才發現原來 Server 5…

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…

跑 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… 居然沒有當?!對照一下兩邊函式庫安裝的目錄才發現有問題那台的目錄裡面有…

OpenSSL 版本差異造成 HTTPS 出問題

[華語, cmn-Hant-TW] 新灌好的 FreeBSD 10 機器上設定好 apache,要用 https 提供 svn 服務,結果在某些機器上吃到這樣的問題 svn: E120171: Error running context: An error occurred during SSL communication 原因不明,有趣的是有問題的那幾台機器用 svn 1.7 + neon 的話似乎是可用的,但是 svn 1.8 + serf 就炸掉了。 再測試一下發現也不是每個軟體都會有問題,curl 活得好好的,w3m (文字模式的網頁瀏覽器) 連線就炸掉了,吃到的錯誤訊息長這樣: SSL error: error:14077458:SSL…

dotMac

[華語, cmn-Hant-TW] 很久之前有看過的 notMac,因為要配合作者的 ftp 伺服器軟體,然後又不支援 Leopard,後來就等於是沒在動了。 不過用類似方式,在  apache + mod_perl 上實作的 dotMac,可是一直在發展著呢,之前只能用 svn 抓 source code 回來安裝,現在有包好的 package 可以下載了。 一直沒有時間去試 dotMac,之後有空的話應該要來試看看的,如果說他們可以直接支援 ldap auth 的話會更好 (不能的話就自己動手寫了,啊就perl 啊……)。

Apache 的 mod_proxy

[華語, cmn-Hant-TW] 用 mod_rewrite 可以解決掉大半在同一台伺服器上轉來轉去的問題,而因為我們大部份的網頁都是放在同一台機器同一個網址下面,一切運作正常。 不過在幫王韋中做轉址的時候就有轉到外面機器的需求,而如果用 mod_rewrite 的話外部轉址是會用轉向 (redirect) 的方式,那網址會跑到那邊去,這樣並不符合需求。 網路上找了找,找到了這篇和這篇,看來用 PorxyPass 來轉址應該就可以了,然後我們的 apache 當然是沒有加 mod_proxy 啦,重編就解決了。 然後在 httpd.conf 裡面加了這行: LoadModule proxy_module libexec/apache22/mod_proxy.soLoadModule proxy_module libexec/apache22/mod_proxy.so 結果吃了個 403,看了一下 log 發現了這個警告: [warn] proxy: No protocol handler was valid for the URL /a.…