Drupalをcompsoer利用構造にする

  •  
 
ぬめぬめ2024年1月19日 - 11:43 に投稿

今回は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

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。