大天使之劍H5遊戲超詳細圖文架設教程
引言
想體驗傳奇遊戲霸服的快樂嗎?想體驗滿級VIP的尊貴嗎?想體驗一刀99999的爽快嗎?各種極品裝備裝備、翅膀、寵物通通給你,就在大天使之劍!
本文講解大天使之劍H5遊戲的架設教程,想研究H5遊戲如何實現,體驗遊戲中秒天秒地秒空氣的一定不要錯過。
我搭建的大天使之劍遊戲連結:http://39.105.134.68:81,電腦和手機上都可完美執行,快來體驗一下吧。
遊戲截圖:
架設
1.架設條件
大天使之劍架設需要準備:
- linux伺服器,推薦centos7/8版本,可以考慮阿里雲騰訊雲等。
- 遊戲原始碼,關注我的公眾號echeverra,傳送“大天使之劍”獲取。
遊戲原始碼中我已去除掉廣告,並修復了GM、關閉遊戲等功能。
2.安裝寶塔
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
寶塔是一個伺服器運維管理軟體,我從最開始的LAMP到PHPstudy再到寶塔,發現寶塔真香!圖形化介面用起來是真的省心。安裝完後,會給出訪問的url、使用者名稱和密碼,記得儲存下來,訪問寶塔介面,如果無法訪問可能是由於伺服器沒有開放8888埠,參考第7條開放埠。
3.環境安裝
寶塔安裝完後,我們需要安裝一下游戲的執行環境:
- web伺服器:nginx 1.20
- 資料庫:mysql 5.6
- 程式語言:PHP 5.6、PHP 7.4
- 資料庫管理工具:phpMyAdmin 4.9
遊戲建站使用的是PHP 5.6,PHP 7.4是安裝phpMyAdmin的前置條件。
通過寶塔軟體商店進行安裝:
除了通過寶塔安裝的環境,還有需要通過命令安裝的環境。
安裝支援浮點運算的語言bc和庫檔案libnsl:
yum install bc
yum install libnsl
後續步驟中的執行命令均從終端選單中進入執行,不再截圖展示。
4.上傳原始碼並解壓
拿到遊戲原始碼後,解壓壓縮檔案大天使之劍,會得到angel和sql兩個壓縮檔案,將angel壓縮檔案上傳到伺服器根目錄。
上傳完後,選擇壓縮檔案angel並解壓到根目錄。
5.檔案許可權
解壓完成後,需要對解壓的目錄/data
和/www/wwwroot/angel
賦予完整777許可權。
或者通過命令授權:
chmod -R 777 /data
chmod -R 777 /www/wwwroot/angel
執行命令可能會提示.user.ini
檔案許可權無法更改,跳過即可,不影響架設。
6.匯入資料庫
先通過寶塔修改資料庫root密碼:0987abc123
建立h5和actor兩個資料庫,h5儲存了使用者相關資料,actor儲存了遊戲相關資料。
密碼不用修改,因為原始碼中使用的是root管理員賬號。
將遊戲原始碼檔案中的壓縮檔案sql解壓,得到兩個sql檔案,上傳並匯入對應資料庫。
匯入後,使root使用者可以從任何主機連線到mysql伺服器,執行命令:
mysql -uroot -p0987abc123
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '0987abc123' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '0987abc123' WITH GRANT OPTION;
flush privileges;
exit
7.開放埠
需要開放的埠:
- 寶塔:8888
- phpmyadmin:888
- mysql:3306
- 遊戲相關埠:81、5007、6007、7007、9007
伺服器開放埠,以阿里雲開放81埠為例,其他埠按照同樣方式新增,其他伺服器也在安全裡設定。
寶塔開放埠,同樣以81埠為例:
如果不開放埠,服務會無法訪問,如果對安全沒什麼要求,可以直接開放1-65535埠。
8.修改IP
原始碼中的IP是我自己虛擬機器的,需要替換成你自己的伺服器IP。
需要修改IP的檔案:
/www/wwwroot/angel/app1.php
/www/wwwroot/angel/login.php
/www/wwwroot/angel/config.php
/www/wwwroot/angel/game.php
/www/wwwroot/angel/login/cqlb/server.php
/www/wwwroot/angel/resource/main.min.js
/www/wwwroot/angel/login_bt.json
舉例修改angel/app1.php
檔案,其他檔案修改方式相同。
找到app1.php
雙擊開啟編輯模式,按Ctrl+F搜尋39.105.134.68,找到後替換成你的伺服器IP並儲存。
除了需要修改檔案的IP,還需修改資料庫h5中表server的IP欄位。
開啟phpmyadmin管理工具:
雙擊欄位修改IP,回車儲存:
9.建立遊戲網站
新增遊戲網站才能訪問H5遊戲,通過網站選單新增站點,域名寫你的IP:81,根目錄為/www/wwwroot/angel/
,PHP選擇5.6版本。
10.啟動遊戲
以上都執行完畢,那麼到了激動人心的啟動遊戲啦,啟動命令:
cd /data/
sh start_server.sh
正常啟動後會提示success,檢視監聽埠可看到5007、6007、7007、9007處在監聽中,那麼恭喜你可以開始遊戲啦。
netstat -lntp
11.開始遊戲
訪問遊戲連結:http://IP:81,使用你伺服器的IP。
可以開啟遊戲登入介面,恭喜你已經成功了第一步,然後註冊個賬號登入遊戲,點選開始遊戲,此時會停留在一個介面2-3分鐘時間,如下圖,這是由於一直在載入一個10MB+的檔案,耐心等待即可,第二次開始遊戲會讀取瀏覽器快取資料,無需等待。
填寫遊戲名稱,選擇職業,目前有三個職業,劍士、魔法師和弓箭手,遊戲中最後你將擁有三個職業,所以選擇哪個都可以。
最後,進入遊戲介面,恭喜你已經成功完成遊戲架設!
12.GM工具
遊戲自帶GM工具,也就是Game Master遊戲管理員,可以對遊戲進行充值,傳送裝備,經驗材料等功能,遊戲內建的充值已遮蔽了支付配置。點選左側GM懸浮按鈕,開啟GM介面。賬號填寫登入的賬號,不是遊戲人物名稱,元寶280代表充值月卡,滿級VIP10需充值200000元寶。
郵件收取GM郵件
直接滿級VIP,也就是2萬RMB的充值!
同樣你也可以單獨開啟GM介面進行操作,連結:http://IP:81/gm。
啊!無敵是多麼寂寞...
13.關閉遊戲
關閉遊戲執行命令:
cd /data/
sh stop_server.sh
執行後沒有提示,即代表關閉成功。為什麼沒有提示,因為沒有結果就是最好的結果。
後續
1.安全問題
架設中使用的資料庫是root賬戶,密碼0987abc123,這就相當於把資料庫暴漏了,知道IP就可以直接登入操作資料庫了,所以存在著很大的安全問題。
首先我想到的解決辦法就是修改root賬戶的密碼,將原始碼中所有0987abc123替換成自己的密碼,但是遊戲沒有執行成功,研究原始碼發現後臺的核心檔案gameworld_24_5
是加密的,會讀取GameWorld.txt
檔案中的配置:
--資料庫連線配置 SQL = { Host = "127.0.0.1", Port = 3306, DBName = "actor", DBUser = "root", DBPass = "jdusVRPm8XI+vYJb5gNZiw==" }, --0987abc123
後臺使用的資料庫密碼DBPass是0987abc123通過加密演算法得到的,不知道加密方式和加密key無法設定新的密碼,所以修改密碼這種方法是行不通的。
所以只能修改使用者名稱,對應三個資料庫h5、actor、log(後臺會自行建立log資料庫)建立對應的賬戶,密碼全部設定為0987abc123,只要不洩露賬戶名,資料庫還是安全的,而且不會影響到root下的其他資料庫。
對應修改原始碼中的資料庫配置,將root使用者名稱按照實際使用的資料庫修改為對應的賬戶名。如上面GameWorld.txt
檔案中修改的是actor資料庫,那麼就將root修改為actor資料庫的賬戶。推薦使用webstorm或vscode IDE可全域性搜尋並替換。
還需要執行架設第6條匯入資料庫中的命令,使三個賬戶可以從任何主機連線到mysql伺服器。
重新匯入檔案,運行遊戲成功,這樣就解決了資料庫的安全問題。
2.修改區名
修改區名需要修改兩處。
修改/data/gameworld/GameWorld.txt
檔案
修改資料庫h5中server表name欄位
關閉遊戲,重新啟動遊戲,否則有可能會報“不存在這個伺服器”錯誤。
3.關於原始碼
大天使之劍H5遊戲使用的是ajax和websocket通訊方式傳輸遊戲中的資料,主要使用shell命令、PHP、Lua、JavaScript等程式語言實現,可惜後臺核心檔案dbserver_24_5
、gameworld_24_5
、gateway_qiji_24_5
、loggerserver_24_5
都進行了加密處理,沒法進一步研究,但是其他的功能,特別是前臺對遊戲介面渲染的實現還是很有研究價值的。
以上就是大天使之劍所有的圖文架設教程,希望對你有所幫助,如有問題可通過我的部落格https://echeverra.cn和微信公眾號echeverra聯絡我。
你學“廢”了麼?