-
Notifications
You must be signed in to change notification settings - Fork 52
How to setup a development environment
Set up with Vagrant
-
Install Oracle VM VirtualBox or other virtual machine software.
Oracle VM VirtualBox またはその他の仮想マシンソフトをインストールします。 -
Download Minimal ISO from CentOS Website.
CentOS ウェブサイトから Minimal ISO をダウンロードします。 -
Run VirtualBox and create new virtual machine.
VirtualBox を実行し、仮想マシンを作成します。- Name/名前: "CentOS 7" or something
- Type/種類: Linux
- Version/バージョン: Red Hat (64 bit)
- Memory/メモリ: 1024 MB
- Disk/ディスク: Create new VDI/VDIを作成, 15 GB
-
Start it and "insert" downloaded ISO file.
作成した仮想マシンを実行し、ダウンロードしたISOファイルを「挿入」します。 -
Choice "Install CentOS 7"
"Install CentOS 7" を選択します。 -
Install CentOS 7 system. (Google for detailed instructions if you need)
CentOS 7 システムをインストールします(詳細は検索してください。丁寧に解説したページがあります)
(After this step, I recommend you using a terminal-emulator software like PuTTY.)
(このステップの後は、端末エミュレータ、たとえばPuTTYを使用することをおすすめします)
-
(Re-)boot the virtual machine and login as
root
.
仮想マシンを(再)起動してroot
としてログインします。 -
Run following commands to install and update basic packages: (
#
is a prompt, run as root)
次のコマンドを実行し、基本的なパッケージをインストール・アップデートします: (#
は root で実行することを示すプロンプトです(入力しません))# yum update -y
# yum install -y @base @core epel-release scl-utils
# yum-config-manager --enable epel
-
Setup Remi-safe RPM repository:
Remi-safe RPM レポジトリを設定します:# yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
# yum-config-manager --enable remi-safe
-
Setup JP3CKI (AIZAWA Hina) RPM repository:
JP3CKI RPM repository を設定します(作者の管理するRPMレポジトリです):# curl -sL https://rpm.fetus.jp/jp3cki.repo -o /etc/yum.repos.d/jp3cki.repo
# yum-config-manager --enable jp3cki jp3cki-h2o-mainline
-
Setup Node.JS RPM repository:
Node.JS のレポジトリを設定します:# curl -sL https://rpm.nodesource.com/setup_10.x | bash -
-
Setup PostgreSQL RPM repository:
PostgreSQL のレポジトリを設定します:# yum install -y https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
-
Install packages:
パッケージをインストールします:# yum install -y ImageMagick brotli diff gcc-c++ git h2o jpegoptim make nodejs patch php73-php-cli php73-php-fpm php73-php-gd php73-php-intl php73-php-json php73-php-mbstring php73-php-mcrypt php73-php-opcache php73-php-pdo php73-php-pecl-msgpack php73-php-pecl-zip php73-php-pgsql php73-php-process php73-php-xml php73-runtime pngcrush postgresql11 postgresql11-server unzip zopfli
-
Disable SELinux (Not recommended for real server):
SELinux を無効化します (実運用時にはおすすめしません):# setenforce 0
# sed -i -e "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
-
Create user: (Skip this step if already created one at install-time.)
ユーザを作成します: (インストール時に作成している場合はそのまま次に進みます)-
# useradd statink
(statink
can be replaced to your name)
-
-
Change the permission of your home directory: (Otherwise, H2O web server returns
403 forbidden
later.)
ホームディレクトリのパーミッション(権限)を変更します: (変更しない場合、後々403 forbidden
エラーが発生します)# chmod 701 /home/statink
-
Switch user to
statink
:
statink
に切り替えます:-
# su - statink
- The prompt will be changed to
$
.
プロンプトが$
に変わります。
- The prompt will be changed to
-
-
Setup user's environment to use some application:
いくつかの非標準アプリケーションを使用するために設定を追加します:$ echo 'source scl_source enable php73' >> .bash_profile
-
Reload user's environment:
追加の設定を反映するために環境をリロードします:$ source .bash_profile
-
Test it:
動作の確認を行います:-
$ php -v
(Should say "PHP 7.3.x (cli)" or something.) -
$ node -v
(Should say "v10.x.x" or something.) -
$ psql --version
(Should say "psql (PostgreSQL) 11.x" or something.)
-
-
Clone stat.ink source: stat.ink のソースを clone します:
-
$ git clone https://github.com/fetus-hina/stat.ink.git
(Or your repository URL forked / forkしたレポジトリのURLを指定してもかまいません)
-
-
Initialize the project:
プロジェクトの初期設定を行います:$ cd stat.ink
-
$ make init
(May take a VERY LONG TIME / とても長い時間がかかります)
-
Find the initial DB password: (The password is auto-generated in previous step)
データベースの初期パスワードを確認します: (前のステップでパスワードは自動生成されています)-
$ cat config/db.php
- The database configuration will be shown. Find the password and keep it safe.
パスワードが表示されます。メモしておいてください。
- The database configuration will be shown. Find the password and keep it safe.
-
-
Back to
root
account:
root
アカウントに戻ります:$ exit
-
Initialize DB structure:
データベース構造の初期化を行います:# PGSETUP_INITDB_OPTIONS="-E UTF-8 --locale=en_US.UTF8 -k" /usr/pgsql-11/bin/postgresql-11-setup initdb
-
Edit client-authentication settings:
認証のための設定を行います:# echo 'local all all peer' > /var/lib/pgsql/11/data/pg_hba.conf
# echo 'host all all 127.0.0.1/32 md5' >> /var/lib/pgsql/11/data/pg_hba.conf
# echo 'host all all ::1/128 md5' >> /var/lib/pgsql/11/data/pg_hba.conf
Note: First command has
>
and other commands have>>
.
THIS IS A IMPORTANT THING.
(First one is overwrite the file. Second one is append to the file.)注意: 最初のコマンドは
>
、それ以降のコマンドは>>
になっています。
これはとても重要な違いです。
(最初の操作はファイルの上書き、その後の操作は追加を行っています) -
Start the db server:
データベースサーバの起動を行います:
# systemctl enable postgresql-11.service
# systemctl start postgresql-11.service
-
Create a DB user ("role"): データベースユーザ(ロール "role" といいます)の作成を行います:
-
# sudo -u postgres createuser -DRSP statink
- The prompt
Enter password for new role:
will be displayed. You should input the DB password that memorized previous section.
Enter password for new role:
と表示されたら、メモしたデータベースのパスワードを入力します。
- The prompt
-
-
Create a db:
データベースの作成を行います:# sudo -u postgres createdb -E UTF-8 -l en_US.UTF-8 -O statink statink
-
Switch to the user:
ユーザを切り替えます:# su - statink
-
Change "current" directory to project's directory.
カレントディレクトリを変更します:$ cd stat.ink
-
Run
make
command:
make
コマンドを実行します:$ make
-
DB test: (Update stages information) データベースのテストを行います: (試しに、ステージの情報を取得して更新します)
$ ./yii splatoon2-ink/update
Note: This action makes a request to splatoon2.ink (3rd party website/API). Please do not repeat this action.
メモ: このアクションは、splatoon2.ink (第三者の作成したウェブサイト/API)にアクセスします。このアクションを繰り返さないようにしてください。
-
Back to
root
user and say "Yay!"root
に戻ります。$ exit
-
Change directory:
カレントディレクトリを変更します:# cd /etc/opt/remi/php73/php-fpm.d
-
Edit the config file: (Replace process owner name, "apache" to "statink" (i.e. your account name))
設定ファイルを更新します: (プロセス実行者の名前を "apache" から "statink"、つまりあなたのアカウントに変更します)# perl -i -pe 's/^user = apache/user = statink/' www.conf
-
Start it:
起動します:# systemctl enable php73-php-fpm
# systemctl start php73-php-fpm
-
Check running:
動作の確認をします:-
# ps aux | grep php-fpm
- Some lines will be displayed, start with "
statink
(your account name)" and end with "php-fpm: pool www" likestatink 13968 0.0 0.6 403688 7116 ? S 04:53 0:00 php-fpm: pool www
statink
(あなたのアカウント名)" で始まり、 "php-fpm: pool www" で終わる行がいくつか表示されるはずです。例:statink 13968 0.0 0.6 403688 7116 ? S 04:53 0:00 php-fpm: pool www
- Some lines will be displayed, start with "
-
# netstat -ln | grep ':9000'
- A line will be displayed like
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
次のような行が表示されるはずです:tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
- A line will be displayed like
-
-
Copy configuration file from the project:
設定ファイルをコピーします:# cp -f /home/statink/stat.ink/docker/h2o/h2o.conf /etc/h2o/h2o.conf
-
Adjust directory name if changed user name: (
/home/statink
to/home/****
(your home directory))
ユーザ名を変更しているなら設定ファイルの中身を調整します: (/home/statink
と記載されているので/home/****
、つまりあなたのホームディレクトリに変更します)# perl -i -pe 's#/home/statink#/home/YOUR_ACCOUNT_NAME#g' /etc/h2o/h2o.conf
-
Start it:
起動します:# systemctl enable h2o
# systemctl start h2o
-
Switch user to
statink
: (optional, but recommended)
ユーザをstatink
に切り替えます: (切り替えなくても動きますが、切り替えることを強くおすすめします)# su - statink
-
Request to server:
サーバへリクエストを投げます:-
$ curl http://127.0.0.1/
- Raw HTML document will be displayed.
stat.ink の生の HTML が表示されるはずです。
- Raw HTML document will be displayed.
-