【ConoHaVPS】Drupalを自動インストールするスクリプトを作ってみた

こちらのサイトではDRUPAL10に関連する記事を掲載しています。

はじめに

Quiitaで @itsumonotakumi(いつもの 匠) さんがConoHaVPS上でWordPressサイトを一発で作成するスクリプトを公開していました。こういうスクリプトがあれば何かあったとき急いでサイトを立ち上げるとき本当に便利です。

マニュアルで作っているとどこかで設定を間違えていてうまく動かないことがよくあります。私もいつもの匠さんのスクリプトを参考にDrupal版を作成して利用していました。いままでサイト立ち上げまで一時間程度かかっていたものがスクリプトを利用することで、10分できるようになりました!

今回、皆さんにも使っていただけるように公開することにしました。よろしければ参考にしてみてください。

スクリプト

設定ファイル

#Const Settings by user

#KUSANAGIパスワード
kusanagipass="xxx"
#MYSQLルートパスワード
dbrootpass="xxx"
#プロビジョニングフォルダ名
provname="user-provisioning-name"
#データベース名
dbname="dbname"
#データベースユーザ名
dbuser="dbusr"
#データベースパスワード名
dbpass="pbpass"
#FQDN(ドメイン)名
FQDN="example.com"
#管理者メールアドレス
email="admin@example.com"
#Drupalプロジェクトフォルダ名
proj=drupalproj
#Drupalバージョン
drupalver=10.1.0
#Drupalスーパーユーザ名
adminuser=admin
#Drupalスーパーユーザパスワード
adminpass="password"

スクリプト本体

source ./const_drupalscript.sh

##################################################
# SCRIPT START
provpath=/home/kusanagi/${provname}/
echo "【Drupal】環境構築 KUSANAGI環境 初期化コマンド実行"
read -p "Press [Enter] key to move on to the next.";

#初期化
kusanagi init --tz Asia/Tokyo --lang ja --keyboard en --passwd ${kusanagipass} --nophrase --dbrootpass ${dbrootpass} --mariadb10.5 --httpd24 --php81

echo "【Kusanagi】LAMP環境構築 KUSANAGI プロビジョニングコマンド実行"
read -p "Press [Enter] key to move on to the next.";

kusanagi provision --lamp --dbname=${dbname} --dbuser=${dbuser} --dbpass=${dbpass} --email=${email} --fqdn ${FQDN}  ${provname}

#プロビジョニングフォルダに移動
cd ./${provname}

echo "【Drupal】環境構築 COMPOSER DRUPALプロジェクトインストール"
read -p "Press [Enter] key to move on to the next.";

echo "mkdir ${proj} && cd ${proj} && composer create-project drupal/recommended-project:${drupalver} tmp && cp -r tmp/. . && rm -rf tmp";
mkdir ${proj} && cd ${proj} && composer create-project drupal/recommended-project:${drupalver} tmp && cp -r tmp/. . && rm -rf tmp 

echo "【Drupal】環境構築 COMPOSER DRUSHインストール"
read -p "Press [Enter] key to move on to the next.";

composer require drush/drush

echo "【Drupal】環境構築 DRUSHランチャーのインストール"
wget -O drush.phar https://github.com/drush-ops/drush-launcher/releases/latest/download/drush.phar
chmod +x drush.phar
mv drush.phar /usr/local/bin/drush

echo "【Drupal】環境構築 DRUSHランチャー環境設定"
export DRUSH_LAUNCHER_FALLBACK=${provpath}${proj}/vendor/drush/drush/drush
echo $DRUSH_LAUNCHER_FALLBACK
drush --version

echo "【Drupal】環境構築 DRUSHコマンドでDRUPALサイトインストーラ実行"
read -p "Press [Enter] key to move on to the next.";

echo "drush site:install --db-url=mysql://${dbuser}:${dbpass}@localhost:3306/${dbname} --account-name=${adminuser} --account-pass=${adminpass}"
drush site:install --db-url=mysql://${dbuser}:${dbpass}@localhost:3306/${dbname} --account-name=${adminuser} --account-pass=${adminpass}

echo "【Drupal】環境構築 DRUPAL用APACHE設定変更"
read -p "Press [Enter] key to move on to the next.";

cp /etc/opt/kusanagi/httpd/conf.d/${provname}.conf /etc/opt/kusanagi/httpd/conf.d/c${provname}.conf.bak
sed -i -e "s/\/DocumentRoot/\/${proj}\/web/g" /etc/opt/kusanagi/httpd/conf.d/${provname}.conf  

echo "【Drupal】環境構築 KUSANAGIコマンドでPHP他再起動"
kusanagi restart
echo "【Drupal】環境構築 完了しました"

#SCRIPT END

設定

const_drupalscript.shファイルに各定数に必要な情報を設定してください。

設定項目スクリプト
KUSANAGIパスワード
kusanagipass=”xxx”
MYSQLルートパスワード
dbrootpass=”xxx”
プロビジョニングフォルダ名
provname=”user-provisioning-name”
データベース名
dbname=”dbname”
データベースユーザ名
dbuser=”dbusr”
データベースパスワード名dbpass=”pbpass”
FQDN(ドメイン)名
FQDN=”example.com”
管理者メールアドレス
email=”admin@example.com”
Drupalプロジェクトフォルダ名
proj=drupalproj
Drupalバージョン
drupalver=10.1.0
Drupalスーパーユーザ名
adminuser=admin
Drupalスーパーユーザパスワードadminpass=”password”

使い方

ConoHaVPSで新規サーバーを作成します。

このとき、アプリケーションからKUSANAGIを選択します。

前章を参考に、const_drupalscript.shファイルに各定数に必要な情報を設定してください。

サーバーが起動しましたら、SSH接続して上記スクリプトを/home/kusanagiフォルダに格納します。

準備ができましたら、drupalscript.shを実行します。

このスクリプトは、KUSANAGI初期化、KUSANAGIプロビジョニング実行、DRUPALプロジェクト作成、DRUSHインストール、DRUSHランチャーインストール、DRUPALインストーラ実行、APACHE設定ファイル変更の順に実行します。

各処理の実施後に処理は一時停止しますので、特にエラーが表示されていなかれば、エンターキーを押してください。処理が完了しましたら、FQDNで設定したドメイン名でアクセスしてインストールができてるか確認してください。

正常にインストールが完了しているとDrupalの初期画面が表示されるはずです。

さいごに

如何だったでしょうか。

このスクリプトで使用しているKUSANAGIコマンドやComposerでDrupalをインストールの方法は別の記事でも触れていますのでよろしければそちらを参考にしてください。

スクリプトの個々のコマンドの説明は今回省略しました。また機会があればそれぞれのコマンドの説明やエラー発生時のトラブルシューティングについて書いていきたいと思います。

このサイトに関するご意見・ご質問はこちらまで

この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。

タイトルとURLをコピーしました