と書いてあるので、ここでは最新版の WordPress 4.7, PHP 7.0, MySQL 5.6 をインストールします。
安全にご利用いただけるのは最新版のみです。過去バージョンはメンテナンスされておりませんのでご注意ください。
古い PHP や MySQL しか利用できないレガシーな環境でも、PHP 5.2.4 以上、かつ MySQL 5.0 以上であれば WordPress は動作しますが、公式サポートは終了しており、サイトがセキュリティの脆弱性にさらされる危険があります。
下記の CentOS の上に構築します。予め CentOS をインストールしておいてください。
OS CentOS 7 IP アドレス 192.168.1.1 サーバー名 www.example.jp ホスト名 www
今回のインストール要件です。
適宜、自分の環境に合わせて変更してください。
インタープリタ PHP 7.0 データベース MySQL 5.6 WordPress 設置ディレクトリ /var/www/html/wp_1/ URL http://www.example.jp/wp_1/ MySQL データベース名 wordpress ユーザー名 wp_user パスワード password ホスト名 localhost テーブル接頭辞 wp_1 WordPress サイトのタイトル WordPress テスト 管理用ユーザー名 testuser 管理用パスワード ******** (自動的に生成される) メールアドレス who@example.jp 検索エンジンでの表示 検索エンジンがサイトをインデックスしないようにする
1-1. sendmail がインストールされていないことを確認する。
$ yum list installed | grep sendmail | wc -l1-2. sendmail をインストールする。
0
$ su1-3. sendmail を起動する。
# yum -y install sendmail
# yum list installed | grep sendmail
~ ~ 完了しました!
sendmail.x86_64 8.14.7-4.el7 @base
# systemctl status sendmail | grep Active1-4. /etc/hosts を書き換えて再起動する。
# systemctl start sendmail
Active: inactive (dead)
# systemctl status sendmail | grep Active
Active: active (running) since 日 2015-12-31 20:46:24 JST; 7s ago
※ /etc/hosts を書き換える必要がない場合は再起動しない。
# vi /etc/hosts
下記を追加する# /sbin/shutdown -r now
192.168.1.1 www www.example.jp
2-1. PHP インタープリタがインストールされていないことを確認する。
$ yum list installed | grep php | wc -l2-2. epel と remi のリポジトリ情報をインストールする。
$ rpm -qa | grep php | wc -l
0
0
$ wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm2-3. PHP バージョン 7.0 と MySQL 拡張をインストールする。
$ wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ su
# rpm -Uvh epel-release-latest-7.noarch.rpm
# rpm -Uvh remi-release-7.rpm
# yum -y install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-gd2-4. PHP から sendmail がアクセスできることを確認する。
# yum -y install --enablerepo=remi,remi-php70 php-mysql
~ ~ 完了しました!
# exit
~ ~ 完了しました!
$ php -v
PHP 7.0.14 (cli) (built: Dec 7 2016 10:15:15) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
$ php -r 'phpinfo();' | grep sendmail_path
$ ls -l /usr/sbin/sendmail /etc/alternatives/mta /usr/sbin/sendmail.sendmail
sendmail_path => /usr/sbin/sendmail -t -i => /usr/sbin/sendmail -t -i
lrwxrwxrwx. 1 root root 21 1月 1 22:51 /usr/sbin/sendmail -> /etc/alternatives/mta lrwxrwxrwx. 1 root root 27 1月 1 22:51 /etc/alternatives/mta -> /usr/sbin/sendmail.sendmail -rwxr-sr-x. 1 root smmsp 836840 6月 10 2014 /usr/sbin/sendmail.sendmail
3-1. MariaDB をアンインストールする。
※ MariaDB は CentOS 7 のインストール時、一緒に入っている。
$ rpm -qa | grep maria3-2. MySQL のリポジトリ情報をインストールする。
$ su
mariadb-libs-5.5.52-1.el7.x86_64
# yum -y remove mariadb-libs
# rpm -qa | grep maria | wc -l
# exit
0
$
$ wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm3-3. MySQL バージョン 5.6 をインストールする。
$ su
# rpm -Uvh mysql-community-release-el7-5.noarch.rpm
# yum -y --enablerepo=mysql56-community install mysql-community-server3-4. MySQL を起動する。
# systemctl list-unit-files | grep mysqld
~ ~ 完了しました!
mysqld.service enabled
# systemctl status mysqld | grep Active
# systemctl start mysqld
Active: inactive (dead)
# systemctl status mysqld | grep Active
# exit
Active: active (running) since 土 2016-12-31 16:24:26 JST; 4s ago
$ mysqladmin ping
mysqld is alive
4-1. データベースを作成する。
$ mysql -u root -p4-2. ユーザーを作成する。
Enter password: [Enter] Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.6.35 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> CREATE DATABASE wordpress ; Query OK, 1 row affected (0.00 sec) mysql> SHOW DATABASES ; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | wordpress | +--------------------+ 4 rows in set (0.00 sec) mysql> \q
$ mysql -u root -p
Enter password: [Enter] Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.6.35 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> CREATE USER wp_user@localhost IDENTIFIED BY 'password' ; Query OK, 0 rows affected (0.00 sec) mysql> SELECT host, user FROM mysql.user ; +-----------+---------+ | host | user | +-----------+---------+ | 127.0.0.1 | root | | ::1 | root | | www | | | www | root | | localhost | | | localhost | root | | localhost | wp_user | +-----------+---------+ 7 rows in set (0.00 sec) mysql> GRANT ALL PRIVILEGES ON wordpress.* TO wp_user@localhost ; Query OK, 0 rows affected (0.00 sec) mysql> SHOW GRANTS FOR wp_user@localhost ; +----------------------------------------------------------------------------------------------------------------+ | Grants for wp_user@localhost | +----------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'wp_user'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' | | GRANT ALL PRIVILEGES ON `wordpress`.* TO 'wp_user'@'localhost' | +----------------------------------------------------------------------------------------------------------------+ 3 rows in set (0.00 sec) mysql> \q
5-1. httpd のユーザー名、グループを調べる。
$ cat /etc/httpd/conf/httpd.conf | grep '^User'5-2. WordPress を設置するディレクトリを作成する。
$ groups apache
User apache
apache : apache
$ su5-3. WordPress を設置する。
# mkdir /var/www/html/wp_1
# chgrp apache /var/www/html/wp_1/
# chmod g+w /var/www/html/wp_1/
# ls -l /var/www/html/ | grep wp_1
# exit
drwxrwxr-x. 5 root apache 4096 12月 31 18:49 wp_1
$
$ wget https://ja.wordpress.org/wordpress-4.7-ja.zip
$ su
# cd /var/www/html/wp_1/
/var/www/html/wp_1/# unzip wordpress-4.7-ja.zip
/var/www/html/wp_1/# mv ./wordpress/* .
/var/www/html/wp_1/# rmdir ./wordpress/
/var/www/html/wp_1/# chgrp apache ./wp-content/
/var/www/html/wp_1/# chmod g+w ./wp-content/
/var/www/html/wp_1/# ls -ld wp-content
/var/www/html/wp_1/# exit
drwxrwxr-x. 5 root apache 69 12月 7 09:08 wp-content
$
6-1. Web サーバーからメールを送信できるようにする。
※ WordPress には、パスワードを忘れた場合にメールを送信する機能がある。
$ su
# getsebool httpd_can_sendmail
# setsebool -P httpd_can_sendmail on
httpd_can_sendmail --> off
# getsebool httpd_can_sendmail
# exit
httpd_can_sendmail --> on
$
7-1. apache を起動する。
$ su
# systemctl list-unit-files | grep httpd
# systemctl enable httpd
httpd.service disabled
# systemctl list-unit-files | grep httpd
# systemctl status httpd | grep Active
httpd.service enabled
# systemctl start httpd
Active: inactive (dead)
# systemctl status httpd | grep Active
# exit
Active: active (running) since 月 2016-12-31 00:07:42 JST; 1s ago
$
WowrdPress をインストールした Web サーバをブラウザーでアクセスする。
URL: http://www.example.jp/wp_1/
8-1. WordPress > 構成ファイルのセットアップ (1)
をクリックする。8-2. WordPress が構成ファイル wp-config.php を書けるよう、一時的に SELinux を外す。
# getenforce8-3. WordPress > 構成ファイルのセットアップ (2)
# setenforce Permissive
Enforcing
# getenforce
Permissive
本稿の冒頭に書いた「インストール要件」(MySQL) の内容を記入し、 をクリックする。8-4. WordPress > 構成ファイルのセットアップ (3a)
MySQL データベース名 wordpress ユーザー名 wp_user パスワード password ホスト名 localhost テーブル接頭辞 wp_1
異常の場合8-5. WordPress > 構成ファイルのセットアップ (3b)
「ファイル wp-config.php に書き込めませんでした。」
が表示される場合、ブラウザーのバックボタンで 8-3 に戻る。
設定ミスが考えられるのは以下。
・WordPress 設置ディレクトリのパーミッション (上記 5-3)
・SELinux の設定 (上記 8-2)
正常の場合8-6. WordPress が構成ファイル wp-config.php を書いたので、SELinux を元に戻す。
WordPress の設定ファイル wp-config.php の書き込みとデータベースへのアクセスが正常だとこの画面が表示される。
下記 8-6 の実施後に をクリックする。※
※ SELinux の無効時間を短くするためなので、それが気にならなければ 8-6 以前に を行っても構わない。
# ls -l /var/www/html/wp_1/wp-config.php8-7. WordPress > 構成ファイルのセットアップ (4)
# getenforce
-rw-rw-rw-. 1 apache apache 4114 12月 31 21:24 wp-config.php
# setenforce Enforcing
Permissive
# getenforce
Enforcing
をクリックする。8-8. WordPress > インストール
本稿の冒頭に書いた「インストール要件」(WordPress) の内容を記入し、 をクリックする。8-9. ログイン画面
管理用パスワードは自動的に生成されるので、ここで表示されるパスワードをメモしておくこと。
WordPress サイトのタイトル WordPress テスト 管理用ユーザー名 testuser 管理用パスワード ******** (自動的に生成される) メールアドレス who@example.jp 検索エンジンでの表示 検索エンジンがサイトをインデックスしないようにする
インストールが終了すると、ログイン画面が表示される。
上記 8-8 で設定した管理用ユーザ名と管理用パスワードを記入し、 をクリックする。
9-1. ダッシュボード
ログイン直後は、ダッシュボードが表示される。9-2. 公開画面イメージ
左上に表示されているサイト名 (ここでは 「WordPress テスト」) をクリックすると、公開画面イメージが表示される。
公開画面はこんな感じ。
ログアウトしていないため、厳密には公開画面と同じではない。※
※公開画面には上部メニューバー (黒い帯の箇所) が存在しない。
10-1. ログイン画面
パスワードを忘れた場合はパスワードのリセットが利用可能。10-2. メール送信画面
ログイン画面で「パスワードをお忘れですか ?」をクリックする。
「ユーザー名またはメールアドレス」を記入し、10-3. ログイン画面
をクリックする。
パスワードリセットのメールを送信するとこの画面になる。10-4. メール内容
送信結果までは管理していないため、
メールが送信できなかったとしてもエラーは表示されない。
届くメールのサンプル
件名 [wordpress テスト] パスワードのリセット 差出人 WordPress <wordpress@example.jp> 本文 だれかが次のアカウントのパスワードリセットをリクエストしました: http://www.example.jp/wp_1/ ユーザー名: testuser もしこれが間違いだった場合は、このメールを無視すれば何も起こりません。 パスワードをリセットするには、以下へアクセスしてください。 <http://www.example.jp/wp_1/wp-login.php?action=rp&key=xxxxxxxxxxxxxxxxxxxx&login=testuser>
メール投稿プラグインについて
よそ様のメール投稿プラグインの紹介で良く見受けられる Ktai Entry ですが、WordPress 4.7 ではうまく動作しない模様です。
POP3 を平文のパスワードでアクセスさせて確認しましたが、ポート 110 で POP が Ready になった直後、通信を遮断しています。
Ktai Entry の代わりに Postie が使用できました。