作者: ken

階段性任務完成 – 架設網站初階

No Comments

至此,我們早就已經成功架設一個網站了,基本的該有的應都有了。
而且截至目前為止,所有文章都圍繞著“架設網站”這一個主題,然而,我們已能夠做的事情,竟然遠遠超出我們的預期了!

因此本文將此前的所有文章列出,並條列出來我們已打造好的設施及功能。供(筆者)快速索引既有的設施。

簡單一句話,我們已有能力做到:可以使用手機或電腦,不管是透過 shell 或是桌面來遠端操控一台或多台實體主機或虛擬機,其主要是充當 SSL 網頁伺服器或反向代理伺服器,其可存取到分散在不同實體主機,雲端空間,乃或虛擬機內所存放的內容,其可呈現一個以上的不同網站,其使用平易近人的 WordPress 作為後台開發工具,其由 php 語言寫成並且憑藉已建立起來的完整的資料庫系統及其功能上的輔助,呈現您現在所看到的網頁在您面前。
並且這些機器還提供 SFTP 檔案伺服器及預時排程等管理維護的功能;而 Linux(Ubuntu)本身就是一個最強大的網管與開發平台讓網管員/開發者隨心所欲得心應手。

此外,例如
https://waterfalls.ddns.net/2020/01/24/階段性任務完成-架設網站初階/

https://waterfalls.ddns.net/階段性任務完成-架設網站初階
都可以開啟該文章,故我們以“階段性任務完成-架設網站初階”這樣的形式為內文標題並且可連結至該文章

hello-world

  • 鋤頭的第一篇文章
  • 命名本網站名稱是鋤頭。管理員是 Ken。

wordpress-的備份與還原

  • 使用 All-in-One WP Migration 外掛
  • 使用外掛:Insert PHP Code Snippet:無法套用到“程式碼區塊”及連結(link)內容
  • 安裝 Meld 比對工具
  • 待解:將備份回存(上傳)的檔案大小限制/512MB

踏出架站的第一步:安裝-ubuntu-virtualbox

  • 安裝 VirtualBox
  • 安裝 Ubuntu
  • Ubuntu 系統下的基本設定

安裝伺服器---lcmp

  • Linux/Caddy/Mysql/Php

安裝-php

  • 不只是 PHP,其他像 Python,SQL 等程式語言,想學的想運用的,它們已悄然地在您面前待命了。
  • php 最小安裝
  • 屬必要的附加套件列於此:
  • php-gd
  • php-bz2 php-curl php-fpm php-mbstring php-mysql php-xml php-zip

安裝-mariadb

  • 資料庫。不止是給 wordpress 用的,您的庫存管理,日常記事也都可透過資料庫來管理
  • 安裝 MariaDB
  • 建立 root 帳密

安裝-phpmyadmin

  • 最小安裝 Ubuntu’s phpmyadmin
  • 建立 phpmyadmin 帳密
  • 建立 /var/web 文件路徑
  • 設定 php.ini
  • 安裝 Composer
  • 安裝完整的 phpmyadmin by Composer
  • 安裝附加套件 php7.3-bz2 php7.3-curl php7.3-fpm php7.3-mbstring php7.3-mysql php7.3-xml php7.3-zip
  • 安裝 curl net-tools
  • 建立 wordpress 資料庫
  • 建立 wordpress 資料庫帳密
  • 待解:最小安裝 Ubuntu’s phpmyadmin,使用上出現的錯誤訊息

安裝-caddy-web-server

  • SSL 網頁伺服器。要架幾個網站都可以,只怕主機跑不來而已
  • 安裝 caddy

中場休息

  • 關於網址

架個-ftp-伺服器-vsftpd

  • FTP 檔案伺服器
  • 安裝 vsftp server
  • 建立集中的家目錄 /home/allftpusers
  • 建立共同的群 ftps,成員:ftp_wp,ftp_wordpress,www-data
  • 建立兩位(全域)使用者:ftp_wp,ftp_wordpress,且無法做 shell 登入
  • ftp_wp home:/home/allftpusers/ftp_wp/
  • ftp_wordpress home:/home/allftpusers/ftp_wordpress/
  • 建立 ftp_wp 帳密
  • 建立 ftp_wordpress 帳密
  • ftp_wp vsftp-home 是 /home/allftpusers/ftp_wp
  • ftp_wordpress vsftp-home 是 /var/web/wordpress
  • 待解:啟用防火牆後,vsftp 被擋掉

安裝-wordpress

  • 架站軟體/網頁設計與管理平台
  • 安裝 wordpress
  • 設定 http://localhost:8081/ 給 phpmyadmin
  • localhost:8080 給內部使用

網址的免費申請:no-ip

  • 申請免費的網址。一個 email 帳號可有三個免費的網址。不過此時,您或許更想花錢買個自己專屬的 hostname
  • 安裝 snapstore 的 noip-client

後半場暫停時間

  • 設定撥接寬頻機與 IP 分享器的 port forwarding

啟用-https

  • 啟用 Caddy web server 的 TLS/SSL 認證

virtualbox-port-forwarding

  • 外部 80 -> 內部 80 -> 內部 1025 -> virtualbox 80
  • 外部 443 -> 內部 443 -> 內部 1026 -> virtualbox 443

rdp---virtualbox-的遠端桌面

  • 使用 VirtualBox 自帶的遠端桌面
  • Virtualbox Remote Desktop Protocol
  • 設定各個虛擬機的遠端登入帳密
  • 安裝 snapstore Remmina
  • 解決 VRDP/VNC port 衝突
  • Linux,Android 等平台的用戶端連線

caddyfile-的四種使用情境

  • 筆者的認知,web server 特性是,URL 與內容的解析引導/後台語言的相容擴充性/各種協定的支援/加密與認證/負載平衡等。Caddy web server 功能齊全且應用簡單。
  • 情境一:本機架設 caddy web server 且啟用 TLS 認證
  • 情境二:VM 單純提供內容,故本機必須是 TLS on reverse proxy
  • 情境三:VM 提供內容且啟用 TLS 認證(同情境一),故本機必須是單純的 redirect(v) 或 caddy reverse proxy
  • 待解:情境四:VM 提供內容且啟用 TLS 認證(同情境一),故本機必須是單純的 redirect 或 caddy reverse proxy(v)。此情境失敗。
  • 以上,我們有實現了情境二的 TLS on reverse proxy,因此我們便能實現某台主機當成入口處的反向代理伺服器,再由它來分配/引導到不同實體主機,VM,甚至於雲端主機等,如此關於網址/內容對象/負載平衡等,便相當自由地運用。

安裝-openssh-server

  • SSH 是我們做遠端安全連線最重要的基礎設施
  • VM 建立 port forwarding 使能夠 SSH 連入 VM:外部 5902 -> 內部 5902 -> virtualbox 22
  • SCP 檔案傳輸
  • SFTP 檔案傳輸伺服器:使用(全域)帳號 ftp_wp,入口 /home/allftpusers/ftp_wp/uploads
  • 盡量能使用金鑰登入便用金鑰

安裝-x2go-/-mate-遠端桌面

  • 安裝遠端桌面伺服器 x2goserver,並安裝桌面套件 mate,如此我們便能夠在本地端使用 x2goclient 建立出(操控)遠端的桌面
  • 在 VM 內安裝 x2goserver,及 port forwarding,我們同樣能操控 VM 內的桌面

啟用防火牆-ufw

  • 以增加網路安全

預時排程-at-cron-anacron

  • 四種設施:at/crontab/anacrontab/自訂逾時提醒
  • 還記得免費網址須每三十天內回覆 mail 以續用嗎?萬一不常收 mail,並且我們加了自訂後,只要偶爾有開機就不怕錯過那時機了;(最簡單的做法,快逾期時)一旦開機,在桌面上便會産生個文件檔提醒我們
  • 還有例如網頁的備份,也是需要預時排程的幫忙才行的

nfs-網路檔案系統

  • 備而不用。若哪天需要,我們再手動繫結某處資料夾及設定客戶端與權限會快很多。

網站壓力測試-siege

  • 瞭解軟硬體平台的效能/網頁存取效能
  • 安裝 Siege
  • 安裝外掛 Export All URLs

git-用法

  • 進行中,待完成

建立手機與網站的溝通管道

  • 手機可以使用 cx 檔案總管,SFTP 到遠端主機
  • 手機可以使用 Termux SSH 連線到遠端啟動 VM
  • 手機可以使用 Remote RDP Lite 連線到 VM 的桌面
  • 安裝 Android app:Termux
  • 安裝 Android app:CX 檔案總管
  • 安裝外掛 WP File Manager
  • 安裝外掛 Media Library Folders for WordPress
  • 安裝 Android app:Remote RDP Lite

如此似乎都不缺了。我們可以專注致力於網頁的學習與開發了。不過不需要那麼嚴肅與保守,我們還可以玩轉得更豐富。若您的主機並非全職地當個網頁伺服器,筆者自己有裝一些應用供參考:

  • 4pane – 檔案總管
  • evolution – 收發郵件
  • filezilla – 檔案傳輸界面
  • flameshot – 截圖軟體
  • gdebi – 套件管理界面
  • libreoffice – 文書處理
  • radiotray – 線上廣播,推薦 Top Latino Radio 台
  • vlc – 播放軟體
  • 以下筆者沒裝,不過也推薦,非一般用途或是其他專業人員在使用的,讓大家看看 Linux 的天地有多廣(筆者自己想於此做記錄索引的)
  • android-studio
  • arduino
  • eclipse
  • flacon-tabetai
  • freac
  • freecad
  • gimp
  • google-webdesigner
  • handbrake
  • imagemagick
  • inkscape
  • kazam
  • octave
  • phoronix-test-suite
  • rhythmbox
  • selektor
  • shotwell
  • variety

接續呢?下個階段就是 html/css/php/sql/以及 wordpress 的編輯,多媒體編輯,外掛等的使用學習了。

Categories: 架設網站

PHP Code Snippets Powered By : XYZScripts.com