こんにちは!むちょこです。
確定申告に疲れたので 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
どれも大丈夫そうです。
最低限の要件はクリアしたので、環境確認はここまでにします。
他にもあると便利なモジュールは公式ドキュメントをご確認ください。
https://codeigniter4.github.io/userguide/intro/requirements.html
Composer のインストール
CodeIgniter のインストール方法はいくつか選択肢がありますが、サードパーティーのパッケージ追加や CodeIgniter のバージョンアップを簡単に行うには 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は最後に「/」が必要なことに注意してください。
CI_ENVIRONMENT = development
app.baseURL = 'https://example.com/'
完成!
CodeIgniter のインストールが完了し、開発を行う準備ができました!