CodeIgniter4 インストール方法

こんにちは!むちょこです。

確定申告に疲れたので CodeIgniter4 のインストールをしていこうと思います。

環境確認

今回のインストール先は CentOS 8 です。まずは現在の環境が CodeIgniter4 をインストールできる状態かどうか確認します。

PHP のバージョン確認

PHP version 7.3 or newer is required

https://codeigniter4.github.io/userguide/intro/requirements.html

PHP 7.3 以上が必要だそうです。

コマンド
$ php -v
PHP 7.4.11 (cli) (built: Sep 29 2020 10:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.11, Copyright (c), by Zend Technologies

PHP 7.4 が入っていたので問題ありませんでした(今回の件とは関係ありませんが、 7.4 はそろそろセキュリティサポートも切れますね。バージョンアップしなくちゃ)。

PHP モジュール確認

with the intl extension and mbstring extension installed.

https://codeigniter4.github.io/userguide/intro/requirements.html

intl モジュールと mbstring モジュールがインストールされていることを確認します。

コマンド
$ php -m | grep 'intl'
intl
コマンド
$ php -m | grep 'mbstring'
mbstring

両方入っていました。

The following PHP extensions should be enabled on your server: php-json, php-mysqlnd, php-xml

https://codeigniter4.github.io/userguide/intro/requirements.html

php-json, php-mysqlnd, php-xml が有効になっていることを確認します。

コマンド
$ php -r 'phpinfo();' | grep 'json'
...
json support => enabled

コマンド
$ php -r 'phpinfo();' | grep 'mysqlnd'
...
mysqlnd => enabled
Version => mysqlnd 7.4.11
...
コマンド
$ php -r 'phpinfo();' | grep 'XML'
DOM/XML => enabled
DOM/XML API Version => 20031129
libXML support => active
libXML Compiled Version => 2.9.7
libXML Loaded Version => 20907
libXML streams => enabled
SimpleXML
SimpleXML support => enabled
XML Support => active
XML Namespace Support => active
XMLReader => enabled
XMLWriter => enabled

どれも大丈夫そうです。

最低限の要件はクリアしたので、環境確認はここまでにします。

CodeIgniter サーバ要件

他にもあると便利なモジュールは公式ドキュメントをご確認ください。

https://codeigniter4.github.io/userguide/intro/requirements.html

Composer のインストール

CodeIgniter のインストール方法はいくつか選択肢がありますが、サードパーティーのパッケージ追加や CodeIgniter のバージョンアップを簡単に行うには Composer が便利なようです。

ということで Composer をインストールします。

Composer インストール方法

Composer のインストールコードはバージョンごとに異なりますので、都度公式ドキュメントを確認して行ってください。

https://getcomposer.org/download/

ここのコマンドをコピペして実行すれば大丈夫です。

インストールが終わったら、 composer.phar を適当な場所に移動します。

コマンド
$ sudo mv composer.phar /usr/local/bin/composer

インストールできました!

コマンド
$ composer --version
Composer version 2.2.4 2022-01-08 12:30:42

CodeIgniter のインストール

準備が整ったので、 CodeIgniter をインストールしていきます。

コマンド
$ composer create-project codeigniter4/appstarter project-name

project-name 部分には、任意のプロジェクト名を入れてください。

コマンド
$ ls
project-name

インストールが終わると、任意で名付けたプロジェクト名のディレクトリが生成されます。

ディレクトリの中身はこんな感じです。

コマンド
$ cd project-name
$ ls -la
total 156
drwxrwxr-x  7 muchoco muchoco  4096 Jan 10 12:24 .
drwxr-xr-x  3 muchoco muchoco  4096 Jan 10 12:24 ..
drwxrwxr-x 12 muchoco muchoco  4096 Jan  4 09:59 app
-rwxr-xr-x  1 muchoco muchoco  3902 Jan  4 09:59 builds
-rw-rw-r--  1 muchoco muchoco  1049 Jan  4 09:59 composer.json
-rw-rw-r--  1 muchoco muchoco 92995 Jan 10 12:24 composer.lock
-rw-rw-r--  1 muchoco muchoco  4506 Jan  4 09:59 env
-rw-rw-r--  1 muchoco muchoco  1860 Jan  4 09:59 .gitignore
-rw-rw-r--  1 muchoco muchoco  1159 Jan  4 09:59 LICENSE
-rw-rw-r--  1 muchoco muchoco  2091 Jan  4 09:59 phpunit.xml.dist
drwxrwxr-x  2 muchoco muchoco  4096 Jan  4 09:59 public
-rw-rw-r--  1 muchoco muchoco  2724 Jan  4 09:59 README.md
-rwxr-xr-x  1 muchoco muchoco  2197 Jan  4 09:59 spark
drwxrwxr-x  6 muchoco muchoco  4096 Jan  4 09:59 tests
drwxrwxr-x 21 muchoco muchoco  4096 Jan 10 12:24 vendor
drwxrwxr-x  7 muchoco muchoco  4096 Jan  4 09:59 writable

サーバのドキュメントルートは project-name/public に設定してください。

CodeIgniter のパーミッションを設定

writable ディレクトリは php の実行ユーザが書き込める必要があります。

今回は web サーバとして apache を利用しているので、 apache が書き込めるように所有者を変更しておきます。

ついでに権限も 755 に狭めておきます。

コマンド
$ sudo chown -R apache writable
$ sudo chmod -R 755 writable

CodeIgniter の環境変数を設定

環境変数は Config ディレクトリのファイルを直接編集しても良いですが、今回はより柔軟性の高い .env ファイルを使うことにします。

テンプレートとして env ファイルが用意されているので、そのままファイル名を変更し、必要なところだけコメントアウトを外しながら編集します。

コマンド
$ mv env .env

環境を開発モードに、ベースURLを「https://example.com/」に設定してみます。

ベースURLは最後に「/」が必要なことに注意してください。

.env
CI_ENVIRONMENT = development
app.baseURL = 'https://example.com/'

完成!

CodeIgniter のインストールが完了し、開発を行う準備ができました!