Apache mod_vhost_alias 大量虛擬主機設定

先前於研究 suPHP 時,有老師提出自動三級域名自動轉址之服務,例如 test1.example.com 會自動連結與 www.example.com/~test1 的網頁,而不需要做額外的 Virtual Host 或 alias 設定,如此一來各單位若有需要就不必再分別註冊 DNS record,而只需要註冊一筆 wildcard DNS 即可,例如   即可。

後來發現,Apache 不愧為一包山包海的軟體,連這樣的功能都有內建模組,就是 mod_vhost_alias 模組。將其啟動之後,可以於目錄下建立以下的設定檔:

其中 mod_vhost_alias 透過  設定導向之網頁目錄。

  代表網址的第一個部份,以 test.example.com 為例,解析出之資料夾即為 test,詳細用法可以參考 http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html 

以上的設定,於網頁瀏覽器送出連線的時候,Apache 就會跑去 /usr/local/www/apache22/vhosts 裡面找相對應網址的資料夾,同理可推我們或許可以設定為 /home0/<username>/public_html 之類的設定。

雖然應該不太常會用到,還是給各位參考一下~

Apache mod_vhost_alias 大量虛擬主機設定

Nginx + PHP-FPM on FreeBSD

閒著沒事幹就嘗試把 Apache 2.2 搭配 PHP-FPM 的架構轉移至 Nginx。

根據維基百科,Nginx 是一個高效率、輕量的 HTTP 伺服器,在靜態檔案的效能相當好,不過若是有處理動態網頁 (像是 PHP) 的需求,則一般透過 FastCGI 的模式執行。先前我們已經建置了 Apache + mod_fcgid 搭配 PHP-FPM 的架構,因此在這次的轉移中我們只要把 Apache 換成 Nginx 即可。

首先就是安裝 Nginx。

安裝 PHP-FPM 與設定的部份就不在詳述了,可以找先前的文章參考。

繼續閱讀 “Nginx + PHP-FPM on FreeBSD”

Nginx + PHP-FPM on FreeBSD

Pebble 智慧型手錶開箱

Pebble 是一個在 Kickstarter 群眾集資網站上成功集資的專案。不只成功集資,他還是該網站有史以來最高金額、受到最高關注的集資項目。專案一開始設定了十萬美元的集資目標,誰曉得在各大科技網站的報導之下,集資金額衝上了一千萬美元之譜,超過六萬人想要這隻手錶。

http://www.kickstarter.com/projects/597507018/pebble-e-paper-watch-for-iphone-and-android

受到了來自各方的壓力,該團隊改以一般量產的規格來打造這隻手錶,也因此進度十分緩慢,從我下訂到拿到手錶中間我等了至少一年,而中間也歷經了不少次的推遲。從這些現象其實可以看出群眾集資的概念如果套用到實際的商業市場上會有一些問題,特別是在這麼大量的情況下。我猜想他們公司一開始也沒想到會有這麼多的訂單近來吧,直到現在該網頁上的集資金額還是超出版面的,真的非常有趣。

在等了一年之後終於收到了包裹,於是就迫不期待 忽視期中考 來開箱一下囉。

For Android and iPhone
For Android and iPhone

繼續閱讀 “Pebble 智慧型手錶開箱”

Pebble 智慧型手錶開箱

網路本匿名,何處惹爭議?

剛好最近 ask.fm 很流行,觀察了一些問問題與被問問題的人的看法,想來紀錄一下我自己的感想。

我認為網路本來就是匿名的。不討論那種入侵 ISP 資料庫取得客戶真實身份的狀況,每個人在網路上也不過是一個躲在帳號/45度仰角自拍大頭照後面、對著螢幕敲鍵盤的人罷了,對也許從未見過面的另一個人來說,每個人都是匿名的,即使你常常使用某一個暱稱,常常使用某一張大頭貼,充其量也只能表示你應該是同一個人,而你是誰根本不重要。不過在這個連咖啡機都會有推特帳號的年代,還不一定保證帳號後面是人呢。

那麼,為什麼要假定匿名的人都是抱持著惡意、需要謹慎小心面對的態度呢?試問現在的網際網路有對任何非匿名帳號的行為有任何保證措施嗎?難道只因為在現實生活中會碰到面,該有的提防就不應該有了嗎?中國大陸最近要推網路實名化,而南韓才正要取消,而應該不只我認定無罪推定是普世價值吧。

其實滿多網路機構/名人會在 reddit 上面辦 AMA (Ask Me Anything),透過這些回答網友的問題,他們也可以收集到許多人們對活動、人的真正感受、想法。對舉辦活動的人來說,每個網友都是匿名的在提出問題,但這些問題的確都代表了某個人的聲音,這聲音不會因為他住在哪裡、他做什麼工作而產生差別,若是舉辦單位只在乎發問的禮節與網友的身份、身家背景,那這類活動就跟核四的說明會一樣,一點意義都沒有。

所以,我認為在 ask.fm 上面因為匿名所產生的一些令人不快的問題,只是單純的人性表達,只是大家真正想問的問題罷了。這些問題不會因為推行網路實名就消失,所以也沒有必要對這些問題不快,事實上能看到這些問題,也比它們的被默默的埋在某個人的心裡好多了。另外一點是,我認為沒有不對的問題,只有不適合的回答。如果因為認為一個問題高度太低、太沒禮貌而拒絕回答,那本質上也喪失了一個溝通的機會,而在網路上我認為這是很寶貴的。

開放匿名問答本來就要做好價值觀被衝撞的心理準備,若只是想單純回答自己覺得舒適的問題,那其實也沒有必要辦這種匿名問答的活動,因為在各種場合都可以問的才對。

蝙蝠俠曾說過:”Its not who I am underneath but what I do that defines me.”

最後我想補充一點,匿名不一定代表不想負責,如果這個環境讓人不敢說真話、說真話之後要付出沈重的代價,那是環境有問題,不是匿不匿名的問題。每天在各式各樣的新聞網頁下面可以看到 Facebook 留言區塊,而 Facebook 目前我認為是最接近實名制的網站了,我也不覺得那些問題是有善意到哪裡去。

讓我們回顧一下旺旺蔡董說過的:「記者有批評的自由,但是寫之前要好好想一想,避免寫一些會冒犯別人的侮辱。」誰來定義侮辱呢?禮貌到底是要求自己的標準,還是加諸在別人身上的沈重枷鎖呢?

總覺得這篇邏輯好怪,日後有空再來修吧,先紀錄起來怕之後忘記。

網路本匿名,何處惹爭議?

FreeBSD 建置 Apache + mod_fastcgi + php-fpm

近日在實驗 Apache 使用 FastCGI (mod_fastcgi) 搭配 PHP 提供的 PHP-FPM 網頁架構。

Apache 如果什麼都沒有動的話,應該預設是跑 prefork ,也就是預先 fork 一些子程序出來等連線,這樣的架構在大量連線的伺服器來說不是很穩定。更改編譯選項可以換成用 worker mpm 方式,如此一來 Apache 可以用 thread  的方式來執行,資源利用較有效率。

除此之外,PHP 的部份也可以改用 FastCGI 的方式來執行。

預設安裝的 mod_php5 的執行方式是由 Apache 呼叫,等待 PHP 程式執行完畢之後再一起輸出給使用者。若是使用 CGI 的方式來執行,則當 Apache 收到 PHP 執行需求的時候,會去叫起 php-cgi 這隻程式,等待其執行完畢之後再回傳結果。當然這也不是有效率的作法,因為一次只接受一個連線,若有多個連線要叫起一堆的 php-cgi。若採用 FastCGI protocol 的方式執行,php-cgi 這隻程式會成為一隻 daemon 在背景執行,隨時等待連線。

FastCGI protocol 在 Apache 裡面的實做方式有兩種,mod_fastcgi 與 mod_fcgid。前者發展較早,由 fastcgi.com 維護,fastcgi process 開起來之後會一直在後台跑,隨時接受連線;後者為 Apache 基金會自己的項目,目標是可以隨時動態增減 fastcgi process 的數量,一旦用完就殺掉,有效利用資源又不致於在 晚上 流量大的時候被打掛。關於這兩個的優劣並沒有絕對,各位可以上網搜尋相關資料。

繼續閱讀 “FreeBSD 建置 Apache + mod_fastcgi + php-fpm”

FreeBSD 建置 Apache + mod_fastcgi + php-fpm