初心者がVPSサーバーでwordpressブログを開設してみた ~サーバー設定編~

Linux環境構築

これからTera TermとWinSCPを用いて、サーバーに接続して設定を行っていきます。
自身の契約したサーバーのIPとrootパスワードをそれぞれのアプリに入力し、ログインします。

なお以降の内容はroot権限でログイン完了できているものとして進めていきます。

これまでの設定については前記事「初心者 VPS ワードプレス ブログ開設 ~概要編~」を参考にしてください。

OSの初期設定

システム上のすべてのインストール済みパッケージを最新のバージョンにアップデートし、その後にyum-utilsというパッケージをインストールします。

# インストールされているパッケージを最新のバージョンに更新するためのコマンド
yum update
# yum-utilsパッケージをインストールするためのコマンド yum-config-managerを使用するために必要
yum install yum-utils

プログラミング言語 php関連ツールのインストール

Remiリポジトリを有効にしてPHP 7.4をインストールするための一連の手順です。

yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum install php php-cli php-fpm php-common php-mysqli php-gd

次にWinSCPを使用して、/etc/php-fpm.d/www.confを開き、php-fpmの設定を編集します。
行があり目移りしますが以下の三点の行を見つけ以下の内容に書き換え保存します

.....
user = nginx
......
group = nginx
.....
listen = 127.0.0.1:9000
.....

※参考・・・もし別のバージョンがインストールされてしまった場合や他のバージョンをインストールしたいときは以下コマンドでアンインストール、無効化してから再度インストールを試みます。記事を記述している時点で最新バージョンは8.3ですが、使用するwordpressのテーマがバージョンに対応しておらず今回は7.4をインストールしました。remi-php??←は適宜変更して対応してください。

# php8.2がインストールされてしまった場合
yum remove php php-cli php-fpm php-common php-mysqli php-gd
# php??を無効化
yum-config-manager --disable remi-php??
# php7.4を有効化
yum-config-manager --enable remi-php74
# 一式インストール
yum install php php-cli php-fpm php-common php-mysqli php-gd

Webサーバー nginxのインストールと設定

nginxをインストールします。apacheより高速なためこちらを選定しました。

yum install nginx

続いてWinSCPを使用して、/etc/nginx/nginx.confを開き、サーバーの設定を編集します。
server{}の箇所を以下のような内容に変更します。[ 自身のドメイン ]というところに自身で取得したドメインを入力します。server{}の項目が2つ設定されているのはwwwのサブドメインにメインドメインへのアクセスを転送する設定になります。

server {
    server_name www.[ 自身のドメイン ];
    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        try_files $uri =404;
        include fastcgi.conf;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #include fastcgi_params;
    }
    location ~ /\.ht {
        deny all;
    }
}
server {
        server_name  [ 自身のドメイン ];
        return 301 https://www.[ 自身のドメイン ]$request_uri;
}

設定が完了したらnginxを起動します。

systemctl start nginx

データベース mysql(mariadb)のインストール

データベースをインストールしたら起動して接続し、データベース管理者パスワード設定ワードプレス用DB作成ユーザー作成ユーザーのパスワードを設定します。5か所の[ ]を任意の値に書き換えてください。rootパスワードは忘れると変更が面倒なので忘れないようにしましょう。
[ 作成するDBの名前(wordpress.db) ]は同一のものを設定してください。

# データベースをインストール
yum install mariadb-server mariadb
# 起動
systemctl start mariadb


# MySQLにrootユーザーでログイン
mysql -u root

# 'root'@'localhost'のパスワードを指定してユーザー情報を変更
ALTER USER 'root'@'localhost' IDENTIFIED BY '[管理者ログインパスワード]';

# utf8mb4文字セットとutf8mb4_general_ci照合順序を持つデータベースの作成
CREATE DATABASE [作成するDBの名前(wordpress.db)] CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

# 作成したデータベースに対して、'ユーザー名'@'localhost'のユーザーに全ての権限を付与し、パスワードを指定
GRANT ALL PRIVILEGES ON [作成するDBの名前(wordpress.db)].* TO '[ユーザー名]'@'localhost' IDENTIFIED BY '[ユーザーのパスワード]';

# 権限の変更を反映させるために権限情報を再読み込み
FLUSH PRIVILEGES;

# MySQLからログアウト
EXIT;

wordpress本体のダウンロードと設置

指定のフォルダに移動しワードプレスをダウンロード。ファイルを設置します。

# wordpressのダウンロードとフォルダ名の設定
cd /var/www
curl -O https://ja.wordpress.org/latest-ja.tar.gz
tar xzf latest-ja.tar.gz
rm -r html
rename wordpress html wordpress

# アクセス権の変更
chmod -R 755 html
# 所有権の変更
chown nginx:nginx html

/var/www/html/wp-config-sample.phpをコピーします。
そのファイルを/var/www/html/wp-config.phpにリネームして、内容を編集します。
データベース mysqlのインストールで設定した内容と同一のものを設定します。

define( 'DB_NAME', '[ DBの名前 ]' );

define( 'DB_USER', '[ ユーザー名 ]' );

define( 'DB_PASSWORD', '[ ユーザーのパスワード ]' );

ファイアーウォールのポート開放設定

前記事「初心者 VPS ワードプレス ブログ開設 ~概要編~」で契約したConoHaVPSのファイアウォールの設定は行いましたが今度はOS自身のファイアウォールの設定を行ないます。
Webからのアクセスのポート(80,443ポート)を解放設定します。

#http用のポート
firewall-cmd --zone=public --add-port=80/tcp --permanent
#https用のポート
firewall-cmd --zone=public --add-port=443/udp --permanent
#設定を反映
firewall-cmd --reload

wordpressへのアクセス確認

これまでの設定をすべて完了したら自身のドメインにアクセスしてみます。
http://[ 自身のドメイン ]/wp-admin/
にアクセスすると以上のような画面が表示されるはずです。

アクセスできない場合、以下3項目について確認してみてください。

  1. ドメインの設定が間違っている(対策:サーバーにpingを打ってみる)
  2. 各種サービスが起動していない (以下コマンド)
  3. 設定ファイルが間違っている
# サービスの再起動コマンド
systemctl stop nginx(or php-fpm mariadb)
systemctl start nginx(or php-fpm mariadb)

https化のためのcertbotのインストール

CertbotとはLet’s Encryptと呼ばれる認証局から無料でSSL認証書を発行が出来るツールです。
https化に必要になります。サーバーがアクセスできるようになっていないと処理できません。
証明書は3か月の有効期限はありますが自動化してしまえば実質無制限で利用できます。

yum install certbot
# certbotによるhttps
certbot --nginx -d [ 自身のドメイン ]

途中メールアドレス等を聞かれますが入力して説明に従っていくだけでhttps化の設定を自動で行ってくれます。

各種インストールツールの自動起動設定

各種ツールをインストールしてきましたが、サーバーを再起動したりするとそれぞれのアプリをまた起動しないといけなくなりますので自動起動の設定を行っておきます。

systemctl enable nginx
systemctl enable php-fpm
systemctl enable mariadb

# 自動起動設定されているアプリ一覧を表示するコマンド
systemctl list-units --type=service

certbotの自動更新についてはcronジョブを使用し、定期的に実行するようにします。

# まず以下コマンドで証明書の更新がうまく動作するかを確認します
certbot renew --dry-run

# cronジョブを編集する
crontab -e

# エディタが開くので、以下のようにジョブを追加
0 5 * * 0 certbot renew --quiet

# ジョブが正しく実行されたか確認するログ
grep CRON /var/log/syslog

0 5 * * 0は「 分 時 日 月 曜日 コマンド」の意味を持ち、毎週日曜朝5時に実行という意味になります。crontab -eでvimが起動しますので[Esc] [:][w][q]と入力して保存終了します。


設定お疲れ様でした。慣れていないとなかなかここまで来るのも大変かと思います。残りはワードプレスの設定だけとなります。あともうひと踏ん張り頑張りましょう。
次の記事→「wordpress設定」

コメント

タイトルとURLをコピーしました