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インストールの様子を動画にしてみましたよ
よかったら皆さんも試してみてください!