さくらVPSでWordPress環境を構築

環境

  • CentOS7
  • PHP7
  • MySQL5.7
  • Nginx

目指すところ

  • この記事を上から順にやることでWordPressの導入及び運用が可能な環境を構築

事前に準備を終わらせておいてほしいもの

  • さくらVPSの契約
  • 独自ドメインの取得
  • DNSの設定
  • CentOS7のインストール
  • VPSの起動

注意事項

  • わかりやすくするために基本的に root ユーザで作業を行っています
    • su -su ユーザ名 が出てくるところは間違えやすいので注意してください

ユーザの作成

  • VPSに入る
ssh root@ipアドレス
  • ユーザの追加
useradd username
  • 追加したユーザのパスワードを作成
passwd username
  • username の表記のところはすべて自分が作成したいユーザ名に置き換えてください

yumの更新

yum update -y

SELinuxの停止

setenforce 0
sed -e "s/enforcing/disabled/g" /etc/selinux/config

公開鍵認証を利用したSSH環境を構築する

  • Mac側
    • VPSから以下コマンドでログアウトします
      • exit
    • 以下リンクからsshの設定を行います
      • リンクの作業完了後、作成したユーザで ssh を使ってVPSに接続します
ssh username@ipアドレス


  • VPS側
    • 作成したユーザでログインできていることを確認してください
      • username@host名 ~ となっていたら接続できています
    • 接続後以下のコマンドを実行してください

mkdir ~/.ssh
touch ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  • 一旦作成したユーザの作業完了のため一旦、 exit コマンドでログアウトします

  • Macの鍵をVPSに登録する

    • 初回のみパスワードを求められますが、次回以降はパスワードの入力なしでログインができます
cat ~/.ssh/id_rsa.pub | ssh username@ipアドレス "cat >> ~/.ssh/authorized_keys"
  • 以下コマンドでパスワードを求められずにログインできるかを確かめて下さい
ssh username@ipアドレス

sshの設定を変更

  • 【公開鍵認証を利用したSSH環境を構築する】でログインしたユーザから管理者に変更します
    • 以下コマンドを実行し、rootユーザのパスワードを入力すると root ユーザになれます
    • su -
    • ※ これより先はすべて root ユーザで作業を行います
  • sshの設定ファイルのバックアップを以下コマンドで作成します

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.old
  • 以下コマンドでsshd_configを編集します

    • vim /etc/ssh/sshd_config
  • rootユーザのログインを禁止

#PermitRootLogin yes
↓に変更してください
PermitRootLogin no
  • sshで利用するポート番号の変更
#Port 22
↓に変更してください
Port 好きなポート番号
  • パスワード認証を禁止
#PasswordAuthentication yes
↓に変更してください
PasswordAuthentication no
  • sshdを再起動
    • 以下コマンドで ssh を再起動します
service sshd restart
  • 設定が反映されているか確認
    • ssh の設定が終わったので設定が反映されているか確認します
      • exit コマンドで一旦ログアウトします
      • ログアウト後、以下コマンドでVPSに接続できないことを確認します
ssh root@ipアドレス
ssh username@ipアドレス

ファイアーウォールの設定

  • su - コマンドを利用して root ユーザなり以下コマンドを実行していきます

  • ウェブサーバー(http)のサービス(ポート)を開きます。

firewall-cmd --add-service=http
  • ウェブサーバー(http)のサービス(ポート)を再起動しても開くように設定
firewall-cmd --permanent --zone=public --add-service=http
  • ウェブサーバー(https)のサービス(ポート)を開きます。
firewall-cmd --add-service=https
  • ウェブサーバー(http)のサービス(ポート)を再起動しても開くように設定
firewall-cmd --permanent --zone=public --add-service=https
  • SSHサーバーのポートを開きます。
firewall-cmd --add-port=指定したポート番号/tcp
  • 古いSSHサーバーのサービス(ポート)を閉じます。
firewall-cmd --remove-service=ssh
  • SSHサーバーのポートを再起動しても開くように設定します。
firewall-cmd --permanent --add-port=指定したポート番号/tcp
  • 古いSSHサーバーのサービス(ポート)を再起動しても閉じるように設定します。
firewall-cmd --permanent --remove-service=ssh
  • ファイヤーウォール設定をリロード
firewall-cmd --reload
  • ssh の設定後は以下のコマンドで接続するようにします
ssh -p sshで設定したポート番号 username@ipアドレス

phpインストール

Nginxのインストール

  • 以下リンクの作業が完了後、以下コマンドでrootユーザに戻る
su -

MySQL5.7のインストール

MySQLに接続

  • 以下コマンドを叩きMySQLに接続する
    • パスワードのみ以下のコマンドを実行後に聞かれるので入力してください
mysql -u root -p

WordPressで利用するDBを作成する

  • 無事にログインできれば以下のSQLを実行してデータベースを作成します
    • データベース名は各自自由に変更してください
CREATE DATABASE データベース名 CHARACTER SET utf8;

MySQLで利用するユーザの作成

  • 以下のコマンドでは全権限をもったユーザを作成しています(用途に合わせて権限は削って下さい)
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';

WordPress導入

  • 以下コマンドでWordPressの導入を行います
cd WordPressを設置したいパス
wget https://ja.wordpress.org/wordpress-4.7.5-ja.tar.gz
tar xvzf wordpress-4.7.5-ja.tar.gz
chmod –R g+w wordpress
chown -R nginx:nginx wordpress

WordPressの設定を変更する

  • 以下コマンドで設定ファイルのバックアップを作成します
cd WordPressまでのパス
cp wp-config-sample.php wp-config.php
  • 以下コマンドで設定ファイルを開き設定を変更していきます
    • vim WordPressまでのパス/wp-config.php
/** WordPress のためのデータベース名 */
define('DB_NAME', 'dbname');

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

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'MySQLで作成したusernameのpasswd');

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

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

/** データベースの照合順序 */
define('DB_COLLATE', '');

/** FTPの認証を省略 */
define('FS_METHOD','direct');
  • 認証用ユニークキーの変更
    • 以下デフォルトの設定をこちらでキーを発行し上書きします
  • 以下コマンドで設定ファイルを開き設定を変更していきます
    • vim WordPressまでのパス/wp-config.php
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');

WordPressのPermissionを変更する

  • 以下コマンドで権限を変更していきます
cd WordPressまでのパス
chmod -R 707 wp-admin
chmod -R 707 wp-includes
chmod -R 707 readme.html
chmod -R 707 wp-config-sample.php
chmod -R 707 wp-settings.php
chmod -R 707 wp-login.php
chmod -R 707 wp-signup.php
chmod -R 707 license.txt

Nginxのconfファイルを作成

Nginxを起動する

  • 設定ファイルのテストをする
    • 以下コマンドで作成したconfigにエラーがないか確認できます
nginx -t
  • 以下のようになっていれば成功です
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
  • Nginxとphp-fpmを自動起動する
chkconfig nginx on
chkconfig php-fpm on
  • Nginxとphp-fpmを起動する
systemctl start nginx
systemctl start php-fpm

確認

  • VPSでの設定は上記で完了になります
  • あとはNginxで設定した server_name にアクセスしてみてください
  • 無事にWordPressが表示されたら環境構築完了になります

補足

  • 以下の設定もやっておくとVPSへの接続が楽になります

最後に

  • お疲れ様でした。
  • これでWordPressライフをはじめることができます。
  • 導入で躓いた点やわからない点があればコメント下さい。