---
title: "インストール"
description: "Nibiruをクローンし、依存関係をインストールし、権限を設定し、最初のマイグレーションを実行します。"
---

## 要件

- **PHP** ≥ 8.2 以下の拡張機能が必要です： `pdo`, `gd`, `memcached`, `curl`。
- **Composer** で PHP の依存関係を管理します。
- **データベース**：MariaDB / MySQL ≥ 10.4、または PostgreSQL ≥ 13。非ネイティブソースに接続する場合は ODBC を使用してください。
- **Smarty**（Composer 経由でインストール）。
- **mod_rewrite**（Apache）や同等の機能を持つウェブサーバー（nginx スタイルのドキュメントルート用の `vhost.conf` が含まれています）。

## クローンとインストール
```bash
git clone https://github.com/alllinux/Nibiru my-app
cd my-app
composer install
```
Composer は `core/l/` にインストールします（Nibiru はすべてのフレームワークコードを `core/` の下に保持するために、不規則な `vendor-dir` を使用しています）。

## 設定

例の INI ファイルをコピーし、環境を編集してください。
```bash
cp application/settings/config/settings.development.ini.example \
   application/settings/config/settings.development.ini
```
設定する必要のある最低限のセクション：
```ini
[ENGINE]
templates    = "/../../application/view/templates/"
templates_c  = "/../../application/view/templates_c/"
cache        = "/../../application/view/cache/"
caching      = false
debug        = true
error.controller = "error"

[SETTINGS]
page.url = "https://my-app.local"
navigation = "/../../application/settings/config/navigation/main.json"
modules.path = "/../../application/module/"
entries.per.page = 25
smarty.css[] = "/public/css/app.css"
smarty.js[]  = "/public/js/app.js"
timezone = "Europe/Vienna"

[DATABASE]
driver   = "pdo"           ; one of: mysql, pdo, postgres, psql, postgresql
hostname = "localhost"
port     = 3306
username = "nibiru"
password = "secret"
basename = "nibiru_dev"
encoding = "utf8mb4"
is.active = true

[SECURITY]
password_hash = "change-me-at-once"

[GENERATOR]
database = true            ; auto-generate models from DB tables
```
`APPLICATION_ENV` がどのファイルを読み込むかを選択します — デフォルトは `settings.development.ini` です。
```bash
export APPLICATION_ENV=production   # picks settings.production.ini
```
## ブートストラップフォルダと権限
```bash
./nibiru -s
```
これにより、`application/view/templates_c/`、`application/view/cache/`、ログディレクトリなどが作成または権限が修正されます。

## 最初のマイグレーションを実行する

Migration files live in `application/settings/config/database/` as numbered SQL files (`001-acl.sql`, `002-account.sql`, …). Run them all with:
```bash
./nibiru -mi local
```
移行ツールは適用した内容を記録しているため、再実行しても安全です。ステージングまたは本番環境に適用するには、環境を変更します。
```bash
APPLICATION_ENV=production ./nibiru -mi production
```
:::caution[リセットコマンドは破壊的です]
`./nibiru -mi-reset {env}` はマイグレーションテーブルを削除し、どのファイルが適用されたかを記憶しません。このコマンドは再シードするのを気にしない全新的データベースでのみ使用してください。
:::

## 初回起動

ウェブサーバーのドキュメントルートをプロジェクトルート（`index.php`が含まれているディレクトリ）にポイントしてください。nginxの場合、含まれる`vhost.conf`を使用して開始点としてください。Apacheの場合、デフォルトの`.htaccess`ルートリライトは`index.php`に十分です。

`/` に移動すると、インデックステンプレートが表示されるはずです。そこから、[クイックスタート](/start/quick-start/)は最初のコントローラーとビューを作成する手順を説明します。
