Oracle 免費 VPS 架設 Nextcloud 雲端硬碟:Ubuntu 環境完整部署步驟

Published on: | Last updated:

嗯...想搞一個自己的雲端,又不想花錢。這件事,可行。

Google Drive, Dropbox 都很好用,但空間要大就要付費,而且資料都放在別人手上,總覺得...不太踏實。所以,很多人開始想自己架。目標很簡單:弄一個跟 Dropbox 一樣,但完全由自己控制、而且幾乎零成本的私人雲端。

答案,指向 Oracle Cloud 的免費方案,再搭上 Nextcloud 這個開源軟體。聽起來很複雜,但其實...嗯,一步步來,也還好。

先說結論,為什麼是 Oracle Cloud?

老實說,市面上一堆「免費」的雲端主機,但很多都只是試用期,或給的規格小到跑不動什麼東西。AWS、GCP 的免費額度規則又複雜,一不小心就收到帳單。

Oracle 的「Always Free」方案就直接很多。他們給的規格,剛好踩在一個「能用」的甜蜜點上。雖然不是讓你跑什麼大事業,但架個 Nextcloud 來同步手機照片、備份文件,夠了。真的夠了。

我整理了一下幾個常見的免費方案,你看完就有個底。

項目 Oracle Cloud (Always Free) AWS (Free Tier) Google Cloud (Free Tier)
CPU / RAM 給到 4 OCPU (ARM架構) 跟 24GB RAM 的總額度,可以開到 4台 1vCPU/6GB RAM 的機器。…這規格真的太扯了。 12個月免費,給 t2.micro 或 t3.micro。嗯,就是很入門的規格,時間到就沒了。 一台 e2-micro,也是很基礎,而且只在特定區域。流量費用要小心算。
儲存空間 總共 200GB。這對個人雲來說,超級夠用。45GB 只是舊的資料,現在給的更多。 30GB 的 EBS 儲存。算夠用,但也是 12 個月限定。 30GB 的永久免費空間。這點還不錯,但主機規格就那樣。
最大優點 規格大方,而且是「永久」免費。只要用量在額度內,就不用擔心帳單。 生態系最完整,如果以後想玩更多 AWS 服務,從這裡開始很順。 GCP 的網路品質普遍不錯,而且跟 Google 其他服務整合方便。
嗯...缺點是? 註冊要信用卡驗證,有時會刷不過。ARM 架構主機 (Ampere A1) 有些軟體相容性要處理,不過這篇教學沒這問題。 就是個試用包。12個月後,你得決定要不要付錢,不然東西就得搬家。 規則有點小複雜,很容易不小心就超額。主機性能...就真的只是讓你體驗一下。

結論很明顯了。如果你想長期、穩定地放著一個小服務,Oracle 的方案幾乎是唯一的選擇。

整個架構的示意圖,其實很單純。
整個架構的示意圖,其實很單純。

怎麼做:一步一步來

好,理論講完。開始動手。整個過程就像在組裝電腦,只是零件都是虛擬的。

第一站:Oracle Cloud 開帳號、建主機

這一步沒什麼技術,但有點繁瑣。

  1. 註冊 Oracle Cloud 帳號:去官網找「Always Free」方案。對,需要一張信用卡,他們會刷一筆小錢然後退給你,只是為了驗證你不是機器人。
  2. 建立 VM 執行處理:登入後台,找到「建立 VM 執行處理」(Create a VM instance)。
  3. 映像和資源配置:這步是關鍵。
    • 映像:點「編輯」,選 Canonical Ubuntu,版本選 22.04。Minimal 版更好,系統乾淨,資源吃得少。
    • 資源配置:重點來了,要選「Ampere」ARM 架構的處理器。免費額度主要是在這裡。你可以拉滿到 4 OCPU 和 24 GB 記憶體,但我們架 Nextcloud,其實 1 OCPU 跟 1GB 或 2GB 記憶體就夠跑了。省點資源,以後可能還能架別的東西。
    • 網路:先用預設的就好。記下它分配給你的「公用 IP 位址」。
    • 新增 SSH 金鑰:這裡要選「產生金鑰組」。它會讓你下載一個私密金鑰檔案 (.key)。這個檔案超級重要,立刻存好,丟了就連不進主機了。
  4. 建立:點下去,等它跑完。大概幾分鐘,你的雲端主機就在世界的某個角落開機了。

對了,選機房的時候,可以考慮一下。如果你在台灣,選日本(東京/大阪)或韓國(春川)的機房,物理距離近一點,理論上連線延遲會低一些。這是 Oracle 全球文件上不會特別跟你說的,但對我們來說,很有差。

第二站:連線進主機,做點準備

現在你有一個遠端電腦的 IP 和一把鑰匙 (SSH 金鑰)。我們要用這把鑰匙打開門。

用你的電腦打開終端機 (Windows 可以用 PowerShell 或 WSL)。指令大概長這樣:

# 把 'path_to_your_private_key' 換成你金鑰檔案的路徑
# 把 'your_ip_address' 換成你主機的公用 IP
ssh -i /path/to/your/private_key.key ubuntu@your_ip_address

看到歡迎訊息,就代表你進去了。像駭客任務一樣,但...沒那麼酷。

進去之後,先做幾件例行公事,跟搬進新家要先打掃一樣。

# 更新軟體包列表
sudo apt update

# 升級已安裝的軟體包
sudo apt upgrade -y

# 裝個 tmux,這東西很好用,等等會解釋
sudo apt install tmux
tmux

那個 `tmux` 是個好東西。它能讓你就算斷線,遠端主機上的任務還會繼續跑。對於這種要跑很久的安裝過程,先下 `tmux` 指令,就等於加了個保險。

第三站:蓋資料庫 (MariaDB)

Nextcloud 需要一個地方存檔案清單、使用者資料這些東西。所以要裝個資料庫。

# 安裝 MariaDB 伺服器
sudo apt install mariadb-server

# 跑一下安全設定腳本
sudo mysql_secure_installation

跑 `mysql_secure_installation` 的時候,它會問你一堆問題。基本上...設定 root 密碼,然後後面一路按 Y (Yes) 就好。移除匿名使用者、禁止 root 遠端登入...都是些好的安全習慣。

然後,我們要幫 Nextcloud 建立專用的資料庫跟使用者。

# 登入 MariaDB
sudo mariadb

# 底下是在 MariaDB 裡的指令
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'a_very_strong_password';
FLUSH PRIVILEGES;
EXIT;

記得,`nextclouduser` 可以換成你喜歡的名字,`a_very_strong_password` 一定要換成一個超強的密碼。記下來,等下會用到。

第四站:裝網頁伺服器 (Apache) 跟 PHP

有了主機、有了資料庫,現在需要一個「門面」,讓瀏覽器可以連進來。這就是 Apache 的工作。PHP 則是讓 Nextcloud 這個程式能跑起來的語言環境。

# 一次安裝 Apache 跟所有需要的 PHP 延伸套件
sudo apt install apache2 php php-apcu php-bcmath php-cli php-common php-curl php-gd php-gmp php-imagick php-intl php-mbstring php-mysql php-zip php-xml -y

# 啟用一些推薦的模組
sudo a2enmod dir env headers mime rewrite ssl

# 重啟 Apache 讓設定生效
sudo systemctl restart apache2

指令很長,但就是複製貼上。它會把 Apache 網頁伺服器跟 Nextcloud 需要的各種 PHP 工具包一次裝好。

裝好後,用 htop 看一下,資源吃得不多,這就對了。
裝好後,用 htop 看一下,資源吃得不多,這就對了。

第五站:主角 Nextcloud 登場

現在,把 Nextcloud 主程式下載回來,放到網頁伺服器看得到的地方。

這裡有個重點。原文作者提到他測試過,發現新版的 Nextcloud 在這種低規格的免費主機上跑得不太順。所以他推薦一個稍微舊一點但穩定的版本,例如 26.x。這點我同意,追新不一定是好事,穩定才重要。我們就跟著這個思路走。

# 下載 Nextcloud (版本號可以自己去官網查,但先用這個穩定的)
wget https://download.nextcloud.com/server/releases/latest.zip

# 需要 unzip 來解壓縮
sudo apt install unzip -y

# 解壓縮
unzip latest.zip

# 把解出來的 nextcloud 資料夾整個搬到網頁根目錄
sudo mv nextcloud /var/www/

# 變更擁有者,讓 Apache 有權限讀寫
sudo chown -R www-data:www-data /var/www/nextcloud/

第六站:最後的設定...有點煩,但很重要

快好了,剩下一些設定檔要修改。這部分最容易出錯,得細心點。

1. 設定 Apache:

我們要告訴 Apache,有請求進來時,要去 `nextcloud` 這個資料夾找東西。所以要建一個設定檔。

# 用 nano 編輯器建立新設定檔
sudo nano /etc/apache2/sites-available/nextcloud.conf

然後把下面這些內容貼進去:

<VirtualHost *:80>
    DocumentRoot "/var/www/nextcloud"
    ServerName your_ip_address

    <Directory "/var/www/nextcloud/">
        Options MultiViews FollowSymlinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

    TransferLog /var/log/apache2/nextcloud_access.log
    ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>

記得把 `your_ip_address` 換成你的主機 IP。存檔離開。然後啟用這個新網站設定:

# 啟用 nextcloud 設定
sudo a2ensite nextcloud.conf

# 停用預設的頁面
sudo a2dissite 000-default.conf

# 再次重啟 Apache
sudo systemctl restart apache2

2. 設定防火牆:

Oracle Cloud 的主機預設防火牆很嚴格,只開了 SSH (22) 的門。我們得手動把網頁服務的門 (80 for HTTP, 443 for HTTPS)打開。

# 開啟 80 port
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT

# 開啟 443 port
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT

# 儲存防火牆規則
sudo netfilter-persistent save

做完這一步,從外面才能連進你的網站。

第七站:瀏覽器裡的最終安裝

所有後台工作都做完了。打開你電腦的瀏覽器,在網址列輸入 `http://your_ip_address` (換成你的IP)。

如果一切順利...你會看到 Nextcloud 的安裝畫面。嗯,這時可以稍微喘口氣了。

  1. 建立管理員帳號:輸入你想設定的帳號名稱和密碼。
  2. 設定資料庫:底下有個資料庫設定。
    • 資料庫使用者:填 `nextclouduser` (或你剛才自訂的)。
    • 資料庫密碼:填 `a_very_strong_password` (你剛才設定的那個超強密碼)。
    • 資料庫名稱:填 `nextcloud`。
    • 主機:填 `localhost`。
  3. 完成安裝:點下去。它會跑一下下,然後可能會問你要不要安裝推薦的 App,可以裝。

然後...你就看到登入頁面了。恭喜,你的私人雲端,正式上線。

看到這個畫面,就代表成功了。
看到這個畫面,就代表成功了。

那...可以用自己的網域名稱嗎?

當然可以。一直用 IP 位址又難記又不安全 (HTTP)。如果你有自己的網域,可以把它指向這台主機,並加上免費的 SSL 憑證 (HTTPS)。

過程大概是:

  1. 買網域:去 Porkbun 或 Cloudflare Registrar 這種地方買一個便宜的網域。
  2. 設定 DNS:在你的網域管理後台,新增一筆 A 紀錄,指向你 Oracle 主機的 IP 位址。
  3. 安裝 Certbot:回到你的主機終端機,用 Certbot 這個工具來自動申請 Let's Encrypt 的免費 SSL 憑證。
    sudo apt install certbot python3-certbot-apache -y
    sudo certbot --apache
    Certbot 會引導你完成設定,幫你把 HTTP 自動轉到 HTTPS,很方便。

搞定之後,你就可以用 `https://your-domain.com` 來連線了。感覺專業多了。

現實檢查:VPS 效能限制與常見錯誤

免費的,很香。但還是要面對現實。這台主機的規格,就是拿來做「輕量級」應用的。

  • 效能期望:同步檔案、備份手機照片、線上編輯個 office 文件...都沒問題。但如果你想把它當成 Plex 伺服器,串流 4K 影片...嗯,它會罷工。請對 1-2GB RAM 的主機溫柔一點。
  • 記憶體不足:如果 Nextcloud 跑起來卡卡的,或是在安裝過程中出錯,八成是記憶體不夠。可以試著建立一個 SWAP 交換檔,拿硬碟空間來暫時充當記憶體,能稍微緩解問題。
  • 版本問題:就像前面說的,不要硬追最新版的 Nextcloud。在這種資源有限的環境下,找一個社群公認最穩定的版本,比新功能重要。
  • 防火牆擋路:如果瀏覽器一直轉圈圈連不上,90% 是防火牆沒設定對。回去檢查 Oracle Cloud 後台的「安全清單」(Security List) 跟主機裡的 `iptables` 規則,確定 Port 80 跟 443 都是開放的。

總之,它是一個很棒的玩具,一個實用的工具,但不是一個無限資源的商業級產品。有這個認知,你就會用得很開心。

輪到你了

如果你架了這套系統,你第一個會想拿來做什麼?是終於可以把手機裡那幾萬張照片備份出來,還是用來同步工作文件?在下面留言分享你的主要用途吧。

Related to this topic:

Comments

  1. profile
    Guest 2025-10-23 Reply
    我老實講,現在都用現成雲端比較多,比如Google Drive、OneDrive。真的懶得煩,就按一按就好了。自己架Nextcloud?有嘗試過啦,其實。我記得那時候帳號權限一堆細節要設,資料庫還要連接,一下搞這個一下搞那個,腦袋根本沒空閒下來。php.ini那些設定,每次都找不到要改哪邊,再加個防火牆規則,頭就更大了。 做到最後其實也沒覺得有什麼不同,該方便的還是差不多,不過麻煩是加倍跑出來。然後SSL憑證又要自己去調設定,看完文件才發現流程還蠻煩的。想想還是……算了吧,我反正就是懶,有得用雲端就先用著。
  2. profile
    Guest 2025-09-14 Reply
    學長,這份Nextcloud架站指南真的太佛心了!我最近正在研究自架雲端,剛好卡在PHP和資料庫設定的階段。能不能麻煩分享一下你的經驗,特別是那個防火牆設定的部分?感覺有點卡關...