2015年10月17日 星期六

[筆記] 變更預設使用 Xcode server/wiki/網站 的順序 Part 2

很久以前寫過一篇 「變更預設使用 Xcode server/wiki/網站 的順序」文章,介紹了怎樣把 Xcode server、wiki、網站的顯示順序變更,但好景不常,它…沒用了!

照著文章不管我怎麼調整,Xcode server 依舊先顯示了出來,所以只好來研究一下新版的伺服器做了什麼好事!畢竟都是基於 Apache 設定修改出來的,應該可以找到以前熟悉的東西!

首先找到網頁伺服器的設定目錄 "/Library/Server/Web/Config/apache2",看了一下目錄裡的檔案,有一個 ReadMe.txt 文字檔,先打開來快速瀏覽一下,Apple 也沒偷懶,這文件有重新寫成他們修改後的說明,裡面看到 Apache 的主要設定檔已改成 "httpd_server_app.conf" 了,所以問題看起來要在這裡面看看了!

先快速瀏覽一次檔案,直覺上看起來就是如果網頁伺服器服務打開,那伺服器就會把 "/Library/Server/Web/Config/apache2/sites/" 裡面的設定檔讀進來,如果網頁伺服器服務關閉,那伺服器就只需要把 "virtual_host_global.conf"、"0000_127.0.0.1_34580_.conf"、"0000_127.0.0.1_34543_.conf" 三個設定檔照順序讀進來。

先來來看看 "/Library/Server/Web/Config/apache2/sites/" 這個目錄裡面到底賣什麼藥,裡面的東西如下:
server:sites user$ ls -al
total 128
drwxr-xr-x  18 root  wheel   612 10 16 23:48 .
drwxr-xr-x  40 root  wheel  1360 10 16 23:50 ..
-rw-r--r--@  1 root  wheel  1583 10 16 23:48 0000_127.0.0.1_34543_.conf
-rw-r--r--   1 root  wheel  2256 10  4 08:14 0000_127.0.0.1_34543_.conf.default
-rw-r--r--@  1 root  wheel  1583 10 16 23:35 0000_127.0.0.1_34543_.conf.prev
-rw-r--r--@  1 root  wheel  1254 10 16 23:48 0000_127.0.0.1_34580_.conf
-rw-r--r--   1 root  wheel  2392 10  4 08:14 0000_127.0.0.1_34580_.conf.default
-rw-r--r--@  1 root  wheel  1254 10 16 23:35 0000_127.0.0.1_34580_.conf.prev
-rw-r--r--   1 root  wheel  2172 10  4  2014 0000_any_443_.conf.default
-rw-r--r--   1 root  wheel  5778 10  4 08:14 0000_any_443_.conf.orig
-rw-r--r--@  1 root  wheel  5778  9 10 09:11 0000_any_443_.conf.prev
-rw-r--r--   1 root  wheel  2307 10  4  2014 0000_any_80_.conf.default
-rw-r--r--   1 root  wheel  3978 10  4 08:14 0000_any_80_.conf.orig
-rw-r--r--@  1 root  wheel  3978  9 10 09:11 0000_any_80_.conf.prev
-rw-r--r--@  1 root  wheel   282 10 16 23:48 virtual_host_global.conf
-rw-r--r--   1 root  wheel   301 10  4 08:14 virtual_host_global.conf.default
-rw-r--r--   1 root  wheel   301 10  4 08:14 virtual_host_global.conf.orig
-rw-r--r--@  1 root  wheel   282 10 16 23:35 virtual_host_global.conf.prev

server:sites user$ ls -l *.conf
-rw-r--r--@ 1 root  wheel  1583 10 16 23:48 0000_127.0.0.1_34543_.conf
-rw-r--r--@ 1 root  wheel  1254 10 16 23:48 0000_127.0.0.1_34580_.conf
-rw-r--r--@ 1 root  wheel   282 10 16 23:48 virtual_host_global.conf
的確,修改一下網頁伺服器「索引檔案」實驗一下,每次修改索引檔案順序的時候,這三個檔案都會有新的版本。 看看檔案內容中,DirectoryIndex 真的有修改成我修改的順序,但是怎麼還是有問題?再次仔細看看內容,埠號好像怪怪的,埠號34543 似乎對應了埠號 443 的變更,埠號 34580 對應了埠號 80 的變更!怎麼會變得這麼奇怪呢?那其他的檔案有用嗎?上網拜一下谷歌大神,原來其他的檔案是舊版本使用的,從 Server 5.0.4 之後,就做了這個修改!那...只好來看看伺服器在什麼時候做了轉址的事了!

根據搜尋到的參考文章[1],知道有個 "/Library/Server/Web/Config/Proxy/apache_serviceproxy.conf" 需要關心一下,打開檔案來看看,在 "virtualhost" 裡面,看到它又參考了 "/Library/Server/Web/Config/Proxy/apache_serviceproxy_slash_default*.conf",而對應的目錄裡面只有 "apache_serviceproxy_slash_default.conf" 這個檔案,一打開它就知道應該是找到了!因為可以看到下面這些設定:
RewriteCond %{ENV:DEFAULT_SITE} =YES
RewriteCond %{ENV:WEBDAV_REQUEST} =NO
RewriteCond %{ENV:XCODE} -f
RewriteCond %{ENV:WIKI} -f
RewriteCond %{ENV:WEB} -f
RewriteRule "^/$"  "%{ENV:proto}://%{SERVER_NAME}/xcode" [R,L,E=nocache:1]

RewriteCond %{ENV:DEFAULT_SITE} =YES
RewriteCond %{ENV:WEBDAV_REQUEST} =NO
RewriteCond %{ENV:WIKI} -f
RewriteCond %{ENV:XCODE} -f
RewriteRule "^/$"  "%{ENV:proto}://%{SERVER_NAME}/wiki" [R,L,E=nocache:1]

RewriteCond %{ENV:DEFAULT_SITE} =YES
RewriteCond %{ENV:WEBDAV_REQUEST} =NO
RewriteCond %{ENV:XCODE} -f
RewriteCond %{ENV:WEB} -f
RewriteRule "^/$"  "%{ENV:proto}://%{SERVER_NAME}/xcode" [R,L,E=nocache:1]

RewriteCond %{ENV:DEFAULT_SITE} =YES
RewriteCond %{ENV:WEBDAV_REQUEST} =NO
RewriteCond %{ENV:WIKI} -f
RewriteCond %{ENV:WEB} -f
RewriteRule "^/$"  "%{ENV:proto}://%{SERVER_NAME}/wiki" [R,L,E=nocache:1]

RewriteCond %{ENV:DEFAULT_SITE} =YES
RewriteCond %{ENV:WEBDAV_REQUEST} =NO
RewriteCond %{ENV:WIKI} -f
RewriteRule "^/$"  "%{ENV:proto}://%{SERVER_NAME}/wiki" [R,L,E=nocache:1]

RewriteCond %{ENV:DEFAULT_SITE} =YES
RewriteCond %{ENV:WEBDAV_REQUEST} =NO
RewriteCond %{ENV:XCODE} -f
RewriteRule "^/$"  "%{ENV:proto}://%{SERVER_NAME}/xcode" [R,L,E=nocache:1]
這裡簡單來說就是它會根據目前的伺服器設定來決定要重新導向到什麼位置去,由於我啟用了 web + wiki + Xcode Server,所以如果瀏覽的網址上沒有指定位置或檔案,會直接導向至 Xcode Server!看起來這裡就是我的問題所在了!

另外從 "apache_serviceproxy_slash_default.conf" 這個檔案的時間來看,這個檔案似乎不會被更改,因為一直維持在我更新 Server 程式的時間,但未來 Apple 會不會再更新修改它,這就不掛保證了!

將 "RewriteRule "^/$" "%{ENV:proto}://%{SERVER_NAME}/xcode" [R,L,E=nocache:1]" 修改成 "RewriteRule "^/$" "%{ENV:proto}://%{SERVER_NAME}/" [R,L,E=nocache:1]" 之後重新開機完成修改(對!是重新開機,重開網頁伺服器看起來沒辦法~殘念!)

來來回回加上寫這個記錄也花了兩小時,Apple 真是讓人家傷腦筋阿!

Reference:
[1] Server 5.0.4 Default Ports Changes

2015年10月1日 星期四

[心得] 看不到的「我的照片串流」和「iCloud 照片共享」使用限制

今年暑假期間全家去南臺灣玩的時候,與老婆用 iPhone 6 和 iPhone 6 plus 拍了很多照片,由於帶了兩個小拖油瓶,當我抱著孩子的時候,自然不可能拿出我的手機出來拍攝,照片便是會存在老婆手機裡,反之亦然!

而且旅途中總是要跑很多的景點,所以就會有很多機會可以趁拉車的時候,做一些美美的照片拼貼,但問題來了,因為是使用不同的 Apple ID 帳號,所以我拍攝的照片並不會串流至老婆的手機上,老婆拍的當然也不會在我的手機上,所以當下實驗起了  iCloud 照片共享!

Apple 設計的使用方式挺簡單,使用方法不多說,超多教學文章可以參考,這裡要提的是使用上的限制。

Apple 的「照片串流」和「iCloud 照片共享」都受的 iCloud 的限制條件影響,iCloud 會限制每小時、每天或每個月內可以上傳至「照片串流」或「iCloud 照片共享」的照片數量,以防止不小心或濫用的情況,我幫忙整理如下:

「我的照片串流」上傳限制:
  • 每小時上傳到「我的照片串流」:1000 張照片
  • 每天上傳到「我的照片串流」:10,000 張照片
  • 每月上傳到「我的照片串流」:25,000 張照片
「我的照片串流」中的相片會存放 30 天,但是為了節省儲存空間,iPhone、iPad 和 iPod touch 只會在「我的照片串流」相簿中保存最近 1000 張照片,所以最好還是同步回家裡的電腦,比較不會遺失重要的照片!

「iCloud 照片共享」上限:
  • 每個共享相簿每小時來自所有協作人的照片和影片總數上限:1000
  • 每個共享相簿每天來自所有協作人的照片和影片總數上限:10,000
「共享相簿」總共可容納 5000 張(部)照片和影片,由於是分享 iCloud 上面的照片,並不會與「我的照片串流」上傳限制互相干擾!大概只要記得一小時內不要分享太多照片就好了!

另外「共享相簿」有一些額外限制:
  • 持有人可分享的共享相簿數量上限:100
  • 使用者可訂閱的共享相簿數量上限:100
  • 每個共享相簿的訂閱者人數上限:100(每個共享相簿的訂閱者人數)
  • 每個共享相簿來自所有協作人的照片和影片總數上限:5000
  • 共享相簿每一照片或影片的評論數量上限:200(評論可以是按「讚」或文字輸入)
  • 每則評論的字元數上限:200
  • 共享相簿持有人每日可傳送的邀請數量上限:200
很好玩的是 Apple 把這些限制分散在三個文件裡面,像是我老婆這種一般人,怎麼可能會去一堆文件中翻出這資訊來看!不過正常使用上我還沒遇過達到限制這種問題,大概要超重度使用者才會很容易踩到吧!

但其實…最容易遇到的是啟用了「iCloud 照片圖庫」之後,系統自動備份「照片」+「影片」至 iCloud 中,發生「空間不足」的問題,這 Apple 給的小小 5GB 免費空間怎麼夠用,但這個又是該用另一篇文章發表牢騷了!

參考連結:
「我的照片串流」FAQ
iCloud 照片共享 FAQ
iCloud 照片圖庫 FAQ
我的照片串流和 iCloud 照片共享限制