[[目錄]]
如果您在面板中遇到意外錯誤,您可能會被要求的第一件事是日誌。 要檢索這些內容,只需執行以下命令,該命令將輸出面板日誌檔案的最後 100 行。
tail -n 100 /var/www/pterodactyl/storage/logs/laravel-$(date +%F).log
當您運行上面的命令時,您可能會遇到一堵巨大的文字牆,這可能會嚇到您。不要害怕, 這只是導致錯誤原因的堆疊跟踪,實際上您可以在以下情況下忽略幾乎所有內容: 尋找錯誤原因。讓我們來看看下面的一些範例輸出,它已被截斷為 使這更容易遵循。
#70 /srv/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#71 /srv/www/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#72 {main}
[2018-07-19 00:50:24] local.ERROR: ErrorException: file_put_contents(/srv/www/storage/framework/views/c9c05d1357df1ce4ec8fc5df78c16c493b0d4f48.php): failed to open stream: Permission denied in /srv/www/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122
Stack trace:
#0 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'file_put_conten...', '/srv/www/vendor...', 122, Array)
#1 /srv/www/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents('/srv/www/storag...', '<?php $__env->s...', 0)
#2 /srv/www/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php(122): Illuminate\Filesystem\Filesystem->put('/srv/www/storag...', '<?php $__env->s...')
#3 /srv/www/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(51): Illuminate\View\Compilers\BladeCompiler->compile('/srv/www/resour...')
#4 /srv/www/vendor/laravel/framework/src/Illuminate/View/View.php(142): Illuminate\View\Engines\CompilerEngine->get('/srv/www/resour...', Array)
#5 /srv/www/vendor/laravel/framework/src/Illuminate/View/View.php(125): Illuminate\View\View->getContents()
您要做的第一件事就是沿著數字鏈向上移動,直到找到 #0 ,這將是函數
觸發了異常。在第 0 行上方,您將看到一行括號中包含日期和時間,[2018-07-19 00:50:24]
以上為例。該行將是人類可讀的異常,您可以使用它來了解出了什麼問題。
在上面的例子中我們可以看到實際的錯誤是:
local.ERROR: ErrorException: file_put_contents(...): failed to open stream: Permission denied in /srv/www/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122
從這個錯誤我們可以確定執行 file_put_contents() (opens new window) 呼叫時出錯,錯誤是
由於權限被拒絕,我們無法開啟該檔案。如果你根本不懂這個錯誤也沒關係,但是
如果您能夠提供這些日誌,並且至少找到錯誤的根源,它確實可以幫助您獲得更快的支援。
有時錯誤非常簡單,會告訴您到底出了什麼問題,例如 ConnectionException
當面板無法連接到守護程式時拋出。
如果您試圖快速解決一堆錯誤,您可以使用下面的命令,該命令將返回的結果限制為僅 是實際的錯誤行,沒有所有的堆疊追蹤。
tail -n 1000 /var/www/pterodactyl/storage/logs/laravel-$(date +%F).log | grep "\[$(date +%Y)"
systemctl status wings 檢查目前狀態
的過程。Ctrl + Shift + J(在 Chrome 中)或 Cmd + Alt + I(在 Safari 中)檢查瀏覽器的控制台。如果有
如果其中出現紅色錯誤,則很可能會縮小潛在問題的範圍。Admin -> Node -> Configuration。8080 或 8443 進行 HTTP(s) 流量,
2022 用於 SFTP 流量。wings --debug 以查看是否有任何錯誤輸出。如果是這樣,請嘗試手動解決它們,
或聯絡 Discord (opens new window) 尋求更多協助。nslookup 或 dig 等工具所期望的回應。A 記錄停用橘色雲。/etc/hosts 中新增一個指示的項目,有時會有所幫助
公共IP返回到伺服器。有時還需要反向路徑,因此您可能需要向您的
伺服器 /etc/hosts 檔案將面板的網域指向正確的 IP。::: 警告 如果您正確遵循我們的安裝和升級指南,則永遠不會發生此錯誤。我們唯一的時間 當您盲目地從備份中還原面板資料庫並嘗試使用新的資料庫時,您可能會遇到此錯誤。 面板的安裝。
恢復備份時,您應該_始終_恢復 .env 檔案!
:::
有時,在使用面板時,您會意外地遇到損壞的頁面,在檢查日誌時您會看到
解密時提到無效 MAC 的異常。此錯誤是由 .env 檔案中的 APP_KEY 不符所引起的
資料何時被加密與何時解密。
如果您看到此錯誤,唯一的解決方案是從 .env 檔案中還原 APP_KEY。如果你已經失去了它
原始密鑰沒有辦法恢復遺失的資料。
在安裝了 SELinux 的系統上,執行 redis 或嘗試連線時可能會遇到意外錯誤 到守護程式來執行操作。這些問題通常可以透過執行以下命令來解決 這些程式可以與 SELinux 一起使用。
audit2allow -a -M redis_t
semodule -i redis_t.pp
audit2allow -a -M http_port_t
semodule -i http_port_t.pp
現在 Wings 已成功運行,並且您已在“節點”頁面上獲得了綠色心形,“/etc/pterodactyl/config.yml”中的 Wings 配置將具有新值。 這些值之一是 DNS,預設為 1.1.1.1 和 1.0.0.1 如果您使用的主機封鎖 Cloudflare DNS,則必須使用不同的 DNS 伺服器;通常與您的主機系統所使用的相同。 您可以透過多種方式查看主機使用的 DNS 伺服器,具體取決於作業系統處理網路的方式。如果其中一種不起作用,請嘗試另一種。
# Network Manager (This will show both your IPV4 DNS and IPV6 DNS Servers in case you want to add the IPV6 DNS Server(s) from your host to your Wings Config as well.
nmcli -g ip4.dns,ip6.dns dev show
# Resolve-CTL (Newer Versions of Ubuntu)
resolvectl status
# Raw file locations that may have your host system's DNS Servers for various distributions
/etc/resolv.conf
/etc/network/interfaces
如果這會傳回與 1.1.1.1 和 1.0.0.1 不同的 DNS 伺服器,您需要編輯 Wings 'config.yml' 檔案以使用從命令傳回的 DNS 伺服器。如果除了 IPV4 DNS 伺服器之外,您還看到類似 IPV6 位址的輸出,請確保將其放入 IPV6 部分而不是 IPV4 部分。需要明確的是,如果您必須使用預設以外的 DNS 伺服器,請確保從 Wings 配置中刪除 1.1.1.1 和 1.0.0.1;不要只是新增伺服器,還要取代舊伺服器。
journalctl -xeu pteroqsystemctl restart pteroqphp /var/www/pterodactyl/artisan schedule:clear-cache - this page (opens new window) 會告訴你哪些版本的面板支援哪些版本的 phpsay test in the console for a Minecraft server, if the text "test" shows up in the console successfully, set the first task to say test,以便您知道它是否運行timedatectlnano /var/www/pterodactyl/.envnano /etc/pterodactyl/config.ymlsystemctl status mariadb - if it's not active, journalctl -xeu mariadbsystemctl status redis - if it's not active, journalctl -xeu redis (On some distributions the service will be named redis-server 取代)tail -n 150 /var/www/pterodactyl/storage/logs/laravel-$(date +%F).log | nc pteropaste.com 99``如果您使用的是安裝了 firewalld 的 RHEL/CentOS 伺服器,則您可能已損壞 DNS。
firewall-cmd --permanent --zone=trusted --change-interface=pterodactyl0
firewall-cmd --reload
執行後重新啟動 docker 和 wings 以確保套用規則。