Restyaboardは、無料のオープンソースかんばんボードアプリケーションです。これは、Trelloに代わる最良のセルフホスト型です。 PHPで記述されており、PostgreSQLを使用してデータベースを保存します。
このチュートリアルでは、CentOS7サーバーにRestyaboardをインストールします。
前提条件
- 最小限のCentOS7サーバー
- root権限
パッケージをインストールする前に、次のコマンドを使用してパッケージとリポジトリを更新することをお勧めします。
yum -y update
NginxはデフォルトのCentOSYUMリポジトリでは使用できないため、EPELリポジトリもインストールする必要があります。次のように入力してEPELをインストールできます:
yum -y install epel-release
これで、次のように入力してnginxをインストールできます:
yum -y install nginx
インストールが完了したら、次のコマンドを実行してnginxを起動し、次のコマンドを使用して起動時に自動的に起動できるようにします。
systemctl start nginx systemctl enable nginx
Nginxがサーバー上で実行されているはずです。
RestyaboardはPHP7.0をサポートしているため、セキュリティとパフォーマンスを最大化するためにPHP7.0をインストールします。 PHP 7.0はYUMまたはEPELリポジトリでは利用できないため、同じためにWebtaticリポジトリをインストールする必要があります。次のコマンドを実行して、Webtaticリポジトリをインストールします。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
次に、PHP7.0とPHP-FPMを他の必要なモジュールとともにインストールします。
yum -y install php70w php70w-fpm php70w-devel php70w-cli php70w-curl php70w-pgsql php70w-mbstring php70w-ldap php70w-pear php70w-imap php70w-xml php70w-pecl-imagick ImageMagick
インストールが完了したら、いくつかの設定が必要になります。デフォルトでは、PHP-FPMはApacheで使用するように構成されていますが、nginxでも機能するようにユーザーを変更する必要があります。お気に入りのテキストエディタを使用して、/ etc / php-fpm.d/www.confファイルを編集します。このチュートリアルでは、nanoエディターを使用します。 nanoがインストールされていない場合は、yum -yinstallnanoを実行できます。
nano /etc/php-fpm.d/www.conf
次の行を見つけて、apacheをnginxに変更します。
; RPM: apache Choosed to be able to access some dir as httpd user = nginx ; RPM: Keep a group allowed to write in log dir. group = nginx
サーバーポートを使用する代わりに、PHP-FPM用のソケットファイルを使用します。次の行を見つけます。
listen = 127.0.0.1:9000
次の行に変更します。
listen = /run/php-fpm/php7.0-fpm.sock
次に、次の行を見つけます。
;listen.owner = nobody ;listen.group = nobody ;listen.mode = 0660
値を次のように変更します。
listen.owner = nginx listen.group = nginx listen.mode = 0660
さらに、PHP構成ファイルでタイムゾーンを設定する必要があります。次のコマンドを使用してPHP構成ファイルを編集します:
nano /etc/php.ini
次の行を見つけてコメントを外し、地域に応じてタイムゾーンを設定します。例:
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Kolkata
cgi.fix_pathinfo行のコメントを解除し、値を0に変更します。
cgi.fix_pathinfo=0
さらに、GeoIPもインストールする必要があります。次のコマンドを実行してGeoIPをインストールします。
yum -y install GeoIP-devel
/etc/php.ini
の最後に次の行を追加して、GeoIP拡張機能を有効にします。extension=geoip.so
PHP-FPMを起動し、次のコマンドを使用して起動時に起動できるようにします。
systemctl start php-fpm systemctl enable php-fpm
次に、次のコマンドを使用してnginxを再起動します。
systemctl restart nginx
PostgreSQLはオープンソースのオブジェクト-リレーショナルデータベース管理システムです。 RestyaboardはPostgreSQLを使用してデータベースを保存します。
PostgreSQLはYUMまたはEPELリポジトリでは使用できません。PostgreSQLリポジトリをインストールする必要があります。
rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
PostgreSQLをインストールするには、次のコマンドを実行します。
yum -y install postgresql96-server postgresql96-contrib
上記のコマンドは、システムに必要なすべての依存関係とともにPostgreSQLをインストールします。ソフトウェアを使用する前に、次のコマンドを実行してデータベースを初期化する必要があります。
/usr/pgsql-9.6/bin/postgresql96-setup initdb
PostgreSQLがインストールされたら、それを構成します。 /var/lib/pgsql/9.6/data/pg_hba.confを編集して、MD5ベースの認証を有効にします。
nano /var/lib/pgsql/9.6/data/pg_hba.conf
次の行を見つけて、peerをtrustに、idnetをmd5に変更します。
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident
更新すると、構成は次のようになります。
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
次に、PostgreSQLサーバーを起動し、次のコマンドを使用して起動時に自動的に起動できるようにします。
systemctl start postgresql-9.6 systemctl enable postgresql-9.6
次に、PostgreSQLのインストール中に作成されたデフォルトのPostgreSQLユーザーのパスワードを変更します。
passwd postgres
次に、次のコマンドを使用してPostgreSQLユーザーを使用してログインします。
su - postgres
上記のコマンドはpostgresのシェルにログインします
次に、次のように入力して新しいユーザーを作成します。
createuser rb_user
次に、次のコマンドを使用してPostgreSQLシェルに切り替えます。
psql
シェルのプロンプトがpostgres-#に変更されていることがわかります。次に、次のクエリを実行して、Restyaboardデータベース用に新しく作成されたユーザーのパスワードを設定します。
ALTER USER rb_user WITH ENCRYPTED password 'StrongPassword';
クエリの最後には必ずセミコロンを使用してください。上記のクエリでは、rb_userのパスワードを2回要求されます。次に、次のクエリを使用してPostgreSQLデータベース用の新しいデータベースを作成します。
CREATE DATABASE rb_data OWNER rb_user ENCODING 'UTF8' TEMPLATE template0;
上記のクエリは、template0を使用してUTf8エンコーディングでrb_dataという名前のデータベースを作成し、所有権はrb_userに提供されます。
次のコマンドを使用して、psqlシェルを終了してpostgresユーザーの通常のシェルユーザーシェルに移動します。
\q
そして、exitコマンドを使用してrootユーザーに再度切り替えます。
すべての依存関係の準備ができたので、Restyaboardをダウンロードできます。次のコマンドを実行して、展開可能なバージョンをダウンロードします。
cd /usr/share/nginx/html wget https://github.com/RestyaPlatform/board/releases/download/v0.4.2/board-v0.4.2.zip
最新バージョンへのリンクは、RestyaboardGithubページでいつでも見つけることができます。
次に、次のコマンドを使用してアーカイブを抽出します。 unzipがインストールされていない場合は、yum -yinstallunzipを実行できます。
unzip board-v0.4.2.zip -d board
アーカイブが抽出されたら、次のコマンドを使用してSQLファイルをインポートします。
psql -d rb_data -f "/usr/share/nginx/html/board/sql/restyaboard_with_empty_data.sql" -U rb_user
次に、Restyaboard構成ファイルを編集して、データベースの資格情報を更新します。
nano /usr/share/nginx/html/board/server/php/config.inc.php
次の行を見つけます。
define('R_DB_HOST', 'localhost'); define('R_DB_USER', 'restya'); define('R_DB_PASSWORD', 'hjVl2!rGd'); define('R_DB_NAME', 'restyaboard'); define('R_DB_PORT', 5432);
Restyaboardデータを保存するために最近作成したデータベースのデータベース名、ユーザー名、パスワードに応じて変更してください。完了すると、次のようになります。
define('R_DB_HOST', 'localhost'); define('R_DB_USER', 'rb_user'); define('R_DB_PASSWORD', 'StrongPassword'); define('R_DB_NAME', 'rb_data'); define('R_DB_PORT', 5432);
Restyboard nginxサーバーブロック構成は、zipアーカイブにパッケージ化されています。次のコマンドを使用して、構成ファイルをnginx構成ファイルの場所にコピーできます。
cp /usr/share/nginx/html/board/restyaboard.conf /etc/nginx/conf.d
ここで、ファイルにいくつかの変更を加える必要があります。お気に入りのテキストエディタを使用して構成ファイルを開きます。
nano /etc/nginx/conf.d/restyaboard.conf
構成の開始時に、次の行を見つけます。
server { listen 80 default_server; server_name _;
default_serverテキストを削除し、サーバー名の後にドメイン名を指定します。以下のようになります。
server { listen 80; server_name board.yourdomain.com;
次の行も見つけてください:
root /usr/share/nginx/html;
および
location / { root /usr/share/nginx/html/client; }
および
root /usr/share/nginx/html/client;
Restyaboardのインストールフォルダに応じて上記の行を変更します。以下のようになります。
root /usr/share/nginx/html/board;
および
location / { root /usr/share/nginx/html/board/client; }
および
root /usr/share/nginx/html/board/client
次の行も見つけてください:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
次のように変更します:
fastcgi_pass unix:/run/php-fpm/php7.0-fpm.sock;
これでファイルを閉じることができます。次のコマンドを使用して、適切な所有権と権限を提供します。
chown -R nginx:nginx /usr/share/nginx/html/board/ chmod -R go+w "/usr/share/nginx/html/board/media" chmod -R go+w "/usr/share/nginx/html/board/client/img" chmod -R go+w "/usr/share/nginx/html/board/tmp/cache" chmod -R 0755 /usr/share/nginx/html/board/server/php/shell/*.sh
最後に、cronエントリを追加して、次のコマンドを使用してスケジュールされたタスクを実行できるようにします。
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/instant_email_notification.sh" >> /var/spool/cron/root echo "0 * * * * /usr/share/nginx/html/board/server/php/shell/periodic_email_notification.sh" >> /var/spool/cron/root echo "*/30 * * * * /usr/share/nginx/html/board/server/php/shell/imap.sh" >> /var/spool/cron/root echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/webhook.sh" >> /var/spool/cron/root echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/card_due_notification.sh" >> /var/spool/cron/root>
プロキシ設定はSELinuxポリシーでは機能しないため、SELinuxを無効にする必要があります。サーバーを再起動せずにSELinuxを一時的に無効にするには、次のコマンドを実行します。
setenforce 0
SELinuxを完全に無効にするには、/ etc / selinux/configファイルを編集する必要があります。
nano /etc/selinux/config
次の行を見つけます:
SELINUX=enforcing
次のように変更します:
SELINUX=disabled
次に、次のコマンドを使用してNginxを再起動します。
systemctl restart nginx
これで、次のURLにアクセスしてサーバーにアクセスできます。
http://board.yourdomain.com
次のログイン画面が表示されます。
次に、ユーザー名adminとパスワードrestyaを使用してログインします。ログインすると、次の画面が表示されます。
新しいボードを作成するには、ページの左隅にある矢印をクリックし、[ボードまたは組織の追加]をクリックします。
名前を入力し、テンプレートを選択して新しいボードを作成します。
ボードを作成すると、次のようになります。
管理パネルにアクセスするには、右下隅にある[管理]ボタンをクリックしてから、トップバーの[設定]をクリックします。
これでRestyaboardがサーバーにインストールされ、かんばんボードを使用してプロジェクトのワークフローを改善できるようになりました。