跳到主要內容

發表文章

目前顯示的是 4月, 2019的文章

網路卡卡急救章 – 您用的網路,您了解嗎 ?

這是我應該在乎的事情嗎 ? 是,同時也不是。取決於你對於網路的要求程度有多高而有變異。對於一個上上網偶爾看看Youtube的人,這些不是他會在乎的問題,便宜,能用就好,對一個線上遊戲玩家來說,穩定才是首要考量的問題,對一個追劇狂來說,方案提供的總流量才是考量。所以正在看文章的您是什麼樣的使用者呢 ? 無論怎麼樣的使用者,對於自己正在使用什麼樣的網路多了解一些,也不是壞事。

網路卡卡急救章 – 你所期待的和ISP認為的

大妹小妹,所以我的網路是幾妹 ? 妹,其實是Mega (百萬) 中文的懶惰講法或寫法,然而聽到了「我家網速100妹」,你的認知是…:

那就勇敢地走向網際網路 – Brave Browser

上網除了要安全,個人隱私近期也成為了一個十分受到矚目的問題,廣告商透過收集每個人的上網喜好,成為一項增加收益,也討好使用者的胃口。不曉得各位客官有沒有仔細注意過網頁上面出現的廣告跟你近期瀏覽的內容十分相關呢 ?

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/ 對應 ckip.x.x.

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類程式主動連線其他主機

Fedora 29 架站實務 之 Part 7 安全與權限問題

在前一個章節裡: Part 6 安裝phpMyAdmin

Fedora 29 架站實務 之 Part 6 安裝phpMyAdmin

在前一個章節裡: Part 5 MariaDB 開源版MySQL 如果時常架站的話,phpMyAdmin 應該是十分常聽到的一個MySQL管理工具,能夠透過網頁圖形化操作的方式來達成所有資料庫管理功能,比起使用 mysql cli 來的簡單,容易使用。 而以往安裝phpMyAdmin 需要自行下載phpMyAdmin 的php,自行加入網站資料夾中,然後在輸入/phpMyAdmin/setup/ 完成安裝。 不過Fedora 十分貼心的讓phpMyAdmin 的安裝自動化,而對於nginx 的設定掛勾,也完全全自動。 phpMyAdmin 的執行在Fedora 29 Server上的重要資訊: nginx 掛勾設定檔位置: /etc/nginx/default.d/phpMyAdmin.conf 實際網頁檔案位置: /usr/share/phpMyAdmin/ 設定、作業、快取之目錄: /var/lib/phpMyAdmin/ 預設與MySQL通訊方式: Local Unix Socket (/var/lib/mysql/mysql.sock) 安裝phpMyAdmin: # dnf install phpMyAdmin 修正權限: 雖然十分貼心但Script仍然有漏網之魚,/var/lib/phpMyAdmin 下的作業資料夾賦予給錯的擁有使用者與Group,還是設定成了apache # chown -R nginx.nginx /var/lib/phpMyAdmin/config # chown -R nginx.nginx /var/lib/phpMyAdmin/save # chown -R nginx.nginx /var/lib/phpMyAdmin/temp # chown -R nginx.nginx /var/lib/phpMyAdmin/upload 重新啟動Nginx: # systemctl restart nginx 這時候可以開啟您的網頁瀏覽器,輸入: http://[你的IP]/phpMyAdmin 輸入您資料庫的root帳戶與密碼,登入後應該會看到: 如果已經做到這裡了,恭喜了。 基本網站的需求軟體都已經設定完畢了。

Fedora 29 架站實務 之 Part 5 MariaDB 開源版MySQL

前情提要:  Fedora 29 架站實務 之 Part 4 安裝php-fpm

Fedora 29 架站實務 之 Part 4 安裝php-fpm

在前一個章節裡: Part 3 安裝 NGINX 網頁伺服器

Fedora 29 架站實務 之 Part 3 安裝 NGINX 網頁伺服器

在前一個章節裡: Part 2 一個方便作業的Fedora 29 Server

Fedora 29 架站實務 之 Part 2 一個方便作業的Fedora 29 Server

在前一個章節裡: A. 安裝完成 B. 設定好 root 密碼 C. 建立具 sudo 權限的帳戶 : ts D. 能夠存取網際網路 E. 有一個固定的公共 IP (134.x.x.136)

Fedora 29 架站實務 之 Part 1 安裝Fedora 29 Server

安裝作業系統,要了解什麼 ?: Well, that’s a simple enough question. 由於如何把一個作業系統安裝媒體讓電腦啟動的方式不勝枚舉,而且又是另一個Topic,故在這裡我不提及,未來有寫到相關文章我會再補上。大概查詢的方向如下: 我要怎麼知道我的電腦CPU型號是什麼 ? 我的CPU是什麼架構? 是32位元還是64位元? (arm32, arm64, x86, x86_64 or amd64…, etc.) 如何製作作業系統安裝媒體 ? 如何指定電腦的啟動裝置 ? UEFI 與 BIOS的差別 ? 磁碟的分割模式的差別 ? GPT 與MBR ? 而如果比較進階的使用者可能會想要用虛擬機器的方式執行時,大概的查詢方向如下: 如何知道我的電腦是否支援硬體虛擬化 ? 如果電腦不支援硬體虛擬化,會有什麼影響 ? 軟體虛擬化能到什麼程度 ? 怎麼啟用電腦的硬體虛擬化支援 ? 我應該選擇什麼軟體來作為我的Hypervisor ? 各個不同公司的Hypervisor 對於不同的作業系統支援的程度 ? Fedora 29 Server 的最低建議硬體需求: 1GHz 的 處理器 至少768MB的可用記憶體 10GB可用的磁碟空間 開始前請注意: 如果你只試著玩的,我們建議把Fedora Server 29 安裝在虛擬機器中,或至少在UEFI模式下啟動後安裝在不同硬碟,減少設定分割區與原本安裝的作業系統共存的問題。如果在MBR模式下且安裝再同一顆硬碟上不同分割區時,大部分的Linux 發行版安裝GRUB2開機程式時都會把原本的作業系統MBR開機程式紀錄直接覆蓋,例如先安裝Windows,後又安裝Linux時,會改變成GRUB2先被呼叫,再由GRUB2指向Windows Boot Loader。這會造成未來不想玩,移除Linux 分割區時,因為GRUB找不到開機設定檔案,造成無法透過GRUB啟動原本的作業系統,進而需要麻煩的MBR開機指引重建程序,當然我們也可以讓GRUB2只存在分割區中,並透過Windows Boot Loader + GRUB2指引去啟動但手續十分麻煩,而使用UEFI較MBR不麻煩的原因在於,僅只需要將EFI開機指令移除,相較於MBR比較好處理。 開機進入安裝