主題
- #CodeIgniter 4
- #Apache2
- #CI4初期化画面
- #PHPエクステンションインストール
- #開発サーバー環境設定
作成: 2024-03-27
作成: 2024-03-27 19:47
CodeIgniter 4。
会社で新しいプロジェクトを進める機会が生まれました。入社後、既存のウェブページはCodeIgniter 3を使用していたため、好奇心半分期待半分でCodeIgniter 4を使用することに決定します。
最初にすべき開発サーバーのセットアップ。このドキュメントは、開発サーバーにCodeigniger 4をアップロードする際に経験した苦労(?)を記録するために作成しました。
開発サーバーのオペレーティングシステムはUbuntu 20.04.2バージョンでテストしました
Apache2、php 7バージョンは事前にインストール済みなので、CodeIgniter 4(以下CI4)フレームワークファイルをダウンロードします。
上記のURLにアクセスして、CI4 Downloadをクリックしてフレームワークファイルをダウンロードします。基本的にはPHP 7.3バージョン以上が必要とのことです。
解凍すると、上記の画面のようなファイルを確認できます。私がテストに使用したCIバージョンは4.1.3です。
これでダウンロードしたプロジェクトファイルをApache2にアップロードします。
私はテストのために、ci4にプロジェクト名を変更してアップロードしました。アップロード後に正常に動作するかどうかを確認するために、localhost(またはアドレス)/public/index.phpにアクセスしてみます。
アクセスするとすぐに、エラー画面が表示されました。
実はここからが苦労の始まりでした。まず私の場合、フォルダの権限とPHPエクステンションがインストールされていないために表示されるエラーでした。まずはプロジェクトファイル内の/writableフォルダの権限を変更します。
sudo chmod -R 777 writable
2つ目に、必須のphpエクステンションをインストールする必要があります。必須エクステンションとしては、curl、intl、mbstring、xmlの4つです。既存のサーバーで動作しているサーバーではインストールされている場合もありますが、私は初めてサーバーをセットアップするため、一つ一つインストールします。
sudo apt-get install php-curl
sudo apt-get install php-intl
sudo apt-get install php-mbstring
sudo apt-get install php-xml
上記の命令を一つずつ実行して、必要なエクステンションをインストールします。
最後に、php.iniファイルでcrul、intlエクステンションのコメントアウトを解除する必要があります。
sudo nano /etc/php/7.4/apache2/php.ini
php.iniファイルは、サーバーの環境によって場所が異なる場合があります。上記の命令を実行して、php.iniファイルを編集モードで開きます。
;extension=bz2
extension=curl
;extension=ffi
;extension=ftp
;extension=fileinfo
;extension=gd2
;extension=gettext
;extension=gmp
extension=intl
;extension=imap
;extension=ldap
;extension=mbstring
;extension=exif ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
;extension=pdo_mysql
php.iniファイルのスクロールを下へ見ていくと、上記のような部分が出てきますが、curlとintlの部分の先頭の;を削除して、Cntl + xを押して保存して終了します。
すべての設定を変更したら、apacheを再起動します。
sudo service apache2 restart
再度上記のURLにアクセスすると、正常に出力されたCI4の初期画面を見ることができます。
整理して見ると大したことない内容ですが、実際に開発サーバーを初めてセットアップする際に、Google検索と試行錯誤(?)を通じて多くの時間がかかりました。
運用中のサーバーのSMを中心にやっていたため、開発サーバーを直接セットアップする機会がありませんでしたが、実際にやってみると難しくもありながらも、それなりに学ぶ楽しみのある良い経験になりましたね。
コメント0