WordPressで重めの記事が投稿できなかった場合の対処法

この記事は約4分で読めます。

 なぜかメディアファイルモリモリの記事を投稿しようとすると、投稿エラーになってしまったため、いろいろ試行錯誤した結果の解決策を備忘録として記録する。

WordPressの実行環境

サーバー:Synology NAS
MariaDB:Synologyパッケージセンターからインスコ
WordPress:WebStationでサービスを立てている

対処法

 結論はMariaDBのパケットサイズ制限(max_allowed_packet)に引っかかっていたために投稿エラーになっていた。
 設定変更はSynologyのWebUI上では出来ないため、SSH接続したターミナルでコマンドを実行していく。

設定ファイル(.cnf)の検索

 SSHでSynologyNASに接続したら、以下のコマンドを叩いて既存の.cnfファイルがないか確認する。

sudo find /volume1/@appstore -iname "my.cnf" 2>/dev/null

 だいたい、「/volume1/@appstore/MariaDB10/xxx/xxx/mariadbxx/etc/mysqld.conf」のようなものがデフォルトで作成されているはず。
 sudo catコマンドで中身を確認する。

sudo cat /volume1/@appstore/MariaDB10/xxx/xxx/mariadbxx/etc/mysqld.conf

 すると、mysqld.confの中身が表示される。

DO NOT EDIT THIS FILE !!!

You can change the port on user interface of MariaDB10.

Please add other custom configuration to /var/packages/MariaDB10/etc/my.cnf

#
[client]
socket = /run/mysqld/mysqld10.sock

[mysqld]
bind-address = 0.0.0.0
socket = /run/mysqld/mysqld10.sock
pid-file = /run/mysqld/mysqld10.pid
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4000
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
innodb_data_home_dir = /var/packages/MariaDB10/target/mysql
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/packages/MariaDB10/target/mysql
innodb_buffer_pool_size = 16M
innodb_file_per_table = 1
innodb_flush_method = fsync
synology_password_check = FORCE_PLUS_PERMANENT

[mysqld_safe]
open_files_limit=5000

[mysqldump]
quick
max_allowed_packet = 16M

この中のmax_allowed_packet = 16Mを拡張する必要がある。ただし、直接編集せずに/var/packages/MariaDB10/etc/my.cnfに設定値を書き込むよう注意書きがあるため、その通りに処理をする(人によってパスは違うかも)。

 まずは、/var/packages/MariaDB10/etc/my.cnfがあるかを確認。

sudo cat /var/packages/MariaDB10/etc/my.cnf

 あってもなくても、以下のコマンドでmy.cnfを開く(または新規作成)。

sudo vi /var/packages/MariaDB10/etc/my.cnf

(max_allowed_packetがない場合)

 iキーを押して編集モードにする。画面下に「— INSERT —」と表示されればOK。
 この状態で以下の内容を入力する。

[mysqld]
max_allowed_packet = 512M

 Escキーで編集モードを終了する(画面下– INSERT –が消える)。

(max_allowed_packetがすでに入力済みの場合)

 矢印キーで「max_allowed_packet」の行にカーソルを合わせ、ddと入力するとその行が消える。
 あとはiキーで編集モードにした上で「max_allowed_packet = 512M」のような形で更新したい値を入力する。

(max_allowed_packetがある場合・ない場合共通)

 入力した値を保存する。保存は以下のコマンドを入力する。

:wq

 編集画面も保存と同時に閉じられて元のターミナルに戻るので、以下のコマンドで作成したファイルを読めるか確認する。

cat /var/packages/MariaDB10/etc/my.cnf

 書き込んだ値が表示されればOK。あとはMariaDBを再起動し、Wordpressに再ログインして記事を保存できるか確認するだけ。

コメント