久々にWordpress環境を立ち上げたので構築手順を残しておきます。
昔同じくWordpress環境を構築したのがもう15年ほど前になるので、ホント変わった(使いやすくなった)なぁという感想です。
OS (CentOS7.2)
本手順ではCentOS7.2(7.2.1511)を使っていますが、OSのインストールの詳細については割愛します。
- Basic GUIサーバ
- 開発ツール
また、本手順ではサーバのIPアドレスは192.168.1.1であるものとします。
MariaDB (v10.3)
ディストロ標準のMariaDBはv5.5系で色々と問題ありなので、v10.x系のyumリポジトリを作成してインストール。リポジトリの作成方法は公式サイトにRepository Configuration Toolがあります。ここで表示されるyumリポジトリの内容を、サーバ上の/etc/yum.repos.d/MariaDB.repoとして配置した後、下記コマンドにてインストールします。
yum install MariaDB-server MariaDB-client
次に/etc/my.cnfの設定。※ここでは最低限に留めます。
vim /etc/my.cnf
===============================
[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8
===============================
デーモンの自動起動設定後、起動します。
systemctl enable mariadb
systemctl start mariadb
初期設定用のセキュアスクリプトを流します。
mysql_secure_installation
- 現在のrootパスワード:<空っぽ>(OSのrootパスワードとは別モノです)
- rootパスワード設定:********(※MariaDBのDBAとしてのパスワードです)
- 匿名(Anonymous)ユーザの削除
- rootユーザのリモートログインブロック
- テストデータベースの削除
- privテーブルのリロード
設定ができたらmysqlコマンドにてDBの作成と権限付与を行います。ここではApacheのバーチャルホストで2サイトを運用する前提なので、DBも2つ作成しています。
mysql -u root -p > create database wordpress; > grant all privileges on wordpress.* to wordpress@localhost identified by '<wordpress2アカウントのパスワード>'; > create database wordpress2; > grant all privileges on wordpress2.* to wordpress2@localhost identified by '<wordpress2アカウントのパスワード>';
PHP (v7.2.10)
PHPもディストロ同梱はv5.4系。さすがにこれはマズいので、v7.2系を使います。yumのbaseリポジトリが前提になっていることを前提に(依存rpmの追加に必要なので)、必要なrpmを追加します。また、PHPはyum管理下に置きたいので、remiリポジトリを使用します。
なお、PHPのSSL関連モジュールの依存関係の都合上、OpenSSLをアップデートさせておく必要があります。
流れとしては、OpenSSLアップデート⇒EPELリポジトリ登録、PHPインストール、となります。
yum update openssl
yum install epel-release-latest-7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install yum install --enablerepo=remi,remi-php72 php php72 php72-php php-intl php-mbstring php-pdo php-gd php-mysqlnd php-xml
バージョンを確認します。
php -v
PHP 7.2.10 (cli) (built: Sep 11 2018 11:22:20) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
php.iniの設定をします。
vim /etc/php.ini
======================================
date.timezone = "Asia/Tokyo"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none
mbstring.func_overload = 0
mbstring.strict_detection = Off
mbstring.http_output_conv_mimetype=
======================================
Apache (v2.4.6-40)
ここではバーチャルホストで2サイト「example1.com」「example2.com」を運用する前提で記します。前者がメインサイト、後者がサブサイトという位置づけです。
ドキュメントルートは、
メインサイト:/var/www/html/example1.com
サブサイト:/var/www/html/example2.com
というディレクトリ構成とします。
まずは主要設定ファイルのhttpd.confを編集します。
vim /etc/httpd/conf/httpd.conf ============================================== # 変更前 # Options Indexes FollowSymLinks # 変更後 Options Includes ExecCGI FollowSymLinks # 変更前 # AllowOverride None # 変更後 AllowOverride All # 以下のようにコメントアウト # AddDefaultCharset UTF-8 # 以下を追記 AddType text/css .css AddType text/javascript .js # 変更前 # DocumentRoot /var/www/html # 変更後 DocumentRoot /var/www/html/example1.com ==============================================
次に、バーチャルホストの設定を行います。初めにバーチャルホスト全体の定義です。定義するバーチャルホスト名以外でのアクセス(IPでの直アクセスなど)を拒否します。
cd /etc/httpd/conf.d/
vim virtualhost-00.conf
==================================
<VirtualHost _default_:80>
ServerName any
<Location />
Require all denied
</Location>
</VirtualHost>
==================================
メインサイトのバーチャルホスト定義
vim virtualhost-example1.com.conf ================================================= <VirtualHost *:80> ServerName example1.com DocumentRoot /var/www/html/example1.com </VirtualHost> =================================================
続いてサブサイトのバーチャルホスト定義。
ここではログ(アクセスログ、エラーログ)をメインサイトとは別のファイルに出力するよう設定します。
vim virtualhost-example1.com.conf ================================================================= <VirtualHost *:80> ServerName example2.com DocumentRoot /var/www/html/example2.com ErrorLog logs/example2.com-error_log CustomLog logs/example2.com-access_log combined env=!no_log </VirtualHost> =================================================================
WordPress (v4.9.8-ja)
WordPress日本語サイトから最新のtarを入手します。ここではv4.9.8-jaとします。tarを解凍し、Apacheのconfで指定したドキュメントルートは以下に配置します。
tar zxf wordpress-4.9.8-ja.tar.gz
chown -R apache:apache wordpress
cp -pr wordpress /var/www/html/example1.com
cp -pr wordpress /var/www/html/example2.com
Apacheの自動起動登録をし、起動します。
systemctl enable httpd systemctl start httpd
Webブラウザからアクセスし、Wordpressの初期設定を行います。
サブサイト:http://example2.com
例)
192.168.1.1 example1.com
192.168.1.1 example2.com
WordPress初期設定画面にて、以下の設定を行います。(example2.comの設定は下記”wordpress”を”wordpress2″に読み替えて設定してください)
- データベース名:wordpress
- ユーザー名:wordpress
- パスワード:<DB構築時に設定したパスワード>
- DBのホスト名:localhost
- テーブル接頭辞:wp_ ※デフォルトのまま
- サイトのタイトル:<任意のサイトタイトル>
- ユーザー名:<Wordpress管理用のユーザ名>
- パスワード:<任意のパスワード>
- メールアドレス:<任意のメールアドレス>
- 検索エンジンでの表示:チェックを外す ※任意