CentOS 8 WordPress インストール

2021-07-13

Apache 2.4 + MariaDB 10.3 + PHP 7.3 でWordpressを利用するWEBサーバーを作る

CentOS 8で稼働しているサーバーでWordpressを利用できるようにします、インストールする環境は以下のような環境です

  • CentOS 8.2
  • Apache 2.4
  • MariaDB 10.3
  • PHP 7.3

EPEL、remiのレポジトリをインストールする

CentOS 8の標準のPHPではPHP 7.3が含まえていないので、PHP 7.3を利用するためにEPELremiのレポジトリをインストールします。
※ PHP 7.3 のインストールは本記事の後半の方で紹介します

# EPELのレポジトリをインストール
$ sudo dnf install epel-release

# remiレポジトリをインストール
$ sudo dnf install http://rpms.famillecollet.com/enterprise/remi-release-8.rpm

MariaDB 10.3 をインストールする

MariaDBをインストールします。インストールはdnfコマンドでインストールします。

# mariadb-server をインストールします
$ sudo dnf install mariadb-server

# インストールしたバージョンを確認します
$ mysql --version
mysql  Ver 15.1 Distrib 10.3.17-MariaDB, for Linux (x86_64) using readline 5.1

MariaDBを起動して、MariaDBの自動起動の設定をおこないます

$ sudo systemctl enable mariadb
$ sudo systemctl start mariadb

MariaDBの初期設定をおこないます。初期設定の詳細は、OSのバージョンが異なりますが、MariaDBのインストールと初期設定 | CentOS 7 を参考にして下さい

$ sudo mysql_secure_installation

root user without the proper authorisation.
 
# rootのパスワード設定するか? [y]を選択
Set root password? [Y/n] y
# rootのパスワード入力
New password:
# rootのパスワード再入力
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
 
 
# 匿名ユーザーを削除するか? [y]を選択
Remove anonymous users? [Y/n] y
 ... Success!
 
 
# rootユーザーのリモートログインをブロックするか? [y]を選択
Disallow root login remotely? [Y/n] y
 ... Success!
 
 
# テストDBを削除するか? [y]を選択
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
 
# ユーザ権限テーブルをリロードするか? [y]を選択
Reload privilege tables now? [Y/n] y
 ... Success!
  
Thanks for using MariaDB!

mariadb-server.cnfの設定をおこないます。主にDBで使用する文字コードを設定します

$ sudo vim /etc/my.cnf.d/mariadb-server.cnf 
[mysqld]
character-set-server = utf8

$ sudo vim /etc/my.cnf.d/client.cnf  
[client]
default-character-set = utf8
 
# 設定を変更したらMariaDBを再起動します
$ sudo systemctl restart mariadb

WordPressで利用するDBを作成します

$ mysql -u root -p
MariaDB [(none)]> CREATE USER 'wpadmin'@'localhost' IDENTIFIED BY 'パスワード';
MariaDB [(none)]> CREATE DATABASE wordpress_db;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress_db.* TO wpadmin@localhost IDENTIFIED BY "パスワード";
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

Apache 2.4 をインストール

以前はNginxを利用しましたが、今回はApacheを利用してみます。
インストールはdnfコマンドでインストールしています

$ sudo dnf install httpd

Apacheは設定ファイルは以下のような設定にしました。
Wordpress をインストールするドメインはVirtualHostを切って設定しています。SSL証明書は事前に発行済でそれを設定しています

$ sudo vi /etc/httpd/conf.d/vhosts.conf

<VirtualHost *:80>
  ServerName www.example.com
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^www\.example\.com
  RewriteRule ^/(.*)$ https://www.example.com/$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
  ServerName  ex1.m-yabe.com
  ServerAlias ex1.m-yabe.com
  ErrorLog     /var/www/vhosts/www.example.com/log/ssl-error.log
  CustomLog    /var/www/vhosts/www.example.com/log/ssl-access.log common

  DocumentRoot /var/www/vhosts/www.example.com/wordpress/
  DirectoryIndex index.php index.html

  SSLEngine On
  SSLVerifyClient none
  SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
  SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

  <Directory /var/www/vhosts/www.example.com/wordpress/>
    Options FollowSymLinks MultiViews
    AllowOverride All
    Require all granted

    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
</VirtualHost>

設定ファイルを作ったら、Apacheを起動して、その後自動起動等の設定をおこないます

$ sudo systemctl start httpd
$ sudo systemctl enable httpd

PHP 7.3 をインストールする

PHP 7.3をインストールするには、一旦PHPをモジュールをリセットして、その後PHP 7.3 に設定します

$ sudo dnf module reset php
$ sudo dnf module enable php:remi-7.3

PHPのモジュールの設定は済んだら、epel, remiをレポジトリを有効にしてPHPと関連パッケージをインストールします

$ sudo dnf install --enablerepo=epel,remi php php-mbstring php-pear php-mysqlnd php-gd php-pecl-zip php-json
$ php -v
PHP 7.3.19 (cli) (built: Jun  9 2020 08:06:30) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.19, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.19, Copyright (c) 1999-2018, by Zend Technologies

WordPress のインストール

WordPress をインストールするディレクトリに移動してWordpress の圧縮ファイルをダウンロードします

$ cd /var/www/vhosts/www.example.com/
$ wget http://wordpress.org/latest.tar.gz
$ tar xzvf latest.tar.gz

wp-config-sample.php を wp-config.php にリネームして、DB関連の設定をおこないます

$ mv wordpress/wp-config-sample.php wordpress/wp-config.php
$ vi wordpress/wp-config.php
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'wordpress_db' );
/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'wpadmin' );
/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', 'password_here' );
/** MySQL のホスト名 */
define( 'DB_HOST', 'localhost' );

wp-config.php を設定が終わったら、Wordpress のCUIでのセットアップは終了しているので、ブラウザで「https://www.exapmle.com/wp-admin/install.php」にアクセスすればインストール終了です