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ユーザーでの操作により、管理の安全性が大幅に向上します。追記や不明点があればお知らせください!
コメント