ConoHa VPS で WordPress環境を構築してみる | 東京都墨田区のHP・デザイン・イラスト制作会社 TenCy株式会社
  • 2023.7.25 2023.7.28

    ConoHa VPS で WordPress環境を構築してみる

    弊社では、WordPress環境を構築する際はWordPress向けのレンタルサーバーを提案することが通常でしたが、機会があってVPS環境にWordPressを構築する作業をすることになったので、手順メモ書き代わりに残しておこうと思います。

    なお、インフラに詳しい人間が実施しているのではなく、色々と調べながら作業したため、必ずしも最適な構築の手順であるとは限りません。また、本記事作成時点で実施できた手順のため、見ていただいた方がその時に実施できるかは不明ですので、ご了承ください。

    ConoHa VPS でサーバー環境を構築する

    ConoHa VPS からサーバー追加を選択し、サーバーを構築します。今回はCentOS Stream9(64bit)を採用しました。OSの選択した色々とありますが、私はCentOSとUbuntuしか使用経験が無いので、物珍しい…。rootパスワードを設定してしばらく待つと、ステータスが起動中のVPS環境が構築されます。簡単。

    サーバー情報を開いて、IPアドレスを確認します。セキュリティの面から接続許可ポートは変更しておくのが望ましいですが、テスト環境ということでいったんそのままに。TeraTermなどのコンソールアプリを立ち上げてrootアカウントでログインできればOKです。

    ConoHa VPS で WordPress 環境構築1.Apacheのインストール

    本来、rootユーザーで操作し続けることは望ましい環境では無いのですが、テスト環境であることを言い訳に、このまま実施したいと思います。皆さんはユーザーを追加してから実施くださいね。

    さて、さっそくWordPress の環境を準備していこう、という前に、まずはサーバー環境を最新にしておきましょう。

    yum update

    標準OSから最新に更新されます。updateすることはさくらインターネットのページでも推奨されているので、実施しておくのが安心でしょう。

    環境によっては数分以上時間がかかるので、しばらく放置します。終わったら、Apacheのインストールをしましょう。こちらも終わったらComplete!されます。

    yum install httpd

    さて、index.htmlを配置してページが表示されることを確認したいところですが、その前に、GUI操作が良いよ!という人向けにSFTPアクセスができるようにしておきましょう。FTPツールを使ってファイル転送設定をできるようにします。弊社ではFileZillaを使ってます。

    FileZilla に取得済みのIPアドレスとrootアカウント情報を設定することで、SFTPアクセスができるようになります。プロトコルをSFTPにするのを忘れないでくださいね。

    アクセスできたら、これでファイル作成も怖くない!viコマンドで挫折した自分も安心です。index.htmlをサクッと作って、/var/www/html/ に配置してみます。

    早速、http://[ip address]/index.html にアクセスしてみると…表示されません!何故だ!?と、ここで最初に詰まりました。理由は、ファイヤーウォールの設定を変える必要があるからでした。

    firewall-cmd --list-all

    で設定を確認してみると、http / https のアクセスがブロックされていることが分かります。

    firewall-cmd --permanent --zone=public --add-service=https
    firewall-cmd --permanent --zone=public --add-service=http
    firewall-cmd --reload

    こちらのコマンドで、httpとhttpsがservicesに追加されればOKです。改めて、Apacheを再起動してからindex.htmlにアクセスしてみましょう。

    systemctl restart httpd
    systemctl enable httpd

    無事、index.htmlが表示されればOKです!ついでに自動起動される設定もしておきましょう。

    ConoHa VPS で WordPress 環境構築2.MariaDBのインストール

    続いて、データベース環境の構築に入ります。今回はMariaDBをチョイス。

    yum -y install mariadb-server

    しばし放っておくと、Complete! されます。

    systemctl enable mariadb
    systemctl start mariadb

    こちらも自動起動する設定をして、さっそくMariaDBを起動してみます。起動できているかどうかの確認コマンドは systemctl status です。mariadbだけでなくhttpd など他のサービスにも使用できます。

    systemctl status mariadb

    active (running) と表示されていればOK。q キーでこの画面から抜けられます。最初これが分からずターミナル切ったりしました…。

    mysql_secure_installation

    を実施して、初期設定を行います。まずはエンターキーでOK。すると、Switch to unix_socket authentication [Y/n] と聞かれてきます。safely answer ‘n’. と書かれていたので、nを選択。次のChange the root password? もパスワード変えなくて良いかと nを選択。その後はY連打。さて、動くかな?とやってみます。

    mysql -u root -p

    で root のパスワードを入力すると、Welcome to the MariaDB monitor. と表示されました。使えそう。引き続き環境構築を進めていきましょう。

    ConoHa VPS で WordPress 環境構築3.PHPのインストール

    ここが一番苦労しました。世に公開されている内容が古いバージョンのものが多く、最新の環境でやるにはどうするんだ?と試行錯誤。といっても、Linux環境に慣れてる人なら簡単だよ、と言われてしまうかも…。

    とりあえずPHPが表示できたか確認するために、先にPHPファイルを配置しておきましょう。PHP Infoを表示するinfo.phpを作って、/var/www/html/ に配置します。先ほど使ったindex.html はお役御免なので、削除しておきましょう。

    <?php phpinfo(); ?>

    これで、正しくPHP環境が構築できれば、http://[ip address]/info.php でPHP情報が表示されるはずですが、まだ環境を作って無いので表示されません。

    続いて、PHP環境の構築に入ります。今回使ったOSはCentOS 9 Stream で、PHP v8.2が最新なので、こちらのバージョンを有効化していきたいと思います。まずは、REMIを使えるようにしましょう。

    dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
    dnf module install php:remi-8.2

    remi-release-9.rpm が現在の最新なので、こちらを利用します。PHPのインストールが終わったら、Apacheを再起動(systemctl restart httpd)して、phpinfoが表示指されることを確認しておきましょう。

    ConoHa VPS で WordPress 環境構築4.phpMyAdminのインストール

    続いて、WordPress環境を管理するうえであると便利なDB管理ツール「phpMyAdmin」をインストールします。まずはコマンドを実行して、Apacheを再起動してみましょう。

    dnf --enablerepo=epel -y install phpMyAdmin php-mysqlnd

    この状態で http://[ip address]/phpMyAdmin へアクセスするだけで管理画面が表示されたら楽なのですが、403 Forbidden エラーが表示されると思います。URLは正しいですが、アクセスが禁止されている状態です。こちらを表示できるようにするまでも、結構苦労しました…。実施すべき作業は、configファイルの編集です。

    /etc/httpd/conf.d/phpMyAdmin.conf を編集します。念のため、現状のファイルは複製してバックアップを取っておきましょう。

    <Directory /usr/share/phpMyAdmin/>
       AddDefaultCharset UTF-8
    
       #Require local
       Require all granted
    </Directory>

    14行目にあるRequire local をコメントアウトして、Require all granted を追加します。その他セキュリティ対策のためにphpMyAdmin のURLを変更したりすることもできますが、まずはこちらの設定を実施してApacheを再起動して、phpMyAdmin のログインページが表示されることを確認しましょう。

    無事表示されたので、ログインして、WordPress用のテーブルを作っておきましょう。

    と思いきや、なぜかrootアカウントでログインできません…。コンソールからは同じrootユーザーとパスワードでログインできるのに、なぜだ…としばらく引っかかりました。原因は不明ですが、同じパスワードをMariaDB上で再設定することでログインできるようになりました。

    mysql -u root -p
    パスワードを入力
    show databases;
    use mysql;
    ALTER USER 'root'@'localhost' IDENTIFIED BY "パスワード";

    show databases; と use mysql; は必要では無いかも?しれません。やっていることは、データベース一覧を表示してmysqlデータベースを選択しているだけです。こちらを実施してパスワードを更新したのち、Apacheを再起動して改めてphpMyAdminにアクセスしてログインすると、エラーが発生せずログインできる状態になりました。

    さて、phpMyAdminの準備ができたら、WordPressで使うためのDBを作っておきます。作り方はWordPress公式にも載っていますが、改めて確認していきましょう。

    公式に従って、utf8mb4_general_ci を選択します。ユーザーの追加は、とりあえず後回しで良いかな。

    ConoHa VPS で WordPress 環境構築5.WordPressのインストール

    さて、ここまで来たらあとはWordPressをインストールするだけ。あと一歩のところまできました。長かった。まずは、インストールする /var/www/html/ に cd してカレントを移動しましょう。

    cd /var/www/html/

    CentOS環境では、インターネット上にあるtar.gzファイルはwgetコマンドで取得できます。WordPressの最新版は下記URLにあるので、ここからダウンロードしましょう。

    wget https://ja.wordpress.org/latest-ja.tar.gz
    tar xvzf latest-ja.tar.gz

    ダウンロードして回答できたことをlsコマンドやFileZillaで確認しておきましょう。ただ、このままだとWordPressのルートディレクトリが/wordpress というフォルダになってしまうので、ドメイン直下をルートにするためにファイル一式を移動しておきます。圧縮ファイルと解凍後のwordpressフォルダ(空)は不要なので削除してもOKです。

    mv wordpress/* /var/www/html

    さて、Apacheを再起動してWordPressの画面が表示されれば準備完了です。

    でました!ここまでくれば、後はWordPressの標準的な作業になってくるはず…と思いきや、まだ見慣れない画面が表示されます。これは、ApacheがWordPressファイルへの書き込みを行う権限が無いことによるエラーが原因です。権限を変更しておきましょう。

    chown -R apache:apache /var/www/html
    chmod -R 755 /var/www/html

    見慣れたインストール画面が表示されれば、WordPress環境の構築が完了です。ですが、この状態で開いてみるとWordPressの下層ページURLにindex.phpが含まれてしまう、という問題が発生すると思います。下層ページURLにindex.phpが含まれてしまう場合、httpd.conf の設定と.htaccessの設定を見直しましょう。

    <Directory "/var/www">
        AllowOverride All    #All に変更する
        # Allow open access:
        Require all granted
    </Directory>
    
    <Directory "/var/www/html">
        AllowOverride All #All に変更する
    </Directory>

    httpd.conf のAllowOverride を修正して、WordPressの設定>パーマリンクにindex.phpが含まれていないことを確認しましょう。

    ConoHa VPS で WordPress 環境構築6.独自ドメインの設定

    ここからはちょっと蛇足になる部分かな、と思いますが、引き続きWordPress環境の設定について記載したいと思います。現在はまだHPへのアクセスはIP Addressですね。次の対応として独自ドメインの対応をしましょう。

    今回は、ConoHa Wing 契約時の無料ドメイン1個プレゼントキャンペーン(既にConoHa Wingで運用済み)のドメインをConoHa VPS で使う、という流れで実施しましたが、他社サイトで取得したドメインも利用できると思います。

    ConoHa Wing 側のWordPressサイトを削除する

    ※この作業は、既に運用済みのドメインをVPSに割り当てようとしたために必要となった作業です
    ※この作業が必要無い方がほとんどだと思います

    まずは、ConoHa Wingのサイト管理からWordPressを削除します。DBもそのサイトのみで運用していたので、ついでに削除しました。サブドメインも設定していたので、それらも削除しています。

    ConoHa Wing 側のサーバー管理のドメイン情報を削除する

    ConoHa Wingのサーバー管理>ドメイン から、該当のドメインを削除します。こちらを削除しないと、DNSレコードを変更してもConoHa Wing側を参照してしまってVPSのサイトが表示されません。

    ConoHa VPS でDNSレコードを設定

    ConoHa VPS >DNS から、該当のドメインを選択してDNSレコードのIPアドレス部分(主にAタグが該当します)を、VPSで立ち上げたサーバーのIPアドレスで設定します。

    これらの作業を行って、しばらく待つと無事VPS側のサイトが表示されるようになりました。WordPressの管理画面で、一般設定のWordPressアドレスとサイトアドレスを変更しておきましょう。

    ConoHa VPS で WordPress 環境構築7.独自ドメインに対するSSLの有効化

    SSL対応は、今やホームページを公開する上では必須の設定であるといえます。閲覧のみの静的サイトなら問題は生じないともいえますが、SEOの評価やGoogle Chromeの表示で安全でないとされてしまう以上、設定していないことのデメリットが大きいですね。

    ですので、ConoHa VPS でWordPress環境を作った場合も必須で設定をしておきましょう。

    今回、SSL対応は無料のLet’s Encryptを利用します。サーバーにログインして、下記のコマンドを実施しましょう。


    弊社では、WordPressでのサイト制作や保守・運用管理を請け負っています。サイト更新管理でお困りの方、サイトを新たに作りたい方、お気軽にお問い合わせください。

    OTHER NEWS

    一覧にもどる