# 舊版升級

本升級指南適用於 從 0.7.X 升級到 1.3.x。如果您嘗試在 1.X 面板上進行升級 請use this guide instead。在此升級過程中,您將經歷一些時期 面板不可用,但是不會停止任何底層遊戲伺服器實例。

# 進入維護模式

在開始之前,您需要透過執行下面的 down 命令將面板置於維護模式。這 將阻止使用者在發生故障或無法正常工作期間存取面板。執行命令時請確保您位於 /var/www/pterodactyl 目錄中。

# Put the Panel into maintenance mode and deny user access
php artisan down

# 更新依賴項

在執行此升級之前,您需要確保系統相依性是最新的。請 reference the list below to ensure you have all of the required versions.

  • PHP 8.08.1 (建議),具有下列副檔名: cliopensslgdmysqlPDOmbstring 如果您打算使用 nginx,請使用 tokenizerbcmathxmldomcurlzipfpm 。請參閱我們的指南 Upgrading PHP 了解詳細資訊。
  • Composer v2 ( composer self-update --2 )

::: 警告 Nginx 如果您升級 PHP 版本並使用 nginx 作為 Web 伺服器,則必須更新 nginx 的 pterodactyl.conf 配置中的 fastcgi_pass 值以使用正確的 php-fpm 套接字。 :::

  • MySQL 5.7.22 或更高版本(推薦 MySQL 8 MariaDB 10.2 或更高版本。

::: 警告說真的,請仔細檢查您的資料庫版本 請確保您正在執行的是上面列出的正確版本的 MariaDB 或 MySQL!如果不這樣做_will_ 當您嘗試執行遷移時會導致錯誤。

先前的文件(以及該軟體的年齡)可能會讓您安裝 MariaDB 10.1,但不會 work_ 與這個版本的翼手龍。 :::

# 取得更新的文件

更新過程的第一步是從 GitHub 下載新的面板檔案。下面的命令將下載 最新版本 Pterodactyl 的發布存檔並將其保存在當前目錄中。現在正是好時機 確保您位於 /var/www/pterodactyl 目錄中,因為下面的命令將自動解壓縮存檔 進入您目前的資料夾。

我們也會刪除 app/ 目錄。由於我們處理安裝和升級已刪除檔案的方式 並不總是能正確檢測到,因此簡單地在此位置上打包將導致一些令人困惑的行為。

# Delete the app directory to ensure we start with a clean slate here. This will not affect any
# of your settings or servers.
curl -L -o panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
rm -rf $(find app public resources -depth | head -n -1 | grep -Fv "$(tar -tf panel.tar.gz)")

# Download the updated files and delete the archive file.
tar -xzvf panel.tar.gz && rm -f panel.tar.gz

下載完所有檔案後,我們需要對快取和儲存目錄設定正確的權限,以避免 任何與網頁伺服器相關的錯誤。

chmod -R 755 storage/* bootstrap/cache

# 更新依賴項

下載所有新檔案後,您將需要升級面板的核心元件。為此, 只需運行以下命令並按照任何提示進行操作即可。

composer install --no-dev --optimize-autoloader

# 清除編譯模板快取

您還需要清除已編譯的模板緩存,以確保新的和修改的模板正確顯示 用戶。

php artisan view:clear
php artisan config:clear

# 資料庫更新

您還需要更新最新版本的 Pterodactyl 的資料庫架構。運行下面兩個命令 將更新架構並確保我們提供的預設 Egg 是最新的(並添加我們可能擁有的任何新 Egg)。只是 請記住,永遠不要編輯我們運送的核心蛋!它們將被此更新過程覆蓋。

::: 警告 如果您使用允許在 0.7 上進行伺服器傳輸的自訂插件,您必須刪除或重新命名 server_transfers 表 在繼續之前。 :::

php artisan migrate --force
php artisan db:seed --force

# 設定權限

最後一步是將檔案的正確擁有者設定為運行網頁伺服器的使用者。大多數情況下這 是 www-data 但可能因係統而異 — 有時是 nginxapache ,甚至是 nobody

# If using NGINX or Apache (not on CentOS):
chown -R www-data:www-data *

# If using NGINX on CentOS:
chown -R nginx:nginx *

# If using Apache on CentOS
chown -R apache:apache *

# 重新啟動隊列工作線程

每次更新後,您應該重新啟動佇列工作程序以確保新程式碼已載入並使用。

php artisan queue:restart

# 退出維護模式

現在升級已完成,退出維護模式,您的面板現在將可用。

# Bring the Panel back up to receive connections.
php artisan up

# 切換到翅膀

我們已經棄用了舊的 Node.js 守護進程,轉而使用我們的新伺服器 Wings (opens new window) 用 Go 寫的控制平面。這個新系統速度明顯更快,更容易安裝,而且更小。所有的你 需要做的就是在系統上安裝一個二進位檔案並將其配置為在啟動時運行。 **您不能使用舊的 Node.js 使用 Pterodactyl Panel 1.0 執行伺服器的守護程式。 **

請參閱 Migrating to Wings 了解說明。