ConoHa VPSを利用してWordPressをインストールするまでの手順を書いていきます。
基本的にConoHa VPSサポートの手順を進めていけば問題ありませんが、一部異なる手順で構築したので自分用のメモも兼ねて手順を残しておきます。
前提条件
- ConoHa VPSは契約済み
- ドメインはValue-Domainで取得済み
- サーバOSはCentOS 7.6
DNSサーバの設定
DNSの設定をしてから反映されるまで時間がかかるので先にやっておく。Value-Domainのコントロールパネルのネームサーバーの設定を選び、ConoHaのネームサーバーを設定する。
- ns-a1.conoha.io
- ns-a2.conoha.io
- ns-a3.conoha.io
ユーザを追加
サーバにrootでログイン。下記のコマンドを実行。
# useradd [ユーザ名]
追加したユーザのパスワードを変更する。
# passwd [ユーザ名]
セキュリティ上、rootのログインを禁止する。/etc/ssh/sshd_configを開き PermitRootLogin をnoに変更する。
PermitRootLogin no
Apache httpdのインストール
下記のコマンドを実行。
# yum install httpd
インストールが完了したらVPS起動時にApacheも起動するように設定しておく。
# systemctl enable httpd
DBのインストール
MariaDBをインストールする。
yum install mariadb-server
自動起動させる。
systemctl enable mariadb
初期設定。
mysql_secure_installation
パスワードを設定して、残りの設定はすべてYで。
Remove anonymous users? [Y/n] Y (anonymousユーザの削除するかどうか。nだと誰でもログイン可能。)
Disallow root login remotely? [Y/n] Y (rootログインを禁止するかどうか)
Remove test database and access to it? [Y/n] Y (テストデータベースを削除するかどうか)
Reload privilege tables now? [Y/n] Y (設定をすぐに反映するかどうか)
rootでログインしてWordPress用のデータベースを作成する。
# mysql -u root -p
create database [データベース名] character set utf8mb4 collate utf8mb4_unicode_ci;
PHPのインストール
remiレポジトリの追加。
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
PHPのインストール(現時点の最新は7.3)。
yum install --enablerepo=remi,remi-php73 php php-devel php-mbstring php-mysqlnd php-pdo php-gd
ドメインの設定
ConoHaのコントロールパネルにログインし、DNSを選択してドメインを追加する。 追加したらDNSの設定を行う。今回はnelke.jpの他にblog.nelke.jpを追加するので、下記のように設定する。
タイプ | 名称 | TTL | 値 |
---|---|---|---|
A(通常) | @ | 3600 | [IPアドレス] |
A(通常) | blog | 3600 | [IPアドレス] |
Apache httpdの設定をする。/etc/httpd配下にある*.confであればIncludeされているのでどれでもいい。Apache2.2系と2.4系で書き方が微妙に違う。今回は2.4。
<VirtualHost *:443>
ServerName nelke.jp
DocumentRoot [nelke.jpのドキュメントルート]
<Directory [nelke.jpのドキュメントルート]>
AllowOverride All
Options FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName blog.nelke.jp
DocumentRoot [blog.nelke.jpのドキュメントルート]
<Directory [blog.nelke.jpのドキュメントルート]>
AllowOverride All
Options FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
SSL証明書のインストール
mod_sslとcertbotをインストール。
# yum install mod_ssl
# yum install certbot python2-certbot-apache
SSL証明書の発行。
certbot --apache -d [ドメイン名]
SSL証明書は3か月で切れるので、cronで自動更新するようにしておく。/etc/crontabに下記を追加。
0 0 * * * root /usr/bin/certbot renew
WordPressのインストール
WordPressをダウンロードして解凍。
wget -O - https://ja.wordpress.org/latest-ja.tar.gz | tar zxvf -
wordpressディレクトリができるので、wordpress内のファイルをルートディレクトリに移動して、wordpressディレクトリを削除。
# mv [wordpressまでのパス]/wordpress/* [ルートディレクトリ]
# rmdir [wordpressまでのパス]/wordpress
ルートディレクトリの所有者とパーミッションを変更。
# chown -R apache:apache [ルートディレクトリ]
# chmod -R 755 [ルートディレクトリ]
ブラウザでアクセスして初期設定を進める。あとはテーマとかパーマリンクの設定をして終了。
補足
サイトにアクセスできなかったら
Firewallの設定を見て、httpsが許可されていなければ許可して再起動。
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload
WordPressの記事へのアドレスが404になる
まず、mod_rewriteモジュールが読み込まれているか/etc/httpd/以下の*.confを開き下記があるか確認。
LoadModule rewrite_module modules/mod_rewrite.so
あればApacheのAllowOverRideの設定を見てみる。AllowOverRideがNoneだと.htaccessが読み込まれずリダイレクトできないので、None以外(例えばAll)にしてあげる。
<Directory [ルートディレクトリ]>
AllowOverride All
</Directory>
一応、.htaccessも見て下記であれば問題ないはず。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>