1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Codeigniter4環境構築(CentOs7、nginx、php、MySQL)

Posted at

システム環境

・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を作成して、次のように内容を記述します

/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
/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の設定ファイルを編集します
編集部分のみ記載します

/etc/php-fpm.d/www.conf
< 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
/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はログなどが書き込まれるディレクトリになるため権限を付与する必要があります)

/var/www/html/codeigniter4
chown nginx:nginx -R writable

先に設定したドキュメントルートをcodeigniter4フォルダに変更します

/etc/nginx/conf.d/default.conf
< root /var/www/html

> root /var/www/html/codeigniter4/public;

nginxの設定を変更したので再起動を行います

ターミナル
systemctl restart nginx

ブラウザに自身のURLを入力して下さい
「Welcome to Codeigniter4」の画面が表示されることを確認して下さい
codeigniter4.png

codeigniterの環境設定

envファイルに環境設定がサポートされているので.envという名前のファイルにコピーして使用します

/var/www/html/codeigniter4
cp -p env .env
/var/www/html/codeigniter4/.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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?