システム環境
・Codeigniter4
・CentOs7
・Nginx1.20.2
・PHP8.0
・MySQL8.0
・Composer
必要パッケージのインストール
yum install -y epel-release yum-utils unzip curl wget bash-completion bzip2
インストール終了後システムのアップデートをします
yum update -y
Nginxのインストール
yumリポジトリからNginxのインストールを行います
新規ファイル/etc/yum.repos.d/nginx.repoを作成して、次のように内容を記述します
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
リポジトリの追加ができましたらNginxをインストールします
yum install nginx
インストール中にインストールを継続するか確認が出る場合は[y]を入力して下さい
Nginxがインストール出来たか確認をします
nginx -v
nginx version: nginx/1.20.2 //このように出力されればOK
Nginxがインストールできましたので、起動と自動起動の設定を行います
systemctl start nginx //起動
systemctl enable nginx //自動起動
自身のURLにアクセスして「Welcome to nginx」と表示されればOK
PHPのインストール
PHPモジュールのインストールを行います
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm -y
yum install --enablerepo=remi,remi-php80 php php-fpm php-cli php-common php-curl php-gd php-mbstring php-mysqlnd php-process php-xml php-opcache php-pecl-apcu php-intl php-pecl-redis php-pecl-zip php-pear -y
PHPがインストール出来たか確認します
php -v
//下記のように表示される
PHP 8.0.13 (cli) (built: Nov 16 2021 18:07:21) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.13, Copyright (c) Zend Technologies
with Zend OPcache v8.0.13, Copyright (c), by Zend Technologies
php-fpm -v
//下記のように表示される
PHP 8.0.13 (fpm-fcgi) (built: Nov 16 2021 18:07:21)
Copyright (c) The PHP Group
Zend Engine v4.0.13, Copyright (c) Zend Technologies
with Zend OPcache v8.0.13, Copyright (c), by Zend Technologies
php-fpmの起動と自動起動の設定をします
systemctl start php-fpm
systemctl enable php-fpm
Nginxの編集
php-fpmとNginxの連携します
cp -p /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.org
vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
php-fpmの編集
php-fpmの設定ファイルを編集します
編集部分のみ記載します
< user = apache
> user = nginx
< group = apache
> group = nginx
< listen = 127.~~~~
> listen = /var/run/php-fpm/php-fpm.sock
< ;listen.owner = nobody
< ;listen.group = nobody
< ;listen.mode = 0660
> listen.owner = nginx
> listen.group = nginx
> listen.mode = 0666
設定を反映させるために再起動をします
systemctl restart php-fpm
systemctl restart nginx
動作確認
phpinfoを実行するサンプルプログラムを作成してブラウザで動作確認を行います
vi /var/www/html/index.php
<?php
phpinfo();
phpのバージョン情報がブラウザに表示されることを確認します
MySQLのインストールとDB作成
CentOs7ではMariaDBがデフォルトとなっている為、関連ライブラリを削除します
rpm -qa | grep mariadb //存在の確認
yum remove mariadb-libs //削除
rm -rf /var/lib/mysql/
MySQLをインストールします
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
yum install mysql-community-server
起動と自動起動の設定をします
systemctl start mysqld.service //起動
systemctl enable mysqld.service //自動起動
インストール時にrootのパスワードがlogに出力されているのでgrepで確認します
grep password /var/log/mysqld.log
//grepで出力されるログ例
2021-10-28T02:20:42.844277Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ZrZlt!ZNt6kS
上記の例だと[ZrZlt!ZNt6kS]が初期パスワードとなります
後の作業で使用するのでパスワードを控えておいて下さい
DBの基本セットアップをします
mysql_secure_installation
パスワードが求められますので、先ほど控えたパスワードを入力します
New password、Re-enter new passwordでrootユーザのパスワードを設定する以外はEnterキーを押していきます
DBとユーザの作成 以下の通り設定しております -ユーザ名:sampleuser -DB名:sampledb -パスワード:Samplepass%2021 (任意のユーザ名、DB名、パスワードを入力してください)
mysql -u root -p
CREATE DATABASE sampledb DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'sampleuser'@'localhost' IDENTIFIED BY 'Samplepass%2021';
SHOW GRANTS FOR 'sampleuser'@'localhost';
exit;
composerのインストール
cd /usr/local/src
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer
リンク切れの場合は公式ドキュメントをご参照下さい
Codeigniter4のフォルダ作成
cd /var/www/html
composer create-project codeigniter4/appstarter codeigniter4
codeigniter4フォルダがされたことを確認
writableディレクトリに権限を設定します(writableはログなどが書き込まれるディレクトリになるため権限を付与する必要があります)
chown nginx:nginx -R writable
先に設定したドキュメントルートをcodeigniter4フォルダに変更します
< root /var/www/html
> root /var/www/html/codeigniter4/public;
nginxの設定を変更したので再起動を行います
systemctl restart nginx
ブラウザに自身のURLを入力して下さい
「Welcome to Codeigniter4」の画面が表示されることを確認して下さい
codeigniterの環境設定
envファイルに環境設定がサポートされているので.envという名前のファイルにコピーして使用します
cp -p env .env
//本番モードから開発モードに変更
< #CI_ENVIRONMENT = production
> CI_ENVIRONMENT = development
//ベースURLの設定
< #app.baseURL = ''
> app.baseURL = '自身のURL'
//DBの設定
< #database.default.hostname = localhost
< #database.default.database = ci4
< #database.default.username = root
< #database.default.password = root
< #database.default.DBDriver = MySQLi
> database.default.hostname = localhost
> database.default.database = sampledb
> database.default.username = sampleuser
> database.default.password = Samplepass%2021
> database.default.DBDriver = MySQLi
以上で一通り環境構築は完了です! 最後まで読んで頂きありがとうございます!
参考記事
Codeigniter4ドキュメント
https://qiita.com/You_name_is_YU/items/82ea7f9fcae43649ebda