スポンサーリンク

ミニPC+Ubuntu+NginxでWordPressサーバーを構築する

Ubuntu
スポンサーリンク

先日、ミニPCでリバースプロキシサーバを構築しました。

構築したミニPCサーバーにWordPressサーバーを構築し、Synology NASのWordPressサーバーをミニPCに移行しました。さらに次回は、メールサーバーを構築します。

移行前

移行後

Nginxのインストール

リバースプロキシサーバー構築編で実施済みなのでここでは割愛します。

SSLサーバー証明書(Let’s Encrypt)の取得

当ブログのドメインのSSLサーバー証明書をLet’s Encryptで取得します。

リバースプロキシサーバー構築時は、80,443番ポートが使用できなかったのでDNSチャレンジ認証で取得しましたが、今回は、これらのポートが使用できるのでletsencryptをインストールします。

letsencryptのインストール

sudo apt-get install letsencrypt

証明書の発行(evening-network.server-on.netはドメイン名適宜、置き換えてください)

sudo letsencrypt certonly --standalone -d evening-network.server-on.net

証明書の自動更新。cronで自動化。

sudo crontab -e

以下を追加。

# Renew the Let's Encrypt SSL certificates at 3:00 AM on the 1st of every month
00 03 01 * * sudo systemctl stop nginx; sudo letsencrypt renew; sudo systemctl start nginx

証明書は、

/etc/letsencrypt/live/evening-network.server-on.net/ の下に配置されます。

詳細については、こちらの記事が参考になると思います。ここでは、割愛します。

【Ubuntu】Nginx+MariaDB+PHP7.4+php-fpmでwordpressをインストール
Ubuntu Server 20.04にnginx + MariaDB + PHP7.4 + php-fpmの環境でwordpressをインストールする方法です。作業工程下記の作業工程でUbuntu Server 20.04 LTSにwor...

UbuntuでLet's Encryptを使用してSSL証明書を作成する方法 - Qiita
Let's EncryptとはLet's Encryptは無料のオープンソースの証明書発行機関で、インターネットセキュリティを強化するために設立されました。ユーザーは簡単にSSL/TLS証明書を取…

自動更新

PHPのインストールと設定

PHPをインストールします。

※他のWordPressサーバーからデータ移行する場合は、移行元のPHPのバージョンを必ず合わせてください。(実際、違うバージョンで移行したら記事の内容が一部壊れていました。)

バージョンを指定する場合。今回は8.0。

sudo apt update
sudo apt install php8.0-cli php8.0-mbstring php-pear php8.0-fpm php8.0-mysql php8.0-curl php8.0-dom php8.0-imagick php8.0-zip php8.0-intl

/etc/php/8.0/fpm/php.ini を修正

upload_max_filesizeを2Mから128Mに変更。

post_max_sizeを8Mから128Mに変更。

upload_max_filesize = 128M
post_max_size = 128M

etc/php/8.0/fpm/pool.d/www.conf を修正

変更前

user = www-data
group = www-data

listen.owner = www-data
listen.group = www-data
;listen.mode = 0660

変更後

user = nginx
group = nginx

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

apache2を削除する(今回はNginxを使用するため)。

sudo apt remove apache2 -y
sudo apt purge apache2 -y
sudo rm -rf /etc/apache2

nginx .conf ファイル作成

/etc/nginx/conf.d で wordpress.confを作成する。

server_name はWordpressをインストールしているIPアドレスを設定する。ここでは、192.168.100.55。

erver {
listen 80;
server_name 192.168.100.55;
root /usr/share/nginx/wordpress;
index index.php;

charset utf-8;

# wordpress パーマネントリンク設定
try_files $uri $uri/ /index.php?q=$uri&$args;

# wp-config.phpへのアクセス拒否設定
location ~* /wp-config.php {
deny all;
}

# php-fpm用設定
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;
}
}

ファイルチェック。ここでエラーが出たら修正する。

sudo nginx -t

再起動。

sudo systemctl restart nginx

MySQLのインストールと設定

インストール

 sudo apt install mysql-server mysql-client -y

rootユーザーで設定を行う。

sudo mysql -u root -p

パスワードは任意。

次にデータベースを作成する。

下記のようにしたとき、

データベース名wordpress
ユーザー名user-name
パスワードpass-word

以下のコマンドを実行する。

CREATE DATABASE wordpress CHARACTER SET UTF8 COLLATE UTF8_BIN;
CREATE USER 'user-name'@'localhost' IDENTIFIED BY 'pass-word';
GRANT ALL ON wordpress.* to 'user-name'@'localhost';
exit

Wrodpressインストール

/usr/share/nginx/ の下に、Wordpressをインストールする。

cd /usr/share/nginx/
sudo curl -O https://ja.wordpress.org/latest-ja.tar.gz
sudo tar xzfv latest-ja.tar.gz
sudo chown -R nginx:nginx wordpress

/usr/share/nginx/wordpress/wp-config.php の変更。

前段で、以下のように設定したので、各項目を当てはめる。

データベース名wordpress
ユーザー名user-name
パスワードpass-word
データベースの文字セットutf8mb4
認証用ユニークキー(右記のURLで生成する)https://api.wordpress.org/secret-key/1.1/salt/

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

/** Database username */
define( 'DB_USER', 'user-name' );

/** Database password */
define( 'DB_PASSWORD', 'pass-word' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

/**#@+
* Authentication unique keys and salts.
*
* Change these to different unique phrases! You can generate these using
* the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
*
* You can change these at any point in time to invalidate all existing cookies.
* This will force all users to have to log in again.
*
* @since 2.6.0
*/
ここに自動生成されたユニークキーをコピーする

初期設定画面を表示する。192.168.100.55は、WordpressがインストールしているIP。

http://192.168.100.55/wp-admin/install.php

(All-in-One WP Migrationで移行する場合は注意する点があるので、先に過去の記事を参照してください。)

以降、画面の指示に従って設定してください。

任意:別のサーバーからデータを移行する場合(All-in-One WP Migration)

今回も、以前使用したAll-in-One WP Migration(有料)を使用しました。手順は過去の記事を参照してください。

https化する

前項であった、

/etc/nginx/conf.d で wordpress.conf を書き換えます。

evening-network.server-on.net はドメイン名(適宜置き換えてください。)

server {
listen 443 ssl;
server_name evening-network.server-on.net;
root /usr/share/nginx/wordpress;
index index.php;

charset utf-8;

# wordpress パーマネントリンク設定
try_files $uri $uri/ /index.php?q=$uri&$args;

# wp-config.phpへのアクセス拒否設定
location ~* /wp-config.php {
deny all;
}

# php-fpm用設定
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;
}
ssl_certificate /etc/letsencrypt/live/evening-network.server-on.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/evening-network.server-on.net/privkey.pem;
}
server {
if ($host = evening-network.server-on.net) {
return 301 https://$host$request_uri;
}

listen 80;
server_name evening-network.server-on.net;
return 404; # managed by Certbot


}

ファイルチェック。ここでエラーが出たら修正する。

sudo nginx -t

再起動。

sudo systemctl restart nginx

https化されたblogへアクセスする。evening-network.server-on.net はドメイン名(適宜置き換えてください。)

https://evening-network.server-on.net

アクセスできれば成功。

今回、以下のサイトを参考にさせていただきました。

【Ubuntu】Nginx+MariaDB+PHP7.4+php-fpmでwordpressをインストール
Ubuntu Server 20.04にnginx + MariaDB + PHP7.4 + php-fpmの環境でwordpressをインストールする方法です。作業工程下記の作業工程でUbuntu Server 20.04 LTSにwor...
VPSサーバーに、Ubuntu 22.04 + Nginx + PHP8.1 + WordPress で環境構築をする。 - Qiita
この記事についてYouTubeにて実演してます(OSの選択から、独自ドメインのHTTPS化まで)。WordPress をVPSサーバー(Ubuntu)にNginxを用いて公開する方法。…

2024/03/29現在、J412は在庫切れ、N150が販売中です。

第12世代インテルTwin Lake-N150 mini pc GMKtec G3 Plusミニpc 最大周波数3.6GHz 4コア/4スレッド DDR4 8GB+256GB SSD /高速2.5G有線LA/WIFI6/BT5.2 TDP 6W 小型pc M.2 2280 NVMe(PCIe3.0)ミニパソコン VESA対応 4K静音性 2画面同時出力 Windows 11 Pro

コメント

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