「自由時間戦争」またはBF2サーバー+オフィスの統計

良い一日Habraコミュニティ!
今日は、BattleField 2ゲームサーバーをインストールして構成し、ローカルプレーヤーの統計情報を関連付ける方法を説明します。


サーバー:
HP ProLiant ML350 G5
インテル®Xeon®5160
8 Gb RAM ECC
OS Ubuntu 12.04 LTS(GNU / Linux 3.2.0-23-generic x86_64)

ここに私の目を引いたそのような無料のマシンがあります。 構成を見て、Webサーバー、データベース、およびそれに応じてゲームサーバーを1台のマシンで処理することにしました。

OSのインストールについては説明しません。必要なパッケージから始めます。
Webサーバー、データベース、およびWebサーバーのバインディングを機能させるには、Apache、MySQL、PHP、および統計が必要です。apacheモジュールはASMスクリプトの実行をサポートしています。

便宜上、サーバー部分のすべてをシステムのルートにある別のディレクトリに保存します。
sudo mkdir /server cd /server sudo mkdir site sudo mkdir bf2 

Webサーバー、PHP、MySQLのインストール

それで、インストールを始めましょう:
 sudo apt-get install apache2 apache2-mpm-prefork apache2-utils apache2-suexec libapache-asp-perl php5 php5-mysql libapache2-mod-php5 php-pear mysql-server mysql-client libmysqlclient15-dev 

*インストール中に、MySQLサーバーはパスワードの入力を求めます。

仮想ホストをセットアップします。

現時点では、完全に機能するWebサーバーを取得する必要があります。 ローカルネットワーク上のコンピューターから任意のブラウザーを介してサーバーのIPアドレスにアクセスして確認します。 画面に、すべてが正常に機能する場合、 「It、works!」という碑文が表示されます。

仮想ホスト構成ファイルを変更します。
 sudo nano /etc/apache2/sites-available/default 

ファイルの内容を消去し、新しい仮想ホストを挿入します。
 <VirtualHost .IP.:80> ServerAdmin somemail@some.ru ServerName .IP. ServerAlias .IP. DocumentRoot /server/site ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ </VirtualHost> 

これで、サイトのあるフォルダーは/server/siteます。

BattleField 2サーバーをインストールして構成する

この段階では、問題がありました=) EAのサイトで戦闘のサーバー部分を見つけることができなかったため、 bf2-linuxded-1.5.3153.0-installer.shファイルをインターネットで探し回る必要がありました。

bf2-linuxded-1.5.3153.0-installerファイルをダウンロードします。
 sudo wget ///bf2-linuxded-1.5.3153.0-installer.sh 

ダウンロードが完了すると、インストールは次のようになります。
 sudo chmod +x bf2-linuxded-1.5.3153.0-installer.sh sudo ./bf2-linuxded-1.5.3153.0-installer.sh 

インストール後、サーバー構成を編集します。
 sudo nano /server/bf2/mods/bf2/settings/serversettings.con 

構成ファイルのおおよその内容とそれに必要な変更:
 sv.serverName "" //  sv.password "" //   sv.internet 1 // 1,     . sv.serverIP "XX.XX.XX.XX" //  sv.serverPort 16567 //      sv.welcomeMessage "" //  sv.punkBuster 1 // punkBuster sv.ticketRatio 100 // 100       sv.roundsPerMap 3 //   sv.timeLimit 1800 // , 1800  = 30  sv.scoreLimit 0 //    sv.autoBalanceTeam 1 //  sv.useGlobalRank 1 sv.useGlobalUnlocks 1 //  . sv.friendlyFireWithMines 1 //    

それは基本的にすべてです...起動する準備ができました!
これで、サーバーを起動して再生を開始できます。 しかし、ランクとプレーヤーの完全な統計が必要な場合は、続きを読んでください...

サーバーに統計をインストールする

統計については、 www.bf2statistics.comからダウンロードできるスクリプトを使用できます。
BF2Statistics 1.5.1ファイルをダウンロードする必要があります(必要なのは、サイトに登録してファイルにアクセスすることだけです)。
アーカイブコンテンツ-
クライアントファイル
サーバーファイル
Webファイル

最も単純なものから始めましょう。
データベースのセットアップ。
 mysql -u root -p CREATE DATABASE `bf2stats` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; 

ベースの準備ができました!

Pythonパーツのセットアップ

サーバーファイルフォルダーから、 サーバーのフォルダー(/ server / bf2)にコンテンツをコピーし、それぞれファイルを置き換えます。

ファイル/server/bf2/python/bf2/BF2StatisticsConfig.pyの編集
 sudo nano /server/bf2/python/bf2/BF2StatisticsConfig.py =========================================================== # ------------------------------------------------------------------------------ # Backend Web Server # ------------------------------------------------------------------------------ http_backend_addr = '.IP.' http_backend_port = 80 http_backend_asp = '/ASP/bf2statistics.php' # ------------------------------------------------------------------------------ # Player Manager # ------------------------------------------------------------------------------ pm_backend_pid_manager = 1 pm_local_pid_txt_file = 'python/bf2/pid.txt' # Relative from BF2 base folder pm_ai_player_addr = '.IP.' # Not recommended to change 

保存します。

ASPセットアップ


ASPフォルダーと、 bf2scloneディレクトリーのすべてのファイルを、Webファイルディレクトリーからサイト(/ server / site)のディレクトリーにコピーします。これは、FTPサーバーとmcファイルマネージャーを使用して行いました。

権利で急上昇しないように、/ server / siteフォルダーにアクセス権777を設定します。
 sudo chmod 777 -R /server/site 

セキュリティが重要な場合、サーバーに必要な777権限を持つファイルのリストは次のとおりです。
/ASP/_config.php
/ASP/_config.php.bak
/ Asp / _backup
/ ASP /ログ
/ ASP /ログ/ _processed

統計のASP部分を構成します。
/server/site/sys-games/ASP/system/config/config.phpの編集
 sudo nano /server/site/sys-games/ASP/system/config/config.php =============================================================== $db_host = '.IP.'; #    $db_name = 'bf2stats'; #    $db_user = 'root'; #    $db_pass = 'my_pass'; #    $admin_user = 'admin'; #    $admin_pass = 'admin_password'; #    $admin_hosts = array('127.0.0.1','.IP./'); # IP   IP       Web- $stats_lan_override = '.IP.'; $stats_local_pids = array('LocalPlayer01','.IP.','LocalPlayer02','.IP.'); $game_hosts = array('127.0.0.1','.IP.','.IP./24'); # IP-         .     . 

次に、ブラウザを開き、アドレスに移動します .ip./ASP .ip./ASP 。 管理パネルが開き、構成ファイルの編集時に入力した資格情報が表示されます。 左側のメニューで[ DBのインストール ]をクリックします
データベースをインストールすると、合格したDBテストに関するレポートが表示されます。 すべてが正常である場合、各アイテムを渡すことは値Passedになります。
さらに、左側のメニュー「システム=>構成の編集」に移動すると、サーバー構成をより詳細に検討できます。

Webストラッピングの構成

次に、ブラウザを開き、アドレスに移動します .ip. .ip. 。 Webサーバー統計サーバーのインストールページが開きます。インストールスクリプトの指示に従ってください。
インストールが正常に完了したら、構成バインディングファイルを編集できます。
 sudo nano /server/site/config.inc.php ====================================================== $DBIP = 'localhost'; //    $DBNAME = 'bf2stats'; //    $DBLOGIN = 'root'; //    $DBPASSWORD = ''; //    $TITLE = ''; //   


この段階で、統計のインストールが完了します。 いつものように、大きなファイルを受け取り、「船の状態に合わせた機関車」を仕上げます...

ファイルを操作する

サーバーがキーの有効性をチェックしないように:
iptablesパッケージをインストールします。
 sudo apt-get install iptables 

次に、「ネットワークに接続されているとき」の構成にポートブロッキングを含む次の行を追加しました。
 sudo nano /etc/network/if-up.d/upstart iptables -A INPUT -m udp -p udp --sport 29910 -s 0/0 -j DROP iptables -A INPUT -m udp -p udp --sport 139 -s 0/0 -j DROP iptables -A INPUT -m tcp -p tcp --sport 29910 -s 0/0 -j DROP iptables -A INPUT -m tcp -p tcp --sport 1433 -s 0/0 -j DROP iptables -A INPUT -m tcp -p tcp --sport 1434 -s 0/0 -j DROP iptables -A INPUT -m tcp -p tcp --sport 139 -s 0/0 -j DROP 


カードの変更:
サーバー上のカードを変更するには、ファイル/server/bf2/mods/bf2/settings/maplist.conを編集する必要があります
 sudo nano /server/bf2/mods/bf2/settings/maplist.con ===================================================== //mapList.append _ _ _ mapList.append mashtuur_city gpm_cq 16 mapList.append road_to_jalalabad gpm_cq 16 mapList.append sharqi_peninsula gpm_cq 16 


ゲームのクライアント側:
ドメインのセキュリティポリシーでは、bf2statistic.comサイトで提供されているvbsスクリプトを使用できません。 だから私は反対に行きました。

folder%SystemRoot%/ Drivers / etcで、行を追加したhosts.ics ファイルを作成しました: .IP. bf2web.gamespy.com
この行により、ゲームをサーバーにリダイレクトできます。

サーバー起動

すべてだと思います。 サーバーを起動できます:
 cd /server/bf2 ./start.sh 

またはスクリーンを通して
 sudo screen cd /server/bf2 ./start.sh 

キーの組み合わせCtrl + Aで画面からデタッチし、Dを押します。

この記事は完了しました。質問や問題がある場合は、コメントでご相談ください。

UPD1 :テキストのタイプミスを修正。

Source: https://habr.com/ru/post/J149947/


All Articles