更改 Plesk vhosts 資料夾的預設路徑,透過外部儲存空間來存放檔案

為什麼要更改 Plesk vhosts 資料夾的預設路徑?

你是否曾經遇到 Plesk 主機空間不夠導致服務無法啟動的狀況? Plesk 由於先天限制無法將檔案儲存於不同的 Partition,所以在持續使用 Plesk 的狀況下你唯一能夠做的選擇就是擴充你的儲存空間。

使用 Block Storage

如果你購買 AWS, GCP, Azure 這種可以隨需調整主切割區硬碟空間的廠商,你可以方便的調整硬碟空間,但是如果你是採購類似 DigitalOcean, Linode, Vultr 這樣的套裝方案廠商,那麼你的主切割區的空間就只能透過整台機器升級來做調整。因此在後者的狀況下會建議你使用它們的 Block Storage 服務,這種服務可以讓你隨意的動態調整一個外掛的儲存空間大小,你可以將你的 Plesk vhosts 資料夾放置在這個儲存空間,未來只要儲存空間不夠時你僅需調整這個儲存空間即可。要注意儲存空間都會需要重新開機才能夠生效,因此會造成部分的 downtime

Plesk 更換 vhosts 路徑指令

你可以使用指令 plesk bin transvhosts.pl --dest-dir /your-new-path --correct-scripts 來更改 Plesk vhosts 的資料夾預設路徑。

$ plesk bin transvhosts.pl --dest-dir /mnt/blockstorage/plesk-vhosts
Moving files to new directory...
Correct psa configuration file...
Correct passwd file...
Correct php-fpm pools configuration...
Correct Fail2Ban jails configuration...
File "/etc/fail2ban/jail.local" was stored successfully.
OK
File "/etc/fail2ban/jail.local" was stored successfully.
OK
Correct database...
Update hosting settings...
done
Update subdomains settings...
done
Update system users settings...
done
Update aps resources parameters...
done
The service node 'local' was successfully updated.
Reconfigure aps applications...
done

以 Vultr 主機調整 Plesk vhosts 位置

  1. 在 Vultr 新增 Block Storage

  1. 將 Block Storage Attach 至目標主機

  2. SSH 至目標主機掛載 Block Storage

Create new empty partitions:
# parted -s /dev/vdb mklabel gpt
# parted -s /dev/vdb unit mib mkpart primary 0% 100%

Create new empty filesystem:
# mkfs.ext4 /dev/vdb1

Mount block storage:

# mkdir /mnt/blockstorage
# echo >> /etc/fstab
# echo /dev/vdb1               /mnt/blockstorage       ext4    defaults,noatime,nofail 0 0 >> /etc/fstab
# mount /mnt/blockstorage
  1. 使用 df -h 指令確認掛載狀態
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vdb1       1.3T   77M  1.3T   1% /mnt/blockstorage
  1. 使用 Plesk transvhosts 指令轉移 vhosts
$ plesk bin transvhosts.pl --dest-dir /mnt/blockstorage/plesk-vhosts --correct-scripts

參考資料: