最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

在 MediaWiki 中使用騰訊云 COS 對象存儲存儲圖像

2023-02-12 19:20 作者:檸檬BigLemon  | 我要投稿

前言

鄙人是某小MC服的服主,平常為了記錄服內(nèi)的破事和一些基本概念便選用了 MediaWiki 為服務(wù)器知識庫的框架,陸陸續(xù)續(xù)用到現(xiàn)在也有2個年頭了。

最近在日常維護(hù)摸魚的時候發(fā)現(xiàn)空間占用越來越大了。一查發(fā)現(xiàn) wiki 目錄下的 /images 文件夾占了 2.6 GB 多。

我用的是騰訊云(香港)的輕量云主機(jī),空間只有 30 GB。一直這樣下去 30G 的空間可能會越用越少。于是經(jīng)過一番資料查閱后,打算把圖片數(shù)據(jù)從 wiki 本體中分離開,遷移到騰訊云的 COS 對象存儲。

雖然我自己在建站這方面基本一竅不通,但還是這里寫個專欄記錄一下(免得以后忘了自己怎么操作的),除了給自己看以為希望能幫到有同樣需求的人。感覺中文互聯(lián)網(wǎng)上關(guān)于 MediaWiki 的教程還是偏少(為了搞短鏈接折騰了大半個月)。

特點

圖片如果存在 MediaWiki 默認(rèn)的附件目錄下,用久了以后占用會越來越大,再加上機(jī)子上還跑著朋友的網(wǎng)站,肯定不夠用,于是果斷轉(zhuǎn)用騰訊云 COS 對象存儲。

  • 圖片加載速度變快(取決于存儲桶地域)。我的主機(jī)在香港,更換后加載頁面圖片快了許多(存儲桶在上海,訪問是福州電信)。

  • 減少空間占用。遷移后站點只有 200 MB 了,比朋友的 XenForo 站點還少了很多。

  • 但是但是,存儲桶的費用需要額外支付,你可以購買資源包。

  • TTFB 會慢一些。使用 MemCached + PHP 操作碼緩存能起到優(yōu)化的效果。

圖片搬走后的大小,如果再把站點備份刪掉就19G左右了!

環(huán)境

圖方便所以用的是寶塔面板,文中以寶塔面板 + CentOS 為例示范。

  • MediaWiki 版本: 1.39.1

  • 寶塔面板版本: 7.9.7

  • 站點 PHP 版本: 8.1

  • Nginx 版本: 1.22.1

  • MySQL 版本:?5.6.50

  • 系統(tǒng): CentOS 7.6

  • 主機(jī): 騰訊云 輕量應(yīng)用服務(wù)器 香港(2C2G 30M)

開始安裝

使用騰訊云 COS 實現(xiàn)外部存儲需要使用到一款 MediaWiki 擴(kuò)展。GitHub 鏈接見下,根據(jù)頁面信息來看,支持 1.35 及以上的版本。我在 1.39.1 下實測一切正常。

https://github.com/RazeSoldier/MediaWiki-extension-QCloudStorage

有經(jīng)驗的站長可以直接進(jìn)入 GitHub 頁面安裝并配置。

但無論如何,操作前請備份!操作前請備份!操作前請備份!

插件安裝

這一步是下載擴(kuò)展本體。進(jìn)入寶塔面板的“文件”頁,切換路徑到你的 wiki 擴(kuò)展目錄下(/extensions),點擊“終端”按鈕??寺}庫,并等待命令執(zhí)行完成即可。

git clone https://github.com/RazeSoldier/MediaWiki-extension-QCloudStorage.git

GitHub 頁面

1、這一步是重命名。命令執(zhí)行完成后關(guān)閉臨時終端窗口。刷新頁面,擴(kuò)展目錄(/extensions)下會出現(xiàn)名為?mediaWiki-extension-QCloudStorage 的文件夾,將它重命名為 QCloudStorage。

2、這一步是安裝 PHP 依賴包,這一步很重要。擴(kuò)展除了本體以外還需要其他的 PHP 依賴包。切換至寶塔面板的“網(wǎng)站”頁,點擊你的站點。進(jìn)入“站點修改”窗口后,選擇 Composer 選項卡。

如果提示缺少 Composer 管理器,請安裝后繼續(xù)。選項卡內(nèi)的 PHP 版本根據(jù)你主機(jī)的實際情況選擇(我安裝了 2?個版本的 PHP),執(zhí)行用戶切換為 root?以避免權(quán)限不足。執(zhí)行目錄切換到?/extensions/QCloudStorage 下。也就是我們剛剛重命名的文件夾。

以上步驟都操作后,點擊綠色的“執(zhí)行按鈕”,開始安裝依賴,如果下載速度很慢可以切換為阿里源。安裝完成后寶塔會出現(xiàn)“安裝完成”的提示。安裝完成后,重啟 PHP。

Composer 選項卡

3、這一步是加載擴(kuò)展。進(jìn)入寶塔面板的“文件頁”,對?wiki 目錄下的 LocalSettings.php 文件進(jìn)行編輯。在其中添加以下內(nèi)容。


wfLoadExtension( 'QCloudStorage' );


加載擴(kuò)展后可在 wiki 的“特殊:版本”頁面中驗證是否安裝。

COS 配置

安裝步驟完成后,我們需要騰出手來確定 COS 的基本信息。請確保你了解以下關(guān)于 COS 的信息。

  • 存儲桶名稱(如 bucket-114514)

  • 存儲桶地域(如 上海、北京)

  • 騰訊云?SecretID

  • 騰訊云 SecretKey

存儲桶的權(quán)限模式不能是“私有讀寫”,“公有讀私有寫”或“公有讀寫”可以。此外,存儲桶最好離主機(jī)近一點。

存儲桶信息可在騰訊云控制臺內(nèi)查詢,SecretID 和 SecretKey 為騰訊云賬號 API 密鑰管理中的信息??梢允褂弥髻~戶也可以新建子賬號。

COS 信息概覽

配置

安裝步驟完成后,我們需要對 QCloudStorage 擴(kuò)展進(jìn)行基本的配置。請不要關(guān)閉?LocalSettings.php?的編輯窗口。接下來的操作依舊與?LocalSettings.php 相關(guān)。

1、在?LocalSettings.php?添加根據(jù)你的 COS 配置信息添加信息。只有添加注釋的行才能修改,其余的請一個字符也不要修改,注意大小寫。


$wgFileBackends[] = [

'name' => 'qcloud',

'class' => \RazeSoldier\MWQCloudStorage\QCloudFileBackend::class,

'wikiId' => 'wiki',

'bucket' => 'bucket-114514', // 你的存儲桶名字。格式: `<name>-<appid>`

'lockManager' => 'fsLockManager',

'viewpoint' => 'https://cdn.example.com', // 自定義域名,一般用不到,CDN?或者全球加速之類的才需要。如果不需要不要添加此行。

];

$wgQCloudAuth = [

'region' => 'ap-guangzhou',// 存儲桶地域

'secretId' => 'XXX', // 騰訊云 SecretID

'secretKey' => 'XXX', // 騰訊云?SecretKey

];


添加好以上參數(shù)后,保持并關(guān)閉文件編輯器。在“特殊:版本”頁面刷新,刷新沒有提示崩潰信息則說明配置無誤。

2、開始轉(zhuǎn)移舊圖像。進(jìn)入寶塔面板的“文件頁”,切換到 /maintenance 目錄下,點擊上方的“終端”按鈕,在終端窗口內(nèi)輸入以下內(nèi)容。


php copyFileBackend.php --src local-backend --dst qcloud --containers local-public


也許 PHP 會提示 "syntax error" 和 "PHP warning" 等,無需在意。在這之后出現(xiàn) "Copying file(s)..." 后就意味著文件開始像 COS 存儲桶轉(zhuǎn)移。具體的操作時間取決于你的主機(jī)上傳速率、已有的圖像大小。

如果發(fā)生錯誤,請檢查存儲桶信息配置、安裝 PHP 依賴包是否有誤。

我花了6個小時轉(zhuǎn)移。文件夾總大小雖然只有?2.6 GB,但里面的小文件、產(chǎn)生的略縮圖很多,建議掛在那。寶塔貌似頁面關(guān)閉終端也會斷開,擔(dān)心斷開的可以用 SSH 操作。

上傳圖片ing
上傳完成,晚上8點掛到第二天2點花了6個小時。

3、再次打開?LocalSettings.php 編輯窗口,在里面添加以下內(nèi)容。本段的任何文字都不需要修改。


$wgLocalFileRepo = [

'name' => 'local',

'class' => \RazeSoldier\MWQCloudStorage\QCloudRepo::class,

'backend' => 'qcloud',

];


保存并關(guān)閉編輯器,刷新頁面即可。

4、進(jìn)入騰訊云存儲桶“安全管理”選項卡中的“跨域訪問CORS設(shè)置”,按照站點信息添加規(guī)則。

添加規(guī)則
根據(jù)實際情況添加

這一步是為了避免以下情況做的,避免不對跨域進(jìn)行設(shè)置從而導(dǎo)致 MediaViewer 無法加載圖片。如果沒這個問題可以跳過這步。

問題癥狀

驗證是否生效的話,在已上傳文件里隨便找個圖片打開看看原鏈接是不是指向 COS 的就行了。但一般來說只要?$wgLocalFileRepo 添加在 LocalSettings.php 文件中就會立刻生效的,就算有問題你刷新頁面后也能發(fā)現(xiàn)。

確定一切沒問題后就可以刪除 /images 文件夾了。刪除后空間一下子多了起來,看著舒服多了,就 200 MB 出頭。

踩過的坑

  1. 配置后提示 MediaWiki internal error 和 QCloud not found 是為什么?

    PHP 依賴包安裝有誤。退回去看看那一步哪里出了問題。如果確定安裝后還是報錯,重啟 PHP 應(yīng)該能解決。

  2. 轉(zhuǎn)移舊圖像出錯是為什么?

    檢查 PHP 依賴包安裝是否有誤。如果無誤再檢查下輸入的命令有沒有問題?

  3. 轉(zhuǎn)移過程中可以有其他用戶編輯嗎?

    這我還真沒試過,但轉(zhuǎn)移時別讓用戶上傳文件,可以暫時禁用。編輯頁面和數(shù)據(jù)庫有關(guān),和圖庫反而沒啥關(guān)系,編輯頁面應(yīng)該不影響。但還是建議都暫時停一下。

  4. 為啥和 GitHub 頁面中步驟不一樣?

    我按照自己經(jīng)驗寫的,盡量把踩過的坑寫出來。。。按照原文也可以的嘿嘿

  5. 為啥我轉(zhuǎn)移完文件后圖片都沒加載出來?

    確定配置文件里的參數(shù)都沒問題,重啟 Nginx 看看。

  6. 配置好了,但是訪問速度變慢了?

    可以配置對象緩存可以緩解速度,使用 MemCached + PHP 操作碼緩存后網(wǎng)站的 TTFB?已經(jīng)與未配置 COS 時的速度接近(我這邊 3s~4s?左右,已經(jīng)是能接受的范圍內(nèi)了,未優(yōu)化的時候速度能到 15s?甚至更高)??梢詤⒖脊俜疥P(guān)于性能優(yōu)化的文檔,當(dāng)然具體為啥我也不太清楚(看 Issues 貌似是騰訊云那邊拉取對象耗時的原因)。。。

    https://www.mediawiki.org/wiki/Manual:Performance_tuning/zh

    如果可以的話,配置 CDN 也許也可以提升加載時間。


在 MediaWiki 中使用騰訊云 COS 對象存儲存儲圖像的評論 (共 條)

分享到微博請遵守國家法律
桃园市| 桦甸市| 白山市| 开江县| 华阴市| 子洲县| 芒康县| 桃园县| 新巴尔虎左旗| 许昌市| 永州市| 廊坊市| 隆化县| 桐乡市| 永善县| 循化| 历史| 平湖市| 甘德县| 常宁市| 昌宁县| 商河县| 张家川| 故城县| 长阳| 醴陵市| 宜君县| 萝北县| 滕州市| 遂宁市| 个旧市| 万载县| 天台县| 南和县| 三明市| 辛集市| 铜梁县| 新乐市| 龙泉市| 虞城县| 茶陵县|