福岡のIT系の会社で働くエンジニアのブログです。

技術雑記

【baserCMS】CentOS8 / PHP 7.4 / MySQL 8 の比較的新しい構成で最新版のbaserCMS4を試してみました

Twitter bookmark Facebook LINE Pocket Feedly RSS

CentOS 8 に PHP 7.4 と Apache 2.4、MySQL 8 をインストールしてbaserCMSの最新版(Ver. 4.2.5)を動かしてみたのでその記録です。

 

※ CentOS 8のインストールは別の機会に記事にしたいと思います。とりあえず別の方の記事を参照してください。
既にVirtualBoxに最小構成でのCentOS 8がインストール済であることを前提で進めたいと思います。

あと、baserCMSの動作確認用なのでセキュリティ関連の設定はしていません。
実際に公開するサーバに設置するときはきちんと設定しましょう!

 

PHP7.4のインストール

今回はパッケージで手っ取り早くPHP7.4をインストールしようと思いますのでEPEL と REMI Repositoryを追加します。

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm 
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

作業時に必要そうなツールも入れておきます。

sudo dnf install dnf-utils vim git wget unzip

php7.4と、baserCMS動作に必要なモジュールも追加しておきます。

sudo dnf module install php:remi-7.4

sudo dnf update
sudo dnf upgrade

sudo dnf install php php-gd php-pdo php-xml php-mbstring php-mysqlnd

バージョンを確認します

php -v

PHP 7.4.0 (cli) (built: Nov 26 2019 20:13:36) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

やったね!

また、(念の為バックアップ後)php.iniファイルの設定を変更しておきます。

sudo cp -a /etc/php.ini /etc/php.ini.org
sudo vim /etc/php.ini
;date.timezone =
↓
date.timezone = 'Asia/Tokyo'

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
↓
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT

 

Apache のインストール

PHP同様にパッケージからインストールします。

sudo dnf install httpd

無事インストールできたらバージョンを確認します。

$ httpd -v
Server version: Apache/2.4.37 (centos)
Server built:   Oct  7 2019 21:42:02

いい感じですね。

まずは、apache関連を動作するユーザーを作成します。

sudo useradd -s /sbin/nologin www

httpd.confファイルの設定も変更しておきます。

sudo cp -a /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
sudo vim /etc/httpd/conf/httpd.conf
#User apache
#Group apache
↓
User www
Group www
< Directory "/var/www/html" >
    #AllowOverride None
↓
    AllowOverride All

apache起動して、サーバ起動時に自動で立ち上がるように設定しておきます

sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl status httpd

 

php-fpmの導入と設定

こちらも設定ファイルを変更します。

sudo cp -a /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.org
sudo vim /etc/php-fpm.d/www.conf
;user = apache
;group = apache
↓
user = www
group = www
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
↓
listen.owner = www
listen.group = www
listen.mode = 0666

apacheと同様に立ち上げと、サーバ起動時に自動起動するように設定しておきます。

sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl status php-fpm

 

MySQL8 のインストール

MySQLもパッケージでぱぱっとインストールします。

sudo dnf install mysql mysql-server

インストールできたらバージョン確認します。

$ mysql --version
mysql  Ver 8.0.17 for Linux on x86_64 (Source distribution)

※ システムの都合上、日付に0000-00-00 00:00:00 などが入っている為、sql_modeを厳密な設定からゆるい設定に変更しています。

sql_modeの値を[mysqld]セクションに追記します

sudo cp -a /etc/my.cnf.d/mysql-server.cnf /etc/my.cnf.d/mysql-server.cnf.org
sudo vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
    :
sql_mode = NO_ENGINE_SUBSTITUTION

ちなみにデフォルト値は下記の通り

;sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

 

※ MySQL8からデフォルトの文字コードがutfmb4、照合順序が utf8mb4_ja_0900_as_cs とかになったみたいなので念の為、 my.cnf に下記も追記しました。
character_set_server=utf8mb4
collation_server=utf8mb4_general_ci
参考: http://scsk-db.jp/mysql/topics/2018/05/23-090000.html

 

ほかと同様に、立上げとサーバ起動時に自動起動するように設定します。

sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld

無事インストールできたら、

  • データベース名:basercms
  • データベースユーザー:basercms
  • データベースパスワード:xxxxxxx

という感じでアカウントなどを作成します。

mysql -u root
create database basercms;
create user 'basercms'@'localhost' identified by 'xxxxxxx';
show grants for basercms@localhost;
grant all on *.* to basercms@localhost;
show grants for basercms@localhost;
exit;

 

SELinuxの設定

※ ごめんなさい、手っ取り早く無効化で。

SELinux有効時の設定などは別の機会に記事にします。

sudo cp -a /etc/selinux/config /etc/selinux/config.org
sudo vim /etc/selinux/config
SELINUX=enforcing
↓
SELINUX=disabled

設定変えたら、サーバ自体を再起動します。

sudo reboot

 

firewallの設定

http/httpsを外部からアクセス許可するようにします。(初期状態はsshのみのようです)

sudo firewall-cmd --list-all

ブラウザからアクセスできるようにhttp,httpsを追加します。

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent

設定を有効化します。

sudo firewall-cmd --reload

 

baserCMSの設置、インストール

公式サイトからzipファイルを取得して設置します。

cd /var/www
sudo wget https://basercms.net/packages/download/basercms/latest_version -O basercms.zip
sudo unzip basercms.zip
sudo mv basercms/* html/
sudo mv basercms/.htaccess html/
sudo chown www:www -R html

パーミッションをまとめて変更します。

sudo -s
cd /var/www/html
find app/Config -type f -print0 | xargs -0 chmod 666
find app/Config -type d -print0 | xargs -0 chmod 777
find app/Plugin -type f -print0 | xargs -0 chmod 666
find app/Plugin -type d -print0 | xargs -0 chmod 777
find app/db -type f -print0 | xargs -0 chmod 666
find app/db -type d -print0 | xargs -0 chmod 777
find app/View/Pages -type f -print0 | xargs -0 chmod 666
find app/View/Pages -type d -print0 | xargs -0 chmod 777
find app/tmp -type f -print0 | xargs -0 chmod 666
find app/tmp -type d -print0 | xargs -0 chmod 777
find files -type f -print0 | xargs -0 chmod 666
find files -type d -print0 | xargs -0 chmod 777
find theme -type f -print0 | xargs -0 chmod 666
find theme -type d -print0 | xargs -0 chmod 777
find img -type f -print0 | xargs -0 chmod 666
find img -type d -print0 | xargs -0 chmod 777
find css -type f -print0 | xargs -0 chmod 666
find css -type d -print0 | xargs -0 chmod 777
find js -type f -print0 | xargs -0 chmod 666
find js -type d -print0 | xargs -0 chmod 777

設置できたらIPアドレスを確認して、ブラウザでアクセスしてみます。

ip a
:
3: enp0s8:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.xx.xx/24 brd 192.168.xx.255 scope global dynamic noprefixroute enp0s8
:

http://192.168.xx.xx/にアクセスしてインストール画面が出たらOKです!

 

baserCMS4インストールの様子を動画にしてみましたよ

動画のサムネイル

よかったら皆さんも試してみてください!

 

Twitter bookmark Facebook LINE Pocket Feedly RSS