WordPress構築手順

WordPressでブログサイトを構築する手順を書き記す。

この手順は本ブログサイトを構築した手順を概ねそのまま記述したものである。

利用したサービス

さくらVPSでサーバを借りる手順はご自分で。サイトにアクセスしてプランを選択し支払方法を決めるだけです。

お名前.comでもドメインを借りる方法は超簡単なので割愛。

さくらのSSLでサーバ証明書取得・設定する手順についてはこちらです。サーバ証明書作成にあたりCSRを作成する必要がありますがそれはこちらから。多分openSSL使うかな。

利用したOSS

  • CentOS Stream 8・・・OS
  • php・・・WordPressの動作言語
  • MySQL・・・データベース
  • httpd・・・ウェブ公開
  • WordPress・・・誰でも高機能なサイトやブログ、アプリを作れるらしい。

phpインストール

こちらから動作環境を確認しphpのバージョンを決めよう。今回は7.4にした。

dnf module list php
sudo dnf module install php:7.4

phpをインストールする。最初のコマンドで上のバージョンが適用されているか確認してから二行のコマンドを実行。

dnf list |grep php
sudo dnf install php $(echo php-{devel,mysqlnd,dom,gd,pdo,xml,mbstring,pear,json})

MySQLインストール&DB構築

MySQLをインストール。

sudo dnf install mysql-server

MySQLを起動し、次回以降OSが起動するたびに自動で起動するよう設定。

sudo systemctl start mysqld
sudo systemctl enable mysqld

MySQLインストール後の初期設定みたいなもの。

sudo mysql_secure_installation

MySQLにrootユーザでアクセス。WordPressで利用するユーザやDBを作成し権限を設定する。今回ロールを作成して権限を割り当ててみた。”SET DEFAULT ROLE”を利用しないと、ユーザにログインした時に権限が割り当てられていない状態となり作成したDBにもアクセスできないので注意。

sudo mysql -p

CREATE DATABASE 'WordPress用DB名';
CREATE USER 'ユーザ名'@'localhost' IDENTIFIED BY 'パスワード';

CREATE ROLE 'WordPress用ロール名';
GRANT ALL ON '作成したDB名'.* TO '作成したロール名';
GRANT '作成したロール名' TO '作成したユーザ名'@'localhost';

SHOW GRANTS FOR '作成したユーザ名'@'localhost';
SHOW GRANTS FOR '作成したユーザ名'@'localhost' USING 'wp_roll';

SET DEFAULT ROLE '作成したロール名' TO '作成したユーザ名'@'localhost';

FLUSH PRIVILEGES;

WordPressダウンロード&構築

WordPressをダウンロードし展開する。とりあえず先に公開用ディレクトリに保存先を変える。だいたいみんな”/var/www/html/”かな?

curl -O http://ja.wordpress.org/latest-ja.tar.gz
tar xf ./latest-ja.tar.gz
mv ./wordpress/ 宛先ディレクトリ

WordPressのファイル”wp-config-sample.php”を”wp-config.php”にファイル名変更し、ファイルに4行目以降のコードを記述。データベースの情報やドメインは各自作成・設定した文字列を設定する。

mv ./wp-config-sample.php ./wp-config.php
vi ./wp-config.php

/** WordPress のためのデータベース名 */
define( 'DB_NAME', '作成したデータベース名' );

/** データベースのユーザー名 */
define( 'DB_USER', '作成したユーザ名' );

/** データベースのパスワード */
define( 'DB_PASSWORD', '作成したユーザのパスワード' );

/** データベースのホスト名 */
define( 'DB_HOST', 'localhost' );


/** 次のURLの値に置き換えること. https://api.wordpress.org/secret-key/1.1/salt/ **/
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' );


/** SSL対応 (特にリバースプロキシ配下で有用?) **/
define('FORCE_SSL_ADMIN', true);
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
    $_SERVER['HTTPS']='on';
}
define('WP_HOME','https://取得したドメイン/');
define('WP_SITEURL','https://取得したドメイン/');

httpldインストール&設定

httpdをインストール。こちらも即時起動と自動起動設定を行う。

sudo dnf install httpd
sudo dnf install httpd mod_ssl
sudo systemctl start httpd
sudo systemctl enable httpd

http用の設定.ファイルパスは”/etc/httpd/conf.d/ドメイン.conf”にしておく。

<VirtualHost *:80>
DocumentRoot 宛先ディレクトリ
AllowEncodedSlashes On
<Directory />
        Options FollowSymLinks
        AllowOverride None
</Directory>
<Directory "宛先ディレクトリ">
    Options FollowSymLinks MultiViews ExecCGI
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>
</VirtualHost>

https用設定.ファイルパスは”/etc/httpd/conf.d/ssl.conf”を編集。こちらも”ドメイン.conf”の内容を設定する。こちらはコピペじゃ少しまずい。以下の設定項目はお手元の環境にすでに記述されているはずだ。各種ファイルパスだけ変更しよう(ファイルの権限も変えてね.600くらいで.)。プラスαで”ドメイン.conf”に記述した内容も<VirtualHost></VirtualHost>の間に設定しよう。

SSLPassPhraseDialog エコーファイルパス

<VirtualHost _default_:443>
# ここに"ドメイン.conf"を記述する
SSLCertificateFile 取得したサーバ証明書ファイルパス
SSLCertificateKeyFile 作成したキーファイルパス
SSLCertificateChainFile 中間証明書ファイルパス
</VirtualHost>

作業終了

おわり!

本当はsquidというリバースプロキシを用意したかったんだけどうまくいかなかった。squidでhttps通信してhttpdはhttp通信するからcss/jsがhttp通信でうまくいかない感じだったかな。URLがおかしくなる問題もあったよ!”http://ドメインhttps/ドメイン/ファイルパス”みたいなURLになっちゃって名前解決不可能になった。なんでだろう。

まぁ、いいや!適当に緩くいこう!w

最近WSL2やってるから次の記事はそれをネタに上げようかな!

コメントを残す