間宮さんのさくっと仮想通貨

’18年版マイニングプール構築③(Web,DB構築)

マイニングプールのWeb(php-mpos)構築

coindが無事に入ったら、次はプールの表示画面を構築します。MPOS(php-mpos)は歴史があるソフトウェアのため、非常に多くのユーザがいます。エラーメッセージがあっても貼り付けるだけで解決策が見つかることも結構あります。

マニュアルもしっかり最新に更新されてる。公式マニュアルはこちら

https://github.com/MPOS/php-mpos/wiki/Quick-Start-Guide

では、早速構築します。

php-mposの構築

上記公式から必要な内容の抜き出し+幾つか加えた上で入れます。

coindのときと同じく、下記コピペしてシェルスクリプト作って実行で入ります。
※既にMPOSを運用しているプール運営の方は、上書きする前に必ず動作テストを別サーバで行うようにしてください。単純に上書きするとDB定義のバージョンが違うといったメッセージが出ます。DBのバックアップデータを元に動作検証をするのが良いかと思います。

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install mysql-server
sudo apt-get install -y apache2
sudo apt-get install -y git memcached php-memcached php7.0-mysqlnd php7.0-curl php7.0-json php7.0-curl libapache2-mod-php7.0
sudo apt-get install -y php-mbstring php-dom unzip
sudo apache2ctl -k stop; sleep 2; sudo apache2ctl -k start
sudo git clone git://github.com/MPOS/php-mpos.git php-mpos
cd php-mpos
sudo git checkout master
php composer.phar install
sudo cp include/config/global.inc.dist.php include/config/global.inc.php
sudo chown -R www-data templates/compile templates/cache logs
sudo mv * /var/www/html

Updating dependencies (including require-dev) というメッセージが表示されるところで1分程度止まる場合もあるので気長に待ってください。

mysqlとapacheの設定を変える

mysql

sudo vi /etc/mysql/my.cnf

下記を追記

[mysqld]
sql_mode=''

もしプール稼働時にエラーが出てしまうようであれば、こちらの記事のmysqlの設定を参考にしてみてください。

次はマイニング以外の管理を受け持つ、mposの設定を行います。 ・mysqlのインストール・設定 sudo apt-get inst...

DBとテーブルを作成(今回は「mpos」というDBを作ります)

sudo mysql -p -e "create database mpos"
sudo mysql -p mpos < sql/000_base_structure.sql

apache

※apacheの設定で、webrootは/var/www/html/publicにする。
apacheはもちろんnginxでもOK

vi /etc/apache2/sites-available/000-default.conf 

下記に変更

DocumentRoot /var/www/html/public

これでインストールは終わり。
次はmpos自体の設定を変えます。

mposの設定

ここまでできたら次は設定ファイルをいじります。
設定ファイルは/var/www/html/include/config/global.inc.php になります。

設定が必要な場所

最低限必要な設定を記述します。

DB関連の設定

mpos用のmysqlのユーザ名、パスワードを設定

$config['db']['host'] = 'localhost';
$config['db']['user'] = 'someuser';
$config['db']['pass'] = 'somepassword';
$config['db']['port'] = 3306;
$config['db']['name'] = 'mpos';

coin-deamon(coind)の設定

kumacoinの場合、kumacoindのrpcポートは7585、ユーザ名とパスワードはkumacoind.confで指定したもの。

$config['wallet']['host'] = 'localhost:7585';
$config['wallet']['username'] = 'rpcuser';
$config['wallet']['password'] = 'rpcpass';

通貨コードの設定

通貨コード。mposのアドレス管理に使うので、正しく指定する。

$config['currency'] = 'kuma';

ここでファイアウォールを設定してブラウザでindex.phpにアクセスできるか確認します。
エラーがなくプールの画面が出てきたらmposの設定は完了です。

crontabの設定

(stratum-miningの設定が終わってプールが稼働し始めたら)、以下の内容でcronを設定します。
下記は5分起きにしていますが、コインの採掘時間に合わせて前後してください。重複実行はしないようになっているので短めに設定してもOKです。

crontab -e
*/5 * * * * /var/www/html/cronjobs/run-crons.sh

支払い方法の変更

慣れてきたタイミングでも良いのですが、支払い方法をpropからpplnsに変更することをお勧めします。
なぜお勧めするかは下記記事を参照。

コインの支払い方法はプールによって違う! コインが見つかった際に、マイナーに報酬が支払われます。 この時の支払計算方法なのですが、プールに...

これで終わりです。500エラーが出てしまった場合は、apacheのログ /var/log/apache2/error.log を見て原因探ってみてください。
無事動いたらお疲れ様でした!

次はstratum-miningの設定です。

最後の難関、stratum-mining 構築に関する質問の中で一番多いstratum-mining。さくっと入れれるように手順を...