pioneer2.netで配布されているPSOBB専用のプライベートサーバー。
設置難易度が高く、運用には高いスキルが要求されます。
PSOサーバーの設置方法の説明のみに絞ることで極力わかりやすく書いているつもりです。
セキュリティや不正アクセス対策等のPSOサーバー設置と関係のないものは書いてません。
外部公開する場合、不正対策は重要ですがここでは特に触れてません。
文章作成者であるmisakiは
書かれていることを実行したことにより発生した如何なるトラブルについても責任は負いません。
自己判断で実行し、何が起こっても自己解決してください。
ログインサーバーとゲームサーバーのファイルは以下からDLできます。
Newest binaries (both SQL and non-SQL versions...)
http://www.pioneer2.net/forum/viewtopic.php?t=106
SPSOSサーバーはSQL版とDAT版の2種類があります。
SQLはキャラクタデータをデータベースで管理。
DATはlogin_server.exeと同じフォルダにDATファイルとしてキャラクタデータを出力します。
ここでの説明はSQL版です。
DAT版と比べてキャラクタやログインIDの管理に優れていますが設置や操作にスキルを要します。
MySQL(データベース)を使います。
MySQLの操作にphpmyadminを使うと便利です。
また、phpmyadminを動かすためにphpやApacheも必要です。
それらをPCで起動させる環境を用意してください。
個別にPCへインストールしてもかまいませんが
これらWEBサーバー関連ツールを一括インストールできるXAMPPというの便利なものがあります。
それを使ってまとめてインストールすることにします。
XAMPP for Windows
http://www.apachefriends.org/jp/xampp-windows.html
XAMPP Windows版のインストーラーを選択します。
インストール中に選択肢が出ますが、
意味がわからなければ触らずにディフォルトのままインストールしてください。
以上の設定を終わらせると以下が表示されます。
コマンドラインでの設定はこれで終わりです。
「 x 」を選んでExitしてください。
使うのはApacheとMySqlです。
Startボタンを押すと起動します。
ApacheのAdminを押します。
ブラウザが立ち上がりXAMPP for Windowsというページが表示されます。
左側にあるメニューから「セキュリティ 」を選択。
セキュリティの今の状況とその下に以下が表示されます。
「そのような問題をすべて修正するには、単純に次のツールを使ってください。」
ということでツールを使います。
rootのパスワードを設定します。
rootはデータベースの最高権限を持ってるユーザーのことです。
XAMPPのディレクトリ制御 (.htaccess)に
rootとは違うユーザー名とパスワードを入力
http://localhost/へアクセスするときのパスワードの設定です。
次にphpMyAdminでデータベースを作成します。
メニューからphpMyAdminを選択します
「 特権 」という項目があります。
特権を選択するとユーザ概略が表示されます。
「 新しいユーザーを追加する 」を選び、PSOサーバーで使うデータベース名を作成します。
ユーザー名とパスワードはお好きなように。
ログイン情報
ユーザ専用データベース
設定が終わったら「 実行する 」を押してください。
新しいユーザーとしてpsoservが追加され、
左側のメニューにpsoserv(0)が表示されていると思います。
そのpsoserv(0)をクリックします。
そして右側上部にある「 インポート 」をクリック。
インポートするファイルに「 pso_server.sql 」を指定して実行してください。
sql/pso_server.sqlにファイルはあります。
データベースにテーブルが作成されます。
データベース側の設定はこれで終わりです。
ブラウザ、Apacheは閉じてもかまいませんが
MySqlはログインサーバーで使いますので停止しないでください。
spsos_login_v***の中にある
ini/tethealla.iniとwelcome.txtをlogin_server.exeと同じ場所へコピー。
まずはログインサーバーのIPを確認します。
スタート → すべてのプログラム → アクセサリ → コマンドプロンプト
背景の黒い窓が立ち上がります。
そこで「 ipconfig 」と入力するとIPアドレスが表示されます。
C:\Documents and Settings\misaki>ipconfig
Windows IP Configuration
Ethernet adapter ローカル エリア接続:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . .: 192.168.0.2
Subnet Mask . . . . . . . . . . .: 255.255.255.0
Default Gateway . . . . . . . . .: 192.168.0.1
IP Addressに表示された部分をチェック。
私の場合は 192.168.0.2 の部分がログインサーバーのIPになります。
login_server.exeを起動させます。
「 Listening... 」まで表示されてたらうまくいってます。
表示されない場合は何らかの理由でデータベースへアクセス失敗してます。
タスクトレイに表示されているアイコンをダブルクリックで画面の切り替えができます。
MySQL connection parameters
///////////////////////////
Host: localhost
Port: 3306
Username: psoserv
Password: 12345678
Database: psoserv
Login server parameters
///////////////////////
IP: 192.168.0.2
Login Port: 12000
Character Port: 12001
Maximum Connections: 100
Maximum Ships: 50
Allocating 34851600 bytes of memory for connections... OK!
Allocating 16063200 bytes of memory for ships... OK!
Constructing default ship list packet ... OK!
Connecting up to the MySQL database ... OK!
Setting session wait_timeout ... OK!
Getting max ship key count... (1) OK!
Loading default.flag ... OK!
Opening server patch port 11000 for connections.
Opening server login port 12000 for connections.
Opening server character port 12001 for connections.
Opening ship port 3455 for connections.
続いて、account_add.exeを起動させ
ゲームで使うログインIDやパスワードの設定をします。
一番最初に登録したIDがグローバルGMになります。
make_key.exeを起動させるとship_key.bintが作成されます。
ship_key.binをspsos_ship_v***のフォルダへ入れてシップサーバーを起動してください。
spsos_login_v***の中にあるpatch_server.exeを起動させてください。
ログインサーバー同様「 Listening... 」まで表示されてたら正常です。
日本語で遊びたい場合、言語ファイル(unitxt_j.prs)が別途必要です。
unitxt_j.prsは日本語版公式クライアントをインストールすると入ってますので
それをログインサーバーのpatches/data/の中へ入れてください。
主にアイテム名が日本語化されます。
PSOBB公式サイトで配布されたクライアントで
最新のもの(ver1.25.11)からunitxt_j.prsを取り出してください。
アップデート等で追加されてるデータがありますので
パッケージ版の古いやつとかを使うとアイテム名が表示されないかもです。
welcome.txtに書いてある文字がパッチサーバー接続時に表示されます。
ウェルカムメッセージとして使用してください。
spsos_ship_v.**/ini/lang.ini、localgms.ini、ship.iniをship_server.exeと同じ位置へコピー
先ほど作成したship_key.binも忘れずに。
ship.iniの設定を変更します。
ログインサーバーのIPを指定します。
入力したらシップサーバー起動。
下のようなログが表示されます。
「 Now ready to serve players...
」が表示されてたらサーバーは正常に稼動してます。
タスクトレイに表示されているアイコンをダブルクリックで画面の切り替えができます。
一応ログインサーバー側も確認してください。
「 Listening... 」に続いて以下が表示されてると思います。
ログインサーバーでシップサーバーを認識してるのがわかると思います。
PSOBBでログインサーバーへアクセス。
ロビーまで到着できれば一通りサーバーの設置と動作確認は終わりです。
BBクライアントの設定方法はSPSOSクライアントのページを参照してください。
login_v0.46、ship_v1.37からは共有倉庫が実装されました。
これに伴いMySQLのテーブル構造も変わりました。
共有倉庫のデータを格納する場所が以前のものにはありません。
SPSOSのプログラムのみバージョンアップしても共有倉庫は機能しません。
また、この状態で共有倉庫にアイテムを入れるとデータは保存されず消失します。
MySQLの更新方法
phpMyAdminを使ってSPSOSのデータベースへアクセスしてください。
現在のデータが表示されます。
「 エクスポート 」でデータのバックアップを取ってください。
「 実行する 」を押すだけです。
データベース名.sqlというファイルが保存できます。
画像の場合ですとpsoserv.sqlが出力されます。
次に共有倉庫のテーブルを追加します。
「 インポート 」を選び、spsos_login_v.046/sql/pso_server.sqlをインポートしてください。
これで共有倉庫を格納する場所が作られました。
以前のデータが空になってると思いますので、先ほどバックアップしたデータを復元します。
同じようにインポートを使ってバックアップしたデータを入れます。
画像の例だとpsoserv.sqlをインポートすることになります。
account_dataとcharacter_dataの間にbank_dataが追加されたのを確認したら
実際にログインできるか、共有倉庫が使えるかどうかを確認して問題がなければ完了です。