Posted at

CentOS7.4 on Microsoft AzureにWordPressをインストール

More than 1 year has passed since last update.

今日はWordPressをインストールしてみたいと思います。

今後も同じ事をすると思うので、メモしておきます。


インストール先環境


  • CentOS 7.4 on Microsoft Azure


準備


epelリポジトリの追加

epelリポジトリをインストール。

# yum install epel-release

明示的にepelリポジトリを指定しないと使用できないように、リポジトリの設定を変更する。

私の場合、下記2つのファイルが存在していたので確認。


  • epel.repo

  • epel-testing.repo

epel.repoのみ有効化部分を発見したので、無効化。

# vi /etc/yum.repos.d/epel.repo

[epel]セクションの「enabled」を1から0に変更。


remiリポジトリの追加

remiリポジトリをインストール。

# rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

remiリポジトリもepelリポジトリ同様に設定を変更する。

私の場合、下記5つのファイルが存在していたので確認。


  • remi-php54.repo

  • remi-php70.repo

  • remi-php71.repo

  • remi-php72.repo

  • remi.repo

  • remi-safe.repo

remi-safe.repoのみ有効化部分を発見したので、無効化。

# vi /etc/yum.repos.d/remi-safe.repo

[remi-safe]セクションの「enabled」を1から0に変更。


nginx


nginxのインストール

epelリポジトリを使用してnginxをインストール。

# yum install --enablerepo=epel nginx


WordPressインストール用ディレクトリを作成

今回は「blog」というディレクトリを作成してみます。

# mkdir /usr/share/nginx/blog

# chown nginx:nginx /usr/share/nginx/blog/


WordPressをダウンロード

最新版を取得。

# cd /usr/share/nginx/blog/

# wget https://ja.wordpress.org/latest-ja.tar.gz


WrodPressを解凍

# tar xvzf latest-ja.tar.gz

# chown -R nginx:nginx wordpress


nginxの設定

展開したWordPressをnginxのバーチャルホストとして設定。

# cd /etc/nginx/conf.d

# vi blog.conf

設定内容は次の通り。

「server_name」と「root」は適宜読み替えて下さい。


blog.conf

server {

listen 80;
server_name blog.hoge.com;
root /usr/share/nginx/blog/wordpress;
index index.php;

charset utf-8;

# wordpress パーマネントリンク設定
try_files $uri $uri/ /index.php?q=$uri&$args;

# wp-config.phpへのアクセス拒否設定
location ~* /wp-config.php {
deny all;
}

# php-fpm用設定
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;
}
}



nginxを起動

nginxを起動し、自動起動設定も行う。

# systemctl start nginx.service

# systemctl enable nginx.service


php


php7、php-fpmをインストール

remiリポジトリを使用してphp7をインストール。

php-fpmも併せてインストール。

# yum install --enablerepo=epel,remi-php72 php php-mbstring php-pear php-fpm php-mcrypt php-mysql


php-fpmの設定

php-fpmをnginx上で動作するように設定。

# cd /etc/php-fpm.d/

# vi www.conf

設定内容は次の通り、実行ユーザー・グループをnginxに変更。


www.conf

;user = apache

user = nginx
;group = apache
group = nginx


php-fpmを起動

php-fpmを起動し、自動起動設定も行う。

# systemctl start php-fpm.service

# systemctl enable php-fpm.service


MariaDB


MariaDBをインストール

MariaDBをインストール。

# yum install mariadb mariadb-server


MariaDBを起動

MariaDBを起動し、自動起動設定も行う。

# systemctl start mariadb.service

# systemctl enable mariadb.service


MariaDBの設定

「mysql_secure_installation」を実行し、MariaDBを安全な状態に設定。

# mysql_secure_installation

現在のrootユーザーのパスワード。

まだ未設定なので「Enter」キーを押下。

Enter current password for root (enter for none):

rootユーザーのパスワードを設定するか否か。

設定するので「y」キーを押下し、パスワードを設定。

Set root password? [Y/n]

New password:
Re-enter new password:

最初から設定されているanonymousユーザーを削除するか否か。

削除するので「y」キーを押下。

Remove anonymous users? [Y/n]

rootユーザーでのリモートログインを禁止するか否か。

禁止するので「y」キーを押下。

Disallow root login remotely? [Y/n]

最初から設定されているtestデータベースを削除するか否か。

削除するので「y」キーを押下。

Remove test database and access to it? [Y/n]

今設定した各種設定を直ぐに反映させるか否か。

反映させるので「y」キーを押下。

Reload privilege tables now? [Y/n]


MariaDBの文字コードを設定

WordPressのデータが文字化けしないようにMariaDBの文字コードを設定。

# cd /etc/my.cnf.d/

# vi server.cnf

設定内容は次の通り、[mysqld]セクションに下記を追加。


server.cnf

character-set-server = utf8


設定を反映させる為にMariaDBを再起動。

# systemctl restart mariadb.service


WordPress用の設定

MariaDBにWordPress用のデータベースとデータベース管理ユーザーを作成。

まず、MariaDBにrootユーザーで接続。

# mysql -u root -p

Enter password:

次に、WordPress用データベースとしてblogを作成。

MariaDB [(none)]> CREATE DATABASE blog;

最後に、WordPress用データベース管理ユーザーを作成。

MariaDB [(none)]> GRANT ALL PRIVILEGES ON blog.* TO "hogeuser"@"localhost" IDENTIFIED BY "hogepassword";

作成したユーザー情報を反映させ、作業を終了。

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]> exit


WordPress


WordPressの設定

wp-configの設定を行う。

まず、wp-config-sample.phpをコピーして、wp-config.phpを作成する準備。

# cd /usr/share/nginx/blog/wordpress/

# cp -p wp-config-sample.php wp-config.php

次に、wp-config.phpに下記項目を設定。


設定項目
設定内容


define(DB_NAME)
blog


define(DB_USER)
hogeuser


define(DB_PASSWORD)
hogepassword


define(AUTH_KEY)
WordPressの秘密鍵サービス(https://api.wordpress.org/secret-key/1.1/salt/)の自動生成結果


define(SECURE_AUTH_KEY)


define(LOGGED_IN_KEY)


define(NONCE_KEY)


define(AUTH_SALT)


define(SECURE_AUTH_SALT)


define(LOGGED_IN_SALT)


define(NONCE_SALT)


$table_prefix
blog_

wp-config.phpを開く。

# vi wp-config.php


wp-config.php

<?php

/**
* WordPress の基本設定
*
* このファイルは、インストール時に wp-config.php 作成ウィザードが利用します。
* ウィザードを介さずにこのファイルを "wp-config.php" という名前でコピーして
* 直接編集して値を入力してもかまいません。
*
* このファイルは、以下の設定を含みます。
*
* * MySQL 設定
* * 秘密鍵
* * データベーステーブル接頭辞
* * ABSPATH
*
* @link http://wpdocs.osdn.jp/wp-config.php_%E3%81%AE%E7%B7%A8%E9%9B%86
*
* @package WordPress
*/

// 注意:
// Windows の "メモ帳" でこのファイルを編集しないでください !
// 問題なく使えるテキストエディタ
// (http://wpdocs.osdn.jp/%E7%94%A8%E8%AA%9E%E9%9B%86#.E3.83.86.E3.82.AD.E3.82.B9.E3.83.88.E3.82.A8.E3.83.87.E3.82.A3.E3.82.BF 参照
)
// を使用し、必ず UTF-8 の BOM なし (UTF-8N) で保存してください。

// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'blog');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'hogeuser');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'hogepassword');

/** MySQL のホスト名 */
define('DB_HOST', 'localhost');

/** データベースのテーブルを作成する際のデータベースの文字セット */
define('DB_CHARSET', 'utf8');

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

/**#@+
* 認証用ユニークキー
*
* それぞれを異なるユニーク (一意) な文字列に変更してください。
* {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org の秘密鍵サービス} で自動生成することもできます。
* 後でいつでも変更して、既存のすべての cookie を無効にできます。これにより、すべてのユーザーを強制的に再ログインさせることになりま
す。
*
* @since 2.6.0
*/

define('AUTH_KEY','McVW=3+b_RA6E!l<s`P38#Ep[2wpF1591mTvk}t20*nH5Q3#V2$ {|-|6EFO~#+ ');
define('SECURE_AUTH_KEY','JTgsPKc{+xOC&srLSh-21guBH-?WZ6}P=C{7vE1<I+.f2)$|Yz)t?{-7nB+7ej-@');
define('LOGGED_IN_KEY','[~Kfh@%:aO9l>Sg8,DlDi$=,)iJQB VsZEHpUj]o-Qj]-(rbY+o~|VLM:iS>4XhI');
define('NONCE_KEY','2|;SrI;-lg!cD>%s2eJ; L`8u A+TPinEkjcqGZjB`/JMxDqN4Q84tlh5e>w+;d&');
define('AUTH_SALT','q&Ezg9I(r$EHG1os?I}BY%7-/Jj]C*<f@ro,e,R=97t(O8`-9ys4T%[hg|{<u:h4');
define('SECURE_AUTH_SALT',' =oFw|ujGbbV^RDhzpD&Q7|*R*<J|-`n-n=;v;~m{IeGYWh%;M`pDv)[s4qn}!)e');
define('LOGGED_IN_SALT','0#~BU J~iP-B1n@@`m@{Li6uP%$9cG6*1k ;h+-jh*xd]I ,ws?e$GJw|M=T!C?T');
define('NONCE_SALT','Y50H1L_X(s/_bpi]_{VWRzyAP@DZ]B,KDMX%Tn,k+GCl4:aJs*9icD`GF+a!p<[n');

/**#@-*/

/**
* WordPress データベーステーブルの接頭辞
*
* それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
* インストールすることができます。半角英数字と下線のみを使用してください。
*/

$table_prefix = 'blog_';

/**
* 開発者へ: WordPress デバッグモード
*
* この値を true にすると、開発中に注意 (notice) を表示します。
* テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。
*
* その他のデバッグに利用できる定数については Codex をご覧ください。
*
* @link http://wpdocs.osdn.jp/WordPress%E3%81%A7%E3%81%AE%E3%83%87%E3%83%90%E3%83%83%E3%82%B0
*/

define('WP_DEBUG', false);

/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');



blogの初期設定

まず、下記URLにアクセスします。

WordPress - インストールページ

wordpress_install.png

※私の場合、Microsoft Azure でLinux仮想マシンを構築したてでしたので、受信セキュリティ規則においてHTTP(TCP 80ポート)が開いておらず、最初アクセスできませんでした。もし、同じような現象に遭遇した場合、チェックしてみて下さい。

次に、blogの初期設定を行う。

下記を入力し、「インストール」ボタンをクリック。


設定項目
設定内容


タイトル
hoge blog


ユーザー名
hogewpuser


パスワード
hogewppassword


メールアドレス
hogewpuser@hoge.com


検索エンジンでの表示
チェックOFF(※今回はお試し環境の為)

「成功しました!」と表示されたら、初期設定が完了です。

wordpress_install_success.png

「ログイン」ボタンをクリックして、WordPressの管理ページへログインできます。

お疲れ様でした!