シンVPSのUbuntu22にWordPressをNginxとPHP 8.1で構築!Let’s EncryptでSSLも完全対応

Nginx

WordPressはその手軽さと柔軟性から、世界中で最も人気のあるCMS(コンテンツ管理システム)です。しかし、WordPressをサーバーにセットアップするには、正しい環境設定とセキュリティ対策が不可欠です。そこで、今回はシンVPSを利用して、Ubuntu22にWordPressをNginxサーバーとPHP 8.1で構築する方法をご紹介します。さらに、Webサイトのセキュリティを強化するために、無料で手軽にSSL証明書を取得できる「Let’s Encrypt」も導入します。

なぜシンVPSでWordPress?

シンVPSは、コストパフォーマンスに優れたVPSサービスで、柔軟性の高いサーバー環境を提供します。高性能なサーバーを安価で利用できるため、個人ブログからビジネスサイトまで幅広い用途に対応可能です。加えて、シンVPSはカスタマイズがしやすく、NginxやPHPなど、必要なソフトウェアを自由にインストールして、最適なWordPress環境を構築できます。

安全で高速なWordPress運営

Nginxは高性能なWebサーバーとして知られ、WordPressとの相性も抜群です。また、PHP 8.1は高速かつ最新の機能を備え、WordPressの動作をスムーズにします。さらに、SSL対応を強化することで、ユーザーの信頼を得やすく、SEOの評価も向上します。

この記事では、シンVPSのUbuntu22にNginxとPHP 8.1をインストールし、WordPressを快適に運営できる環境を作り上げます。そして、Let’s Encryptを使ってSSL証明書を導入し、通信のセキュリティも万全に。これで、SEO対策としても強化され、訪問者にとっても安心なWebサイトを提供することができます。

それでは、具体的な手順に進みましょう。最適なWordPress運営環境を手に入れる準備は整いましたか?

でははじめましょう。

関連記事

必要なソフトウェアのインストール

Nginx、MySQL、PHP 8.1のインストール

apt update && apt upgrade -y
sudo apt install -y nginx mysql-server php8.1-fpm php8.1-mysql php8.1-cli php8.1-curl php8.1-xml php8.1-mbstring
  • php8.1-fpm:PHPのFastCGIプロセスマネージャー
  • php8.1-mysql:MySQLとの連携を可能にするPHPモジュール
  • php8.1-cli:PHPコマンドラインインターフェイス
  • php8.1-curl:PHPのcURLモジュール
  • php8.1-xml:PHPのXML処理モジュール
  • php8.1-mbstring:PHPのマルチバイト文字列モジュール

Nginxの設定

WordPressのサーバーブロック(設定ファイル)を作成します。
新しい設定ファイルを作成

sudo vim /etc/nginx/sites-available/wordpress

以下の内容を入力します(your_domain_or_ipを実際のドメイン名やIPアドレスに置き換えてください)

server {
    listen 80;
    server_name your_domain_or_ip;

    root /var/www/wordpress;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

設定を有効化

作成した設定ファイルをsites-enabledにリンクして有効にします。


設定を有効化

作成した設定ファイルをsites-enabledにリンクして有効にします。

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/

設定の確認
設定にエラーがないか確認します。

sudo nginx -t

Nginxを再起動
設定を反映させるため、Nginxを再起動します。

sudo systemctl restart nginx

確認用のテストページとphpの接続の確認をします。
先ほどのルートディレクトリ(/var/www/wordpress)にテスト用のページを作成します。

sudo mkdir /var/www/wordpress
sudo vim /var/www/wordpress/index.html

<html>
    <head>
        <title>Hello World!</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <br/>
            <h1>Hello World!</h1>
        <br/>
        <br/>
            これはテストページです。<br/>
        <br/>
            新しいサイトのチェックに使います。<br/>
        <br/>
        <br/>
    </body>
</html>
sudo vim /var/www/wordpress/info.php

<?php phpinfo(); ?>

WEB用のポートを開放

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

sudo ufw status

下記にブラウザよりアクセスし、ページが表示されれば正常に動いてます。

http://your_domain_or_ip/index.html
http://your_domain_or_ip/info.php

Let’s EncryptでSSL証明書を取得

次に、Certbotを使用してSSL証明書を取得し、Nginxの設定に反映させます。

Certbotのインストール

sudo apt install -y certbot python3-certbot-nginx

以下のコマンドでSSL証明書を取得し、自動的にNginxの設定を更新します。

sudo certbot --nginx -d your_domain_or_ip -m your_mail_address
your_domain_or_ip:あなたのドメイン名またはIPアドレスに置き換えてください。
your_mail_address:あなたのメールアドレスに変更してください

Certbotが証明書を取得し、Nginxの設定ファイルを自動的に更新します。

自動更新の設定

Certbotは、SSL証明書が期限切れになる前に自動的に更新されるように設定します。

sudo systemctl enable --now certbot.timer

NginxのSSL設定

Let’s EncryptでSSL証明書を取得した後、Nginxの設定をSSL対応に変更する必要があります。

Nginx設定ファイルの修正

Certbotが自動的にSSLの設定を行いますが、もし手動で確認や修正が必要な場合は、以下のようにNginx設定ファイルを修正します。

以前の設定ファイルをバックアップ

sudo cp -p /etc/nginx/sites-available/wordpress /etc/nginx/sites-available/wordpress_date +%Y%m%d-%H%M%S

設定ファイルの更新


既存のファイルを削除して新しく設定しなおします。

削除
sudo rm /etc/nginx/sites-available/wordpress

新しいファイルとして設定
sudo vim /etc/nginx/sites-available/wordpress
server {
    listen 443 ssl;
    server_name your_domain_or_ip;

    # SSL証明書のパス
    ssl_certificate /etc/letsencrypt/live/your_domain_or_ip /fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your_domain_or_ip /privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/your_domain_or_ip /chain.pem;

    # ルートディレクトリ
    root /var/www/wordpress;
    index index.php index.html index.htm;

    client_max_body_size 64M;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

ssl_certificate と ssl_certificate_key のパスは、Let’s Encryptが作成したSSL証明書の実際のパスに基づいています。
root /var/www/wordpress; は、WordPressを配置するディレクトリを指定します。

Nginxの再起動

sudo systemctl restart nginx

MySQLの設定

WordPress用のデータベースとユーザーを作成します。

MySQLにログイン

sudo mysql -u root -p

DB: wordpress
User: wp_user
pass: wp_user_password

CREATE DATABASE wordpress;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'wp_user_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

WordPressのインストール

ダウンロード&解凍

最新のWordPressを公式サイトからダウンロードして解凍します。

cd /var/www
sudo rm -fr /var/www/wordpress
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xvzf latest.tar.gz
sudo rmdir -r wordpress
sudo mldir wordpress
sudo mv wordpress /var/www/wordpress
sudo chown -R www-data:www-data /var/www/wordpress

wp-config.phpの設定

WordPress用の設定ファイルwp-config.phpを作成します。

cd /var/www/wordpress
sudo cp wp-config-sample.php wp-config.php
sudo vim wp-config.php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'wp_user_password');
define('DB_HOST', 'localhost');

WordPressインストールの完了

ブラウザでアクセスすると、WordPressのインストール画面が表示されます。
インストールを完了し、WordPressサイトが公開されます。

https://your_domain_or_ip/

サイトが確認出来たら、SSLの証明書も確認する。

PHP 8.1でアップロード制限を変更する方法

WordPress用にPHPの設定を調整

PHP設定ファイルを編集

sudo vim /etc/php/8.1/fpm/php.ini
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

PHP-FPMの再起動

sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx

高速で安全なWordPress環境を公開しよう

WordPressをセットアップ
ブラウザでサーバーのドメインにアクセスします。
WordPressのセットアップ画面が表示されたら、指示に従ってインストールを完了します。

この手順を実施することで、安全で高速なWordPress環境が構築できます。非rootユーザーでの操作により、管理の安全性が大幅に向上します。追記や不明点があればお知らせください!

シンVPSについてはこちら

コメント

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