#Drupalを理解する
##モジュール
- ユーザーアカウントの管理 (User module)
- 基本コンテンツ管理 (Node module)
- フィールド管理(Field and Field UI modules)
- ナビゲーションメニューの管理 (the core Menu UI module)
- リスト、グリッド、およびブロックを作成する (Views and Views UI modules)
##テーマ
- サイトの視覚的な外観を定義する一連のファイル
##ディストリビューション
- コアソフトウェア、提供されたモジュール、テーマ、および事前定義された構成を含む単一のダウンロードとして、特定のタイプのサイトにサイトの機能を提供
##データのタイプ
- コンテンツ
- サイトの訪問者に表示することを意図した情報
- 構成
- コンテンツではないが比較的永続的なサイトに関する情報
- 状態
- cronジョブが最後に実行された時刻など、サイトの現在の状態に関する一時的な性質の情報
- セッション
- 個々のサイト訪問者がログインしているかどうかやCookieなど、サイトとのやり取りに関する情報
##Drupalプロジェクト
- コアコンテンツ管理システムソフトウェアのほか、アドオンモジュール、追加のテーマ、翻訳、ドキュメント、および特殊目的のディストリビューションを開発することを目的としたFOSSプロジェクト
- コミュニティには、特定のDrupal関連ソフトウェアの開発、ドキュメントの作成、Drupalソフトウェアのセキュリティの維持、Drupalソフトウェアの特定の言語への翻訳、特定の目的でのDrupalの使用など、さまざまなタスクを実行する多くの小さなグループが含まれる
##Drupal Association
- 世界中で大規模な大会を開催
- Drupal.orgの Webサイトとそれらが実行されるサーバーの維持
- DrupalをWebプラットフォームとして宣伝する
- Drupalの教育とトレーニングのサポート
- Drupalコミュニティにその使命を支援するための助成金を提供する
- これらの目的のための資金調達
##Drupalライセンス
- GNU General Public License(GPL)バージョン2以降
- Drupal.org上のプロジェクトの一部であるファイルを自由にダウンロード、再利用、変更、および配布できる
#サイト計画
##リージョン
- コンテンツを配置決定
##サイトレイアウトの計画
- PC,SP両方のデザイン
- すべてのページにあるべき情報
- コンテンツ(定型更新)
- ページタイプ
##コンテンツエンティティ
- コンテンツデータのアイテム
- コアソフトウェアまたはモジュールによって定義
- エンティティタイプにグループ化され
- コンテンツアイテム
- コメント
- ユーザープロフィール
- カスタムブロック
- タクソノミー
- ファイル
- フォーム
##フィールド
- フィールドタイプは、コアソフトウェアまたはモジュールによって定義
- 管理者はエンティティサブタイプにフィールドを追加できる
##モジュラーコンテンツ
- モジュラーコンテンツを使用して複合ページとページセクションを作成
- 重要なアイデアは、各情報が1つの場所でのみ編集される
##ワークフローの管理
- 公開/非公開のステータス
- リビジョン追跡
- ワークフロー
- ブロック配置
##ユーザーインターフェイス、構成、コンテンツ変換
- ユーザーインターフェイステキスト
- 構成テキスト
- コンテンツのテキストとファイル
##セマンティックバージョニング(Semantic Versioning) ⇒ SemVer
- 数字三桁
- 必要Public API
※8.2.9
8 ⇒ メジャーバージョン ⇒ API変更
2 ⇒ マイナーバージョン ⇒ 同一API
9 ⇒ パッチ ⇒ バグFIX
#インストールについて
##サーバー要件
- ディスクスペース
- ベースファイル100MB
- PHP7.2以降、64MB以上のメモリーサイズ
- ウェブサーバー
- Apache(推奨)
- Nginx
- Microsoft IIS
- データベース
- MySQL-5.5.3以降とInnoDB互換のプライマリストレージエンジン
- PostgreSQL-9.1.2以降
- SQLite-3.4.2以降
##ツール
- Drush and Drupal Console
- ユーザーインターフェイスよりもコマンドラインの方が速い
- サイト関連のコマンドをサーバー上の他のコマンドと組み合わせるスクリプトを記述して、より複雑なタスクを自動化
- 管理インターフェースでは利用できない追加機能を提供(クエリなど)
- Git
- Composer
- PHPの依存関係を管理するためのツール
- Devel
- Coder
- モジュールとテーマがコーディング標準やその他のベストプラクティスに準拠しているかどうかを確認
- コーディング標準違反を修正
- ブラウザデバッグツール
#ユーザー、ロール、権限
##ユーザー
- 匿名ユーザー
- 認証ユーザー
- 管理者ユーザー(ユーザーID1、ルートアカウント)
##権限
- アクションを提供するモジュールによって定義
##ロール
- 個々の権限を各ユーザーに直接割り当てるのではなく、権限をロールにグループ化
##Drupalバージョンアップ手順
- バックアップ実施
- メンテナンスモードに変更
- コアのアップデート
- データベースのアップデート(update.php実施)
- メンテナンスモード解除
- キャッシュクリア