跳到主要內容

發表文章

目前顯示的是有「linux」標籤的文章

FreeBSD 13 安裝實務

 FreeBSD 是什麼? : 說起 FreeBSD,也許你沒聽過。但 FreeBSD 的歷史與現在的影響,絕對遠超過你的想像。稱為作業系統界中不知名的巨人,絕對不為過。FreeBSD 是 BSD (Berkeley Software Distribution) - 一個基於 Research Unix 再開發的作業系統 的分支。簡單的說,FreeBSD 可以說是鼎鼎大名 AT&T Unix V5 的直屬後裔,FreeBSD 的穩定幾乎是不需質疑的。 它出現的地方,也許你意想不到: 喜歡玩遊戲嗎 ? 那你絕對聽過 PlayStation,無論你是不是它的粉絲,或者是恨它恨到入骨的 XBox 支持者,從輕巧的 PlayStation Portable / Vita ,到大的主機 PlayStation 3 / 4 / 5,他們的作業系統 (System Software) 正是 FreeBSD 再開發而成的。 蘋果的使用者嗎 ? 喜歡 Mac OS X (現稱 MacOS) 的穩定嗎 ? 從 MacOS / iOS ... 到 tvOS 等等,其使用的作業系統核心皆是 Darwin。你會發現 Darwin 借了許多,或甚至直接整合 FreeBSD 的核心功能。 FreeBSD 絕對不是玩具,但是個絕佳的工具: 相較於現今的 Linux 更走近個人電腦使用,許多發行版很注重 "開箱即用" 的體驗 - 圖形化的安裝過程,自動尋找驅動程式,安裝完成軟體全備妥在 Linux 發行版上似乎都快成了一種指標。除了少數有特別的核心宗旨的發行版 (例如: ArchLinux - 你怎麼說,我怎麼做),不太注重人性化安裝或設定的 Linux 已經十分稀少。但 FreeBSD 絕對不是這樣的作業系統,它在乎穩定與可控性,安裝程式只提供最基本的環境,剩下的設定與使用者心目中的 FreeBSD 那全部都是使用者必須自行指定 - 一切都要自己來,絕對不是安裝完就好。 且 FreeBSD 過往都是以伺服器環境為主,雖不代表現在的 FreeBSD 不適合做桌上型電腦作業系統,但請不要期待有如 Linux 般排山倒海的桌面軟體,也不要期待都有繁體中文介面,許多時後你會發現要完成的事情,或要執行的功能,沒有或不能透過圖形化介面完成。 不像 Linux,FreeBSD 目前沒...

Fedora 29 架站實務 之 Part 9 一機多站與DNS

相對於前面的幾個部分,一機多站的設定就相當簡單了。 在前一個章節裡: Part 8 SELinux、nginx 設定檔與網站哪裡放 ? 什麼是DNS ?: 當拿起手機想打給某人時,你會先去通訊錄找這個人的名字再請軟體撥出,還是直接開啟撥號鍵盤直接撥打完整的電話號碼呢 ? 相信大部分的情形都會選擇先開啟通訊錄,再撥號。 有意義的文字比起無意義的數字來的容易記憶也較為方便,但可惜的是在網際網路通訊系統中,實際上是看IP位址與各節點路由器的路由表來決定如何到達目的地的。這對上網可是一大不便,想想看當上網的時候還要輸入216.58.200.227來連上Google這是多麼麻煩的事情,所以便有了DNS。運作原理是當使用者輸入一個DNS名稱時,其規定的DNS伺服器會找出與名稱相對應的IP位置回傳給電腦,這樣使用者不需要辛辛苦苦地記得各個網站的IP位置,只要知道簡單的DNS名稱即可。 那一機多站… 這樣不是不合理嗎 ? 難道這樣不需要多個IP對應多個DNS位置嗎 ? 那麼多DNS位置對應到同一個IP位置,怎麼可能可以顯示不一樣的東西 ? Web Server 不是只有一台嗎 ? 其實只要注意一下一個正常的HTTP要求的指令,就會看出端睨: GET / HTTP/1.1 HOST: www.google.com.tw 是的,縱使DNS解譯出的IP位置一樣,但HTTP要求中含有HOST這行,足以讓網頁伺服器知道你要存取的是哪個DNS位置對應的網站。 在開始之前:  由於DNS名稱申請並非唾手可得,需要手續,且也不是本章的重點,故在此不論述。 為了實驗我們申請了兩組DNS位置: ckip.x.x.tw, dc.x.x.tw 兩組都對應到134.0.0.151,而機器也因本次Demo暫時從134.0.0.136 改為 134.0.0.151。 確認你的DNS位置是不是已經生效: $ nslookup [你申請DNS位置] 開始前請注意: 請先至少將Part 7與8看完,這裡我們將直接示範撰寫nginx 設定檔案。關於root 資料夾的規定與SELinux應該注意之事項,這裡不會再提及: 既然要一機多站,就不可能讓置放網頁的資料夾位置相同,於是我們作了以下規劃: /data/www/ckip/ 對應 ...

Fedora 29 架站實務 之 Part 8 SELinux、nginx 設定檔與網站哪裡放 ?

在前一個章節裡: Part 7 安全與權限問題 不就是一件很簡單的事情嗎 ? 直接放到/usr/share/nginx/html 下不就萬事OK了嗎 ? 但我想這個疑問也是一個剛切換到RedHat Based Linux 的疑問。我剛開始也不信邪,然而奇怪的問題接踵而至: 怎麼從其他地方移動到/html中的網頁都存取不了 ? 甚至最後搬出大絕招,資料夾擁有者改nginx,擁有者也改nginx,chmod 777 也無效。縱使突然好了,怎麼樣子都無法讓/html 中的php網頁執行寫入檔案動作。 It really grinds up my nerve. 難道Fedora 可以Bloody Cutting-Edge 到連Bug 都放這麼大嗎 ? 不,這是一個從其他Linux 發行版(尤其是Debian-based的),切換到RedHat Based Linux 的鬼打牆,一個無形警察: SELinux。 開始前請注意: 請不要隨意執行setenforce 0 或 透過 /etc/sysconfig/selinux 把 SELINUX=disabled,除非您在進行測試,否則在可能的情形下,以透過更改SELinux 規則或繞道法(我們等一下會提及)來讓您的網頁或程式能在SELinux 執行的模式下提供服務。SELinux 提供了您系統良好的安全性,是做為公開伺服器十分需要的條件之一。 What is SELinux ?: SELinux用來補足Linux 在權限上管理的不足,你可以對任何目標(例如應用程式、檔案、資料夾等) 規定十分嚴謹的規則,好比nginx / apache 這類的程式,都適用預先規定的httpd_xxx 的各種SELinux規則。 如果想要看SELinux 對於httpd 規定了哪些行為: # getsebool -a | grep httpd 接著我們來觀看html 資料夾套用的SELinux限制: # ls -lZ /usr/share/nginx | grep html 我們來看Nginx 的一些重要的預設SELinux 設定(會直接影響架站的): httpd_can_network_connect -->  off (是否允許httpd類程式主動連線...