Contents
概要
WordPressを構築します。
事前設定
Webサーバー構築
こちらを参考にWebサーバーを構築します。本稿ではTLS有効化、PHP有効化(必須)、WAF有効化も実施している前提です。
MariaDB構築
こちらを参考にデータベースサーバーを構築します。
DNS設定
こちらを参考にDNSを設定します(もちろん環境によります)。WordPressの仕様として公開URLはインストール時に使用したURLになります。後から変更も可能ですがいろいろと面倒が多いので予め目的のFQDNでアクセス可能な状態にしておくと良いでしょう。
設定
MariaDB設定
wordpressデータベースを作成し、wordpressデータベースに対して全権限を持つwordpressユーザーを作成します。
myadmin@ubuntu:~$ sudo mysql MariaDB [(none)]> create database wordpress; MariaDB [(none)]> grant all privileges on wordpress.* to wordpress@localhost identified by 'password'; MariaDB [(none)]> exit
WordPress設定
WordPressのダウンロードと展開
最新のWordPressをダウンロードして所定のディレクトリに展開します。本稿では/var/www/htmlを前提としています。
myadmin@ubuntu:~$ curl -OL http://ja.wordpress.org/latest-ja.zip myadmin@ubuntu:~$ unzip latest-ja.zip myadmin@ubuntu:~$ sudo cp -r wordpress/* /var/www/html
wp-config.php
WordPressの設定ファイルはwp-config.phpです。サンプルとしてwp-config-sample.phpが用意されています。
デフォルト値
コメント行を除き成形したデフォルト値は下記の通りです。
myadmin@ubuntu:~$ grep -v -e '^\s*\/' -e '^\s*\*' -e '^\s*$' /var/www/html/wp-config-sample.php | expand | tr -s [:space:] | sed 's/^\s/ /g'
<?php
define( 'DB_NAME', 'database_name_here' );
define( 'DB_USER', 'username_here' );
define( 'DB_PASSWORD', 'password_here' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8' );
define( 'DB_COLLATE', '' );
define( 'AUTH_KEY', 'put your unique phrase here' );
define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
define( 'LOGGED_IN_KEY', 'put your unique phrase here' );
define( 'NONCE_KEY', 'put your unique phrase here' );
define( 'AUTH_SALT', 'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT', 'put your unique phrase here' );
define( 'NONCE_SALT', 'put your unique phrase here' );
$table_prefix = 'wp_';
define( 'WP_DEBUG', false );
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
require_once ABSPATH . 'wp-settings.php';
設定値
wp-config.phpを作成します。AUTH_KEY~NONCE_SALTの値(認証用ユニークキー)はこちらで作成できます。変更しなくても問題はありませんが正式な環境では変更したほうが良いでしょう。
myadmin@ubuntu:~$ sudo tee /var/www/html/wp-config.php <<"EOF"
<?php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wordpress' );
define( 'DB_PASSWORD', 'password' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8' );
define( 'DB_COLLATE', '' );
define( 'AUTH_KEY', 'put your unique phrase here' );
define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
define( 'LOGGED_IN_KEY', 'put your unique phrase here' );
define( 'NONCE_KEY', 'put your unique phrase here' );
define( 'AUTH_SALT', 'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT', 'put your unique phrase here' );
define( 'NONCE_SALT', 'put your unique phrase here' );
$table_prefix = 'wp_';
define( 'WP_DEBUG', false );
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
require_once ABSPATH . 'wp-settings.php';
EOF
WordPressの所有者変更
オーナーとグループをwww-dataに変更します。
myadmin@ubuntu:~$ sudo chown -R www-data:www-data /var/www/html
Apache設定
/etc/httpd/conf.d/wordpress.conf
/etc/httpd/conf.d/wordpress.confを作成します。このファイルは管理画面等に対するアクセス制御を設定しています。
myadmin@ubuntu:~$ sudo tee /etc/apache2/sites-available/wordpress.conf <<EOF
<files wp-config.php>
Require all denied
</files>
<files wp-login.php>
Require local
Require ip 10.0.0.0/18
SecRuleEngine Off
</files>
<Location /wp-admin>
Require local
Require ip 10.0.0.0/18
SecRuleEngine Off
</Location>
EOF
wordpress.confを有効化します。
myadmin@ubuntu:~$ sudo a2ensite wordpress
設定を有効化します。
myadmin@ubuntu:~$ sudo systemctl restart apache2.service myadmin@ubuntu:~$ systemctl status apache2.service
アクセス確認とインストール
対象ホストのFQDNにブラウザでアクセスするとWordPressのインストーラーが起動します。