今回はComposer管理していない既存のDrupalをComposerize-drupalを使って簡単にcomposer管理のディレクトリ構造に変更できたので紹介します。
前提条件
- composerをインストールしていること
- drushをインストールしていること
- Drupal8.xをインストールしていること
- composerを利用してdrupalを構築していないためディレクトリ構造は以下のようになっていること。
/var/www/html/
├── autoload.php
├── composer.json
├── composer.lock
├── console
├── core
├── example.gitignore
├── index.php
├── libraries
├── LICENSE.txt
├── modules
├── profiles
├── README.txt
├── robots.txt
├── sites
├── themes
├── update.php
├── vendor
└── web.config
実施環境
- 実施環境は以下の通り
- Drupal varsion:8.7.1
- composer varsion:1.10
- drush varsion:10.6.1
- 利用しているOS:CentOS
- php varsion:7.1
実施手順
0.バックアップを作っておく
/var/www/htmlはDrupalルートです。
cd /var/www
cp -rfp html html_bk
- ※DBのバックアップも取っておくこと
1./var/www/html/
下にwebディレクトリを作成する。
cd /var/www/html
mkdir web
2./var/www/html/
下にあるファイルやディレクトリを全てwebに移動させる。
cd /var/www/html
mv /var/www/html/* /var/www/html/web
mv /var/www/html/.* /var/www/html/web
3.カスタムモジュール、テーマを移動させる。
1.カスタムモジュールを移動する。
cd /var/www/html/web/modules
mkdir custom
mv custom modules* ./custom
2.テーマも同じように移動させる
cd /var/www/html/web/themes
mkdir custom
mv /var/www/html/web/themes/* /var/www/html/web/custom
4.Composerize-drupalをインストールする。
1.Composerize-drupalをインストール
cd /var/www/html
composer require grasmash/composerize-drupal
2.インストール後、jsonファイル、venderディレクトリが作成されるので確認する。
ls /var/www/html
- ※現時点ではjsonファイルにはComposerize-drupalの依存関係しか記述されていない
5.Composerize-drupalを実行する。
1.実行する前に作成したディレクトリの所有者を変更しておく。
cd /var/www/html
chown -R apache:apache web
2.以下のコマンドでComposerize-drupalを実行する。
composer composerize-drupal --composer-root=. --drupal-root=./web --no-update
3.実行後現在使用しているモジュールやパッケージがjsonファイルに記述されるのでrequire
を確認する。
vim composer.json
- ※カスタムモジュールが記載されていないことも確認
6.不要なファイルなどを削除
1.元々ドキュメントルートにあったvenderディレクトリを削除する。
cd /var/www/html/web
rm -rf vender
2.コミュニティモジュールを削除する。
rm -rf /var/www/html/web/modules/*
- ※コミュニティモジュールのみを削除してください。カスタムモジュールは削除しないでください。
- ※テーマの方はcontribテーマを使っていなければこのままでOK
7.composer install
1.composer installを実行する。
cd /var/www/html
composer install
- ※composer installで依存関係などのエラーが起こる場合は/var/www/html/web/coreと/var/www/html/venderも削除する。(今回は削除してません)
8.データベース更新
composer updatedb
9.apacheの設定を変更する。
1.apacheのドキュメントルートの設定を以下のように変更する。
httpd.conf
変更前 DocumentRoot "/var/www/html"
変更後 DocumentRoot "/var/www/html/web"
変更前 <Directory "/var/www/html">
変更後 <Directory "/var/www/html/web">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
2.apacheを再起動する。
systemctl restart httpd
10.動作確認
最後にキャッシュクリアをし、サイトがきちんと閲覧できるか確認する。確認できればOK
cd /var/www/html
drush cr
11.バックアップしたディレクトリを削除する。
cd /var/www
rm -rf html_bk
- 閲覧数 129
コメントを追加