初めてのVPS構築ログ(WordPress公開)

 今回はWordpressをVPS環境に構築した記録になります。

 

VPS契約

 まず初めに、Wordpressを公開するためのサーバーを構築するためにVPS(Virtual Private Server:仮想専用サーバー)サービスと契約しました。

 今回はConoHaVPSを使用しました。内容は以下の通りで、料金は1ヵ月分で762円でした。

  • サービス:VPS
  • イメージタイプ:Ubuntu24.04(x86_64)
  • CPU:2core
  • メモリ:1GB
  • SSD:100
  • オプション:特になし

 支払いが完了し、サーバーが自動で起動するまで5分から10分ほど待機しました。

 ステータスが起動中になったらIPアドレスを確認して次はSSH接続に進みます。

SSH接続

 サーバーが構築出来たら次はSSH接続をするためにPowerShellもしくはコマンドプロンプトをスタートメニューから起動し、以下のコマンドを実行します。

ssh root@IPアドレス

 

 実行すると、初めて接続する場合は以下の表示が出ると思いますので”yes”と入力し、実行します。

Are you sure you want to continue connecting (yes/no/[fingerprint])? 

  

 上手くいけばログインパスワードが求められますので、入力したらSSH接続は完了です。

上手くつながらない・エラーが出る場合

  初めて接続を試みた際、以下の表示が出てSSH接続ができませんでした。

ssh: connect to host IPアドレス port 22: Connection timed out

 この表示が出た場合、ConoHaVPSのサーバー管理画面でセキュリティグループの項目を見ます。

 するとセキュリティグループが”default”になっていました。これではSSHのプロトコルを使用できないようです。

これをSSH接続が可能な”IPv4v6-SSH”へ変更しました。また、後ほどブラウザ確認をするためhttpとhttpsを許可する”IPv4v6-Web”も追加しておくとよいでしょう。

 そしてもう一度SSh接続を試みると、無事接続できました。(特に再起動とかは必要なかったようです。)

Nginx設定

 次はWEBサーバーソフトウェアをインストールします。今回はNginxを使用します。

 SSH接続し、ログインが完了したPowerShellの画面で以下のコマンドを順番に実行します。”-y”オプションは確認メッセージに自動で”yes”で回答するためにつけています。

sudo apt update
sudo apt install nginx -y

Nginxがインストールできたら以下のコマンドを実行してhttpリクエストを送ります。

curl http://localhost

そして、以下のような表示があればNginxのインストールは完了です。

<title>Welcome to nginx!</title>

次に以下のコマンドを順番に実行しPHPをインストール、バージョン確認します。

sudo apt install php-fpm php-cli php-mysql -y
php -v

次にNginxとPHPを連携するために、以下のコマンドを実行して設定ファイルを編集します。

sudo nano /etc/nginx/sites-available/default

そこでまずは”index”から始まる行に”index.php”を追加します。

そして次に”location ~ .php$”から始まる行を以下のように変更します。

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}

この際”#”がついているとコメント行として扱われてしますので消し忘れの内容にします。

書き換えが完了したら、以下を順番に実行して変更内容を保存し設定ファイルを閉じます。

Ctrl + O
Enter
Ctrl + X

設定ファイルを閉じることができたら、以下のコマンドでNginxを再起動します。

sudo systemctl restart nginx

次にPHP動作確認を行うために以下のコマンドを実行します。

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

そして最後に以下のURLをブラウザで検索し、PHP情報ページが表示されたら完了です。

http://IPアドレス/info.php

成功したら以下のような紫色のページがでます。

ブラウザがタイムアウトして表示されない場合

 セキュリティグループでhttpを許可していてもブラウザがタイムアウトしてしまい、表示されないことがありました。

 その場合、以下のコマンドをまず実行します。

sudo ufw status

すると、次のようなステータスになっていました。

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere       
22                         ALLOW       Anywhere       
OpenSSH (v6)               ALLOW       Anywhere (v6)  
22 (v6)                    ALLOW       Anywhere (v6) 

 このように、SShは許可されていますが、httpやhttpsが許可されていませんでした。

 追加するには以下のコマンドを実行します。

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

 コマンド実行後、再度ステータスを確認し、以下のような表示があればブラウザは開けるかと思います。

80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)

 今回実行したコマンドでUbuntu内部のファイアウォールを開放しましたが、管理画面でのセキュリティグループの設定変更がVPS会社のファイアウォールの設定となっています。

 このように通信には複数の門があるため、全部が通らないと最後まで上手く通信できないようになっているようです。

WordPress導入

 次にWordpressの導入に移ります。まずはMySQL派生のリレーショナルデータベース管理システム(RDBMS)であるMariaDBをインストールします。

sudo apt install mariadb-server -y

 そして以下のコマンドを順番に実行してDBを作成します。

sudo mysql
CREATE DATABASE データベース名;
CREATE USER 'ユーザ名'@'localhost' IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON データベース名.* TO 'ユーザ名'@'localhost';
FLUSH PRIVILEGES;

  DBが作成出来たら以下を順番に実行してWordpressを導入します。

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz
sudo cp -r wordpress/* /var/www/html/

 最後に権限を変更し、コマンド操作は終了です。

sudo chown -R www-data:www-data /var/www/html

 その後、以下のURLを検索するとWordpress初期設定画面になります。

http://IPアドレス

 Wordpress初期設定画面で先ほど決めたDB名やユーザ名、パスワードなどを入力しログインに成功すれば以下のような”Hello world!”の画面が出るかと思います。

 

 これでWordpressの環境構築は完了になります。

まとめ

 はじめて環境構築をしてみて、一番時間がかかったのはブラウザ確認です。VPS管理画面からhttpを許可しており、”systemctl status nginx”などで状況を確認しても問題がなく、SSH接続も問題なく行えていることから何を改善すればブラウザ表示がうまくいくのか分からず、起動してから時間がたっていないことが原因であると思っていました。

 しかし、いくら待ってもブラウザはタイムアウトするためインターネット等で他の原因について調べていたところ、Ubuntu側のファイアウォールも開放する必要があることに気づき、何とかブラウザで確認できるようになりました。

 終わってみればこんな単純なことを解決するのにたくさん時間を使ってしまった…と少し落胆していましたが、解決した瞬間はスッキリしましたし、これも経験として今後に生かそうと思いました。

コメントする

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

上部へスクロール