【tech】WordPressをNginxで動かす手順メモ(CentOS7 PHP7.2 MariaDB)




公開:2019/04/14
更新:2020/06/03

このblogはGCP上のWordPressで動かしているのですが、いずれはサーバから構築して、Nginxで動かしてみたいと思いやり方を調べたのでメモして残しておきます。
もしわからないところがあればお問い合わせください!!

・環境


CentOS7.5 (minimal) on VirtualBox
(IP:192.168.56.150)
サイト名:kusomemo ※任意の値に置き換えてください
WEB:Nginx
DB:MariaDB
MariaDB rootユーザPW:Root123!!
WordPress用DB名:wordpressDB
WordPress ユーザ:wordpressDBuser
WordPressDBuser PW:Wordpress123!

それでは手順です!



・epelのインストール
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

・remiリポジトリの追加
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

・remiのインストール
yum install -y --enablerepo=epel,remi-php72 php php-mbstring php-pear php-fpm php-mcrypt php-mysql

・Nginxのインストール
rpm -Uvh https://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm



・MariaDBのインストール
yum install -y mariadb mariadb-server

・firewallの許可設定
firewall-cmd --add-service=http --permanent

・firewallの再起動
firewall-cmd --reload

・wordpress用ディレクトリ作成
mkdir -p /usr/share/nginx/wordpress

・wordpress用ディレクトリの所有者をnginxへ変更
chown nginx:nginx /usr/share/nginx/wordpress/

・wordpress用ディレクトリへ移動
cd /usr/share/nginx/wordpress

・最新版wordpressをDL
curl -O https://ja.wordpress.org/latest-ja.tar.gz

・DLしてきたWPを展開
tar xzfv latest-ja.tar.gz

・展開したWPの所有者を変更
chown -R nginx:nginx wordpress

・展開したWPをサイト名(任意)へリネーム
mv wordpress kusomemo

・Nginxのconfファイルディレクトリへ移動
cd /etc/nginx/conf.d

・デフォルトconfをリネーム(※残していると、このconfが優先されるようです)
mv default.conf default.conf.org

・サイト用のconfファイルを作成
vi kusomemo.conf
→下記設定を記述


server {
  listen 80;
  server_name kusomemo.tokyo;
  root /usr/share/nginx/wordpress/kusomemo;
  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が使用するpidのファイルを作成
vi /var/run/nginx.pid
→ファイル作成のみで保存

・Nginxの自動起動設定
systemctl enable nginx

・Nginxの起動
systemctl start nginx
※ここで一度エラーが出る事がありますが、
 もう一度startかければ起動します。

・PHP-FPMのディレクトリへ移動
cd /etc/php-fpm.d/

・confファイルのバックアップ
cp -p www.conf www.conf.org

・confファイルの編集
vi www.conf
→apacheをnginxに変更します。
 :%s/apache/nginx/cg
 で対象を確認しながら置換できます



・約24行目
user = apache
→user = nginx
・約24行目
group = apache
→group = nginx


・php-fpmの自動起動
systemctl enable php-fpm

・php-fpmの起動
systemctl start php-fpm

・MariaDBの自動起動設定
systemctl enable mariadb

・MariaDBの起動
systemctl start mariadb

・MariaDBの初期設定
mysql_secure_installation
初期PWを変更して、rootPWも変更しておく。
そのほかはすべてyでOK

Enter current password for root (enter for none):
→enter

Change the root password? [Y/n] y
→rootのPW:Root123!
 以降は全て「y」でOKです

・MariaDBのconfファイルディレクトリへ移動
cd /etc/my.cnf.d/

・confファイルのバックアップ
cp -p server.cnf server.cnf.org
※CentOS8で構築したときは、server.cnfではなく、「mariadb-server.cnf」でした


・confファイルの編集
vi server.cnf
約16行目の[mysqld]に下記設定項目を追加


character-set-server = utf8


・MariaDBを再起動
systemctl restart mariadb

・MySQLモードへ移行
mysql -u root -p
→Root123!

・DBの作成
CREATE DATABASE wordpressDB;

・DBへユーザと権限、PWの設定
GRANT ALL PRIVILEGES ON wordpressDB.* TO "wordpressDBuser"@"localhost" IDENTIFIED BY "Wordpress123!";

・保存
FLUSH PRIVILEGES;

・exit
exit

・サイトのディレクトリへ移動
cd /usr/share/nginx/wordpress/kusomemo/


・サイトのconfファイルのバックアップ
cp -p wp-config-sample.php wp-config.php

https://api.wordpress.org/secret-key/1.1/salt/
にアクセスしてキーを作成しておきましょう

・サイトconfの編集
vi wp-config.php


各パラメータを置換
:%s/database_name_here/wordpressDB/g

:%s/username_here/wordpressDBuser/g

:%s/password_here/Wordpress123!/g

WEBで作成したキーを約55行目から62行目に貼り付けて保存

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

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

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

/** 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',         'L xv>t<S$6|a+OHwxq5`C8S.!2;z|P^T:&u^blaa|*uY5 a}x:Y>pWJVN!M$_wZ@');
define('SECURE_AUTH_KEY',  '4B!l[$Aiz zEGu(|=h6dYIDJR;eNeUgCaGoIy4i(.N@YO6A=P;^EIh|T!sCS9x1X');
define('LOGGED_IN_KEY',    ' z/1j8<l wE1eBZ(@+0`yr(BK0&&zPp8$3pyJn.-{W^qoj)Z+GG-0 r%^C65m8iY');
define('NONCE_KEY',        '*4-:5wjE9VL4JK=3GG/Dw:/VEl-vdnmHn[kJe{@X3AujV}rqXYjoIrVs-},|;_z|');
define('AUTH_SALT',        'Gh_YZrAIa<, +2P7jTVEisx4(@2#5pIw~X5+FiO^/q8=<4^%*wLkYBT#%l0b/y{g');
define('SECURE_AUTH_SALT', 'm$V1,lNWo<z] lAAm1mj6k*^P`;q^WVc76<I{E`WXlGgD8>Edo%d#qK9%8DxTzp[');
define('LOGGED_IN_SALT',   '-JS@,8_u0Qt}}+PZ1-v4]% [7(9|(2Mpw*{6)>BlQ+]|GOf8PwRxTJ)/P~R3u?Ve');
define('NONCE_SALT',       '+%*z+YyLHVQd!)Hg?^QL90|B?5c|Yx_dD~OwxZH!cg0OF[-NA4~rm) XPn+!{y^Y');
/**#@-*/

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

/**
 * 開発者へ: 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');



これで設定完了です。
ブラウザを立ち上げて下記ディレクトリにアクセスしてください。

・Nginxの再起動
systemctl restart nginx

http://192.168.56.150/wp-admin/install.php

以上でアクセスできると思いますが、できなかった時は
Nginxの再起動を試してみたりしてみてください。
→systemctl restart nginx

にアクセスして初期設定をする。
ユーザ・PWの設定後、改めて「192.168.56.150」にアクセスすると、nginxの画面が出ることがありますが、「更新」をすると、wordpressの画面が表示されると思います。

以上です!無事構築できましたか?
わからないところがあればコメントお願いいたします!



久しぶりにみてみると、モバイルバッテリーもずいぶん安くなってるんですね!

皆さん既にやってると思いますが、 AmazonPrimeだとAmazon Music Unlimitedが月額780円でできるんですね!
最近知ってapple musicから乗り換えました。(200円ですが安い方がいいに越したことはないです笑)

下のPythonの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



投稿者:

mame

都内20代前半ITエンジニア 見た目は女性、性格は男・・・ 品のある女性になりたいT_T 既婚子持ち 趣味の:IT、DIY、投資 などについてのメモblog

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です