CentOS7にWordPressをインストールします。

前提条件

CentOS7にLAMP環境構築で紹介した下記の環境にWordPressをインストールします。

LAMP環境 version
L SentOS7 7.2.1511
A Apache 2.4.6
M MySQL 5.7.15
P PHP 5.6.25

インストール

最新のWordPressをcurlコマンドで取得します。
# curl -LO http://ja.wordpress.org/latest-ja.tar.gz

カレントディレクトリに圧縮されたファイルが出来上がるので、tarコマンドで展開します。
# tar zxf latest-ja.tar.gz 

展開するとwordpressという名前のディレクトリが出来上がるので、ドキュメントルート以下へ配置します。
ディレクトリ名がwordpressだと攻撃を受けやすいので適当な名前に変更します。
今回はwpsiteにしました。
# mv wordpress /var/www/html/wpsite

WordPress用データベース・ユーザを作成

MySQLでWordPress用のデータベースとユーザを作成します。

# mysql -u root -p ←root権限でMySQLへログイン
mysql> CREATE DATABASE wpdb;
mysql> GRANT ALL PRIVILEGES ON wpdb.* TO “wpuser”@”localhost” IDENTIFIED BY “パスワード”;
mysql> FLUSH PRIVILEGES;
mysql> exit

初期設定

WordPressディレクトリの所有権をApacheに変更します。
# chown -R apache:apache /var/www/html/wpsite

WordPressディレクトリへ移動
# cd /var/www/html/wpsite

サンプルファイルの名前を変更してwp-config.phpを作成、編集
# mv wp-config-sample.php wp-config.php
# gedit wp-config.php

編集個所は3か所です。先ほど作成したWordPress用のデータベースとユーザを入力します。

// 注意:
// Windows の “メモ帳” でこのフィルタを編集しないでください !
// 問題なく使えるテキストエディタ
// (http://wpdocs.sourceforge.jp/Codex:%E8%AB%87%E8%A9%B1%E5%AE%A4 参照)
// を使用し、必ず UTF-8 の BOM なし (UTF-8N) で保存してください。// ** MySQL 設定 – この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( ‘DB_NAME’, ‘wpdb‘ ); //database_name_here を書き換え/** MySQL データベースのユーザー名 */
define( ‘DB_USER’, ‘wpuser‘ ); //username_here を書き換え/** MySQL データベースのパスワード */
define( ‘DB_PASSWORD’, ‘パスワード‘ ); //password_here を書き換え/** MySQL のホスト名 */
define( ‘DB_HOST’, ‘localhost’ );/** データベースのテーブルを作成する際のデータベースの文字セット */
define( ‘DB_CHARSET’, ‘utf8’ );/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define( ‘DB_COLLATE’, ” );

誤って変更しないようにアクセス権を変更しておきましょう。

# chmod 400 wp-config.php

このままだとSELinuxによってアクセスが制限されるので、SELinuxのポリシーを変更します。

# setsebool -P httpd_can_network_connect_db 1 ←HTTPスクリプトやモジュールによるデータベースサーバーへの接続を許可。-Pオプションを付け、リブート後にも変更を維持する。
# setsebool -P httpd_tty_comm 1 ←httpd による制御ターミナルへのアクセスを許可
# setsebool -P httpd_unified 1 ← httpd_tに対してhttpdの全タイプへの完全アクセスを許可
# setsebool -P httpd_dbus_avahi 1 ←httpdによるD-Bus経由のavahiサービスへのアクセスを許可
# semanage fcontext -a -t httpd_sys_content_t “/var/www/html/wpsite” ←WordPressのディレクトリのファイルタイプを Apache HTTP Server が使用するタイプに変更
# semanage fcontext -a -t httpd_sys_rw_content_t “/var/www/html/wpsite/wp-content(/.*)?” ←httpdによる書き込み権限を与える
# restorecon -R -v /var/www/html/blog ←、デフォルトの SELinux コンテキストを復元

ここまで設定したら、
Webブラウザで http://サーバのIP(またはドメイン)/wpsite/wp-admin/install.php
にアクセスしてください。WordPressのセットアップが始まります。
画面の指示に従って設定を行ってください。

サイトアドレス変更

WordPressのセットアップが終わると、
http://サーバのIP(またはドメイン)/wpsite というURLのサイトが出来上がります。

このままでも問題ありませんが、wpsiteを取って、URLをhttp://サーバのIP(またはドメイン)に変更しようと思います。

WordPressにログインし、 設定>一般 を表示し、サイトアドレスの欄を
http://サーバのIP(またはドメイン) に変更します。

wp_url

変更後、WordPressのインデックスファイルの場所を変えます。

# cd /var/www/html/wpsite ←WordPressのインストールディレクトリに移動
cp .htaccess ../ ←ドキュメントルート(サイトアドレス指定したディレクトリ)にコピー
cp index.php ../ ←ドキュメントルート(サイトアドレス指定したディレクトリ)にコピー
# cd .. ←ドキュメントルート(サイトアドレス指定したディレクトリ)に移動

ドキュメントルートにindex.htmlがあれば削除
# rm index.html

index.phpを編集
# gedit index.php

require 部分のファイルパスを変更します。

<?php
/**
* Front to the WordPress application. This file doesn’t do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*//**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define(‘WP_USE_THEMES’, true);/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . ‘/wpsite/wp-blog-header.php’ );*カレントディレクトリから wp-blog-header.php が見えるようにパスを変更

この変更をしないと、404エラーや503エラーが発生します。

パーマリンク設定

WordPressで自動生成されるURLは、初期設定では

のような通し番号になっています。

これだと管理がし辛く、SEO的にも良くない状態なので、変更します。

設定>パーマリンク設定 を表示し、カスタム構造を選びパーマリンクをカスタマイズします。
なお、この記事を書いていているサイト(n-portal.com)では「/%category%/%postname%」を設定しております。

wp_link

パーマリンク設定を変更すると、トップページ以外にアクセスした時に404エラーが発生する場合があります。

404エラーが発生した場合は httpd.conf  を編集し、
ドキュメントルートの AllowOverride 設定を None から All へ変更します。

# gedit /etc/httpd/conf/httpd.conf

# Further relax access to the default document root:
<Directory “/var/www/html”>
#
# Possible values for the Options directive are “None”, “All”,
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that “MultiViews” must be named *explicitly* — “Options All”
# doesn’t give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#↓コメントアウト
#AllowOverride None
#追記
AllowOverride All
# Controls who can get stuff from this server.
#
Require all granted
</Directory>

設定変更後、Apacheを再起動し、変更を反映させます。
systemctl restart httpd.service


おつかれさまでした。以上でWordPressのインストールと初期設定が完了です。
機会がありましたらまたお付き合いください。