ローカル環境

目次

DDEV を利用したローカル環境構築


このドキュメントでは、a-blog cms を動かすためのローカル環境を DDEV を使って構築します。

DDEV とは

DDEV は、Web 開発用のローカル環境を素早く、確実に立ち上げるためのツールです。内部的には Docker を使ってサーバーを動かしていますが、複雑な Docker の設定を自分で書く必要はありません。コマンド数行で PHP・MySQL・Web サーバーが揃った環境が手に入ります。

すでに Docker を直接使ったことがある方なら、docker-compose.yml を手書きする代わりに、DDEV がその作業を引き受けてくれるイメージです。

a-blog cms を動かすために必要なもの

a-blog cms は動的な Web アプリケーションです。静的な HTML ファイルをただ置くだけでは動かず、動作するためにいくつかのソフトウェアが必要です。

  • Web サーバー — ブラウザからのリクエストを受け取り、処理結果をレスポンスとして返すソフトウェアです(Apache や Nginx など)

  • PHP インタープリター — a-blog cms 本体は PHP で書かれています。PHP のコードを解釈・実行するプログラムが必要です

  • データベース — 記事やユーザーなどのデータを保存・取得するための仕組みです(MySQL など)

これら3つを自分のパソコン上に個別にインストール・設定するのは手間がかかります。DDEV を使うと、これらをまとめてコンテナとして動かすことができ、バージョン管理や設定の手間を大幅に省けます。

なぜ DDEV を使うのか

MAMP は GUI で操作できるシンプルさが魅力ですが、チーム開発や複数プロジェクトの管理が複雑になりがちです。Docker を直接使う方法は柔軟性が高い反面、設定ファイルの記述に慣れが必要です。

DDEV はその中間にあたる選択肢で、以下のようなメリットがあります。

  • macOS・Windows・Linux すべてで同じように動く

  • プロジェクトごとに PHP バージョンを切り替えられる

  • ddev start ひとつで起動、ddev stop で停止とシンプル

  • チームで設定ファイルを共有すれば全員が同じ環境を再現できる

セットアップ手順

1. Docker をインストールする

DDEV は内部で Docker を使うため、先に Docker のインストールが必要です。お使いの OS に合わせて DDEV 公式ドキュメントを参照してインストールしてください。

Docker のインストール(公式ドキュメント)

複数のDocker provider がありますが、Docker 公式が提供する Docker Desktop の利用を推奨します。

2. DDEV をインストールする

次に DDEV 本体をインストールします。お使いの OS に合わせて DDEV の公式ドキュメントを参照してください。

DDEV のインストール(公式ドキュメント)

インストール後、以下のコマンドを実行してバージョンが表示されれば、正しくインストールされています。

ddev -v

3. プロジェクトフォルダを作成する

任意の作業ディレクトリに、プロジェクト用のフォルダを作成します。

mkdir my-acms-project
cd my-acms-project

4. a-blog cms のファイルを配置する

ダウンロードページから a-blog cms のパッケージをダウンロードし、展開してください。展開後、ablogcms ディレクトリの中身をプロジェクトフォルダ直下の web/ ディレクトリに配置してください。

my-acms-project/
└── web/          ← a-blog cms のファイルをここに展開する

5. DDEV プロジェクトを設定する

以下のコマンドで DDEV の設定ファイルを生成します。

ddev config --project-type=php --docroot=web --php-version=8.4 --database=mysql:8.4

PHP バージョンは動作条件を確認して、必要に応じて変更してください。

6. DDEV を起動する

ddev start

起動が完了すると、アクセス用の URL(例: https://my-acms-project.ddev.site)が表示されます。

7. a-blog cms をインストールする

ブラウザで表示された URL にアクセスするとインストール画面が開きます。

データベースの接続設定は以下のように入力してください。

項目

データベースホスト

db

データベース名

db

ユーザー名

db

パスワード

db

db は DDEV が自動的に用意するデータベースコンテナのサービス名です。localhost127.0.0.1 では接続できませんのでご注意ください。

よく使うコマンド

コマンド

説明

ddev start

プロジェクトを起動する

ddev stop

プロジェクトを停止する(データは保持される)

ddev restart

プロジェクトを再起動する

ddev describe

プロジェクトの接続情報を表示する

ddev sequelace

Sequel Ace でデータベースを開く

ddev delete

プロジェクトとデータベースを削除する

ddev poweroff

すべてのプロジェクトとコンテナを停止する

その他のコマンドについては DDEV 公式ドキュメント(Commands) を参照してください。

よくある質問

Q. ブラウザでローカル環境にアクセスできない

  • Docker が起動しているか確認してください

  • ddev start が正常に完了しているか確認してください(エラーが出ていないか)

  • MAMP など他のローカルサーバーが起動している場合は停止してください

Q. PHP のバージョンを変更したい

.ddev/config.yamlphp_version を変更して ddev restart を実行してください。または以下のコマンドで変更できます。

ddev config --php-version=8.2
ddev restart

Q. ddev stopddev delete の違いがわからない

ddev stop はプロジェクトを一時停止するだけで、データベースの中身やファイルはそのまま保持されます。ddev start で再起動すれば元の状態に戻ります。

ddev delete はデータベースを含むプロジェクトのすべてのデータを削除します。コードファイル(web/ 以下)は削除されませんが、データベースの中身は消えてしまうため、必要な場合は先に ddev export-db でバックアップを取ってください。

Q. 複数のプロジェクトを同時に起動できますか

できます。DDEV はプロジェクトごとに独立したコンテナで動くため、複数プロジェクトを同時に起動しても競合しません。MAMP のようにポート番号を手動で切り替える必要もありません。

Q. プロジェクトを削除したい

プロジェクトディレクトリで以下のコマンドを実行してください。データベースが削除されます。コードファイルを合わせて削除したい場合は、コマンド実行後にフォルダごと削除してください。

ddev delete

Docker を利用したローカル環境構築


このドキュメントでは、a-blog cms を動かすためのローカル環境を Docker を利用して立ち上げます。

Docker とは

Docker はアプリケーションをコンテナと呼ばれる独立した環境でまとめて動かすためのプラットフォームです。OS やミドルウェアの設定をコードで管理できるため、「自分の環境では動くのに本番では動かない」といった問題を防ぎ、チームで同じ開発環境を簡単に共有できます。

詳しくは Docker 公式ドキュメント を参照してください。

a-blog cms 向けに PHP・MySQL 等の環境をコンテナで用意することで、ローカルマシンに直接ソフトウェアをインストールすることなく開発を始められます。

利用する Docker イメージ


mysql 公式イメージをそのまま使用します
nginxproxy/nginx-proxy 複数環境を立ち上げる為のリバースプロキシです
atsu666/ioncube  ioncubeLoaderがインストール済みのphp-apatch環境です(Ver. 2.x 用)
atsu666/acms PHP8.0 以上の php-apatch環境です( ioncubeLoaderはインストールされていません。Ver.3.0以上での使用を推奨)

推奨: a-blog cms Ver.3.0 以上では atsu666/acms を使用してください。ioncubeLoader は不要になりました。


atsu666/acmsで利用可能な PHP バージョン


PHPバージョン イメージ
8.4 atsu666/acms:8.4
8.3 atsu666/acms:8.3
8.2 atsu666/acms:8.2
8.1 atsu666/acms:8.1
8.0 atsu666/acms:8.0

atsu666/ioncube(2.x用)で利用可能な PHP バージョン


PHPバージョン イメージ
7.3 atsu666/ioncube:7.3
7.2 atsu666/ioncube:7.2
7.1 atsu666/ioncube:7.1
7.0 atsu666/ioncube:7.0
5.6 atsu666/ioncube:5.6
5.5 atsu666/ioncube:5.5
5.4 atsu666/ioncube:5.4
5.3 atsu666/ioncube:5.3

※ a-blog cms Ver. 3.0 以上では ionCubeLoader が不要になりましたが、PHP 7.x の環境で Ver.3.0 以上をお使いの場合は、引き続き atsu666/ioncube:7.x をお使いください


セットアップ手順

1. ディレクトリ構成を準備する

任意の作業ディレクトリを作成し、以下の構成になるよう準備します。

my-acms-project/
├── docker-compose.yml
└── html/          ← a-blog cms のファイルをここに展開する

ダウンロードページから a-blog cms のパッケージをダウンロードし、展開してください。展開後、ablogcms ディレクトリの中身をプロジェクトフォルダ直下の html/ ディレクトリに配置してください。

2. docker-compose.yml を作成する

以下の内容をそのままコピーして docker-compose.yml を作成してください(PHP バージョンは必要に応じて変更してください)。

services:
  # db
  db:
    image: mysql:8.4
    ports:
      - "3306:3306"
    volumes:
      - ./mysql-data:/var/lib/mysql:delegated
    environment:
      MYSQL_ROOT_PASSWORD: root
    command: --innodb-use-native-aio=0

  # proxy(複数サイトを同時に起動するためのリバースプロキシ)
  proxy:
    image: nginxproxy/nginx-proxy
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
    ports:
      - "80:80"
      - "443:443"
  # web
  web:
    image: atsu666/acms:8.4  # 使用したい PHP バージョンに合わせて変更
    privileged: true
    volumes:
      - ./html:/var/www/html  # ホストとコンテナ間のファイル同期
      - /etc/localtime:/etc/localtime:ro
    environment:
      - VIRTUAL_HOST=acms.test,www.acms.test  # アクセスに使うホスト名
      - APACHE_DOCUMENT_ROOT=/var/www/html   # ドキュメントルート

ホスト・コンテナ間のファイル同期について

volumes の設定により、ホスト側のファイルを変更すると即座にコンテナ内にも反映されます。書式は ホストのパス:コンテナのパス です。

volumes:
  - ./html:/var/www/html  # ホスト側の ./html をコンテナの /var/www/html にマウント

詳しくは Docker 公式ドキュメント「Volumes」 を参照してください。

VIRTUAL_HOST の設定について

nginxproxy/nginx-proxy はリバースプロキシとして動作し、指定された port で受けたリクエストをホスト名に応じて各コンテナに振り分けます。これにより、複数の Web コンテナを起動していても port を変えることなく共存できます。

設定は environmentVIRTUAL_HOST を記述するだけです。カンマ区切りで複数のホスト名を指定できます。

environment:
  - VIRTUAL_HOST=acms.test,www.acms.test

3. hosts ファイルを編集する

VIRTUAL_HOST に指定したホスト名でブラウザからアクセスできるよう、OS の hosts ファイルに以下を追記してください。

macOS / Linux の場合

ファイルパス: /etc/hosts

127.0.0.1  acms.test www.acms.test

編集コマンド:

sudo vi /etc/hosts

Windows の場合

ファイルパス: C:\Windows\System32\drivers\etc\hosts

管理者権限でメモ帳などを開き、以下を追記してください。

127.0.0.1  acms.test www.acms.test

4. Docker を起動する

$ cd /path/to/my-acms-project  # docker-compose.yml があるディレクトリへ移動
$ docker compose up -d

5. a-blog cms のインストールを行う

ブラウザで http://acms.test にアクセスしてインストール画面を開いてください。

データベースの接続設定は以下のように入力します。

項目

データベースホスト

db

データベース名

任意(例: db_acms

ユーザー名

root

パスワード

root

db はサービス名です。コンテナ間は自動的にサービス名で名前解決できます。ホストのIPアドレスを指定する必要はありません。詳しくは Docker 公式ドキュメント「Networking in Compose」 を参照してください。


M1/M2/M3 Mac(Apple Silicon)での注意点

atsu666/ioncube:5.5atsu666/ioncube:5.4atsu666/ioncube:5.3 は arm64 アーキテクチャに対応していません。Apple Silicon Mac でこれらのイメージを使用する場合は、docker-compose.ymlplatform: linux/amd64 を追加してください。

web:
  image: atsu666/ioncube:5.5
  platform: linux/amd64  # この行を追加
  privileged: true
  volumes:
    - ./html:/var/www/html
    - /etc/localtime:/etc/localtime:ro
  environment:
    - VIRTUAL_HOST=acms.test,www.acms.test
    - APACHE_DOCUMENT_ROOT=/var/www/html

よくある質問

Q. ブラウザでローカル環境にアクセスできない

  • hosts ファイルの編集が反映されているか確認してください

  • docker compose ps でコンテナが起動しているか確認してください

  • proxy コンテナの 80 番ポートが他のプロセスと競合していないか確認してください(MAMP などの他のローカルサーバーが起動している場合は停止してください)

Q. データベースに接続できない

config.server.php の DB_HOST には db(サービス名)を指定してください。localhost127.0.0.1 では接続できません。

MAMP のローカル環境に a-blog cms を簡単インストールする


a-blog cmsをローカル環境 MAMP に、標準インストーラーではなく「簡単セットアップ」を利用して設置する方法をご説明します。簡単セットアップは、標準のインストーラーを起動できる環境を準備するためのプログラムです。

MAMP がインストールされていない場合には、まずは普通に MAMP をインストールしてください。

MAMP ダウンロード

macOS版については、Intel CPU版と ARM CPU版がありますので、ご利用の mac に合わせてインストールを行なってください

MAMP をインストールすると有料版の MAMP PRO も同時にインストールされますが、無料版の MAMP で問題ありません。


MAMPのダウンロードページ

MAMPのダウンロードページ


インストールが終わりましたら、一度 MAMP を起動してください。起動時には、管理者のパスワードを入力する必要があります。

次にPHPのバージョンを選択します。動作条件 を確認して、必要に応じて PHP version のプルダウンから変更してください



標準では Web のポートが 8888 に設定されており、Web にアクセスする際には http://localhost:8888/ になっています。そのままでも大丈夫ですが、標準の 80 を利用して :8888 がなくてもアクセスできるように設定をしてみましょう。

Preferences をクリックし、Ports のタブで(80 & 3306)のボタンをクリックし( OK )ボタンで設定を保存します。


ポート設定画面

ポート設定画面


MAMP のウィンドウの右上に Start と書かれている時には MAMP は止まっていますので、クリックして起動してください。これで、 http://localhost/ でアクセスできるようになります。

これで MAMP のインストールは終了です。

ダウンロードページの一番下に「簡単セットアップ」のリンクがありますので、そちらをクリックしてダウンロードしてください。

簡単セットアップダウンロード



簡単セットアップのダウンロード

簡単セットアップのダウンロード


簡単セットアップで出来る事

「標準インストーラー」を起動する前段階で a-blog cms をインストールする環境を構築する作業を自動化するためのプログラムで以下の作業を自動化しています。

また、いろいろなバージョンでのテスト環境を簡単に構築できるように、a-blog cms のバージョンを指定できるようになりました。標準は最新版の設定になっています。

  1. a-blog cms のパッケージを直接ダウンロード
  2. ダウンロードしたファイルを解凍し設置先に移動
  3. .htaccess を有効にし、サーバーにあわせた設定
  4. ダウンロードした圧縮ファイル等の削除
  5. a-blog cms インストーラーを起動

ダウンロードしたファイルを解凍し setup.php ファイルを /Applications/MAMP/htdocs に setup.php を移動させます。 もし、htdocs にフォルダを作って、その中にインストールしたい場合には、フォルダの中でもかまいません。



http://localhost/setup.php にアクセスすると、a-blog cms 「標準インストーラー」のダウンロードや環境のセットアップ等が行われます。

インターネットのアクセス環境にもよりますが、数十秒〜数分画面に変化がない事があるかもしれませんがお待ちください。 /Applications/MAMP/htdocs を Finder で開いていると zip ファイルのサイズが増えている事が確認できます。a-blog cms と ioncube のファイルのダウンロードが行われるとサーバーの環境を自動調整しされます。

MAMP を再起動

MAMPを再起動して http://localhost/ にアクセスしてください。 という表示がブラウザ上に表示されたら MAMP を再起動(サーバを停止&起動)し、 http://localhost/ にアクセスしてください。インストール画面が表示されます。



利用規約が表示されますので、同意してインストールを進めてください。


セットアップ画面

セットアップ画面


ドメインの設定

ドメインの設定については、そのままで大丈夫です。

もし、利用したいドメインがフォーム上に入力されていないのであれば、利用したいドメインにURLを変更して前の画面からやり直してください。(独自ドメインの利用については、コントロールパネル上で設定が済んでいる必要があります)


ドメインを設定

ドメインを設定


データベースの設定

データベースの設定画面では、MAMP の初期の設定がすでにされていますので、そのままで大丈夫です。


データベースサーバー名

localhost

データベース名

db_acms

データベースユーザー名

root

データベースパスワード

root

テーブル先頭文字列

acms_

データベース文字コード

utf8mb4


データベースの接続設定をする

データベースの接続設定をする


ブログとユーザーの設定


ブログとユーザーの設定画面では、インストール時の初期テーマを決めることができます。

下の図の各入力欄には、ユーザー名メールアドレスユーザーIDパスワードを入力します。メールアドレスにはシステムから通知が届くアドレスを設定してください。

パスワードが分からなくなった時のために、メールアドレスは普段利用しているものを必ず設定してください。


インストールデータの設定をする

インストールデータの設定をする


ブログの名前やユーザーの設定については、管理ページで後から変更する事が可能です。

最後に

最後に、setupディレクトリ名を変更する事でインストールが完了します。

このページから setup ディレクトリを変更する機能が用意されておりますので、setup を他の名前に変更してください。(表示された時点で setup_ランダム文字列 が設定されています)もし、移動ボタンをクリックしないで画面を閉じて終了してしまった場合には、Finder 上から setupディレクトリの名前を変更してください。


インストール完了

インストール完了


これで無事にインストールが完了です。

管理ページにアクセスする際には、インストールしたサイトのURL に /login/ をつけてアクセスする事でログイン画面が表示されます。