CentOS7 + nginx WordPressで大きいサイズのファイルアップロード時のエラーの対処法

CentOS7にPHPをインストールして、その上にWordPressを動かす際に、アップロードするファイルサイズの上限をPHPで設定するとワードプレス側でそれが反映される。

ワードプレスのアップロード画面

だが、表示されている上限内のファイルサイズをアップロードする際に下記のようなエラーが出る。

大きいファイルサイズのアップロード時のエラー

「サーバーから予期しないレスポンスがありました。ファイルは正しくアップロードされているかもしれません。メディアライブラリもしくはページをリロードして確認してください。」とのこと。

はぁ?・・・

ワードプレスのメディアを確認してみたところファイルはなく、リロードしても表示されない。つまりアップロードされていない。

実はこれ、nginx側もセキュリティの観点からアップロード出来るがファイルサイズに上限が設定されているらしく、それが悪さ?をしてるらしい。

#/etc/nginx/conf.d/default.conf

server { ←この「server」の{}中に
 client_max_body_size 20M;
  ↑これを追記

#systemctl restart nginx

上限サイズはPHPの設定と合わせてやるとトラブルがなくてよろしいかと。

参考サイト:Nginx での 413 Request Entity Too Large エラーの対処法

ワードプレスでサイトを運営している際のセキュリティ対策用の「.htaccess」の設定備忘録

wp-config.phpの設定

ワードプレスの重要設定ファイルなので自身のIPアドレスからのみアクセス許可とする設定

<files wp-config.php>
order deny,allow
deny from all
allow from 000.000.000.000
</files>

wp-login.phpの設定

ワードプレスのログイン画面へ自身のIPアドレスのみアクセス許可する設定

<files wp-login.php>
order deny,allow
deny from all
allow from 000.000.000.000
</files>

xmlrpc.phpの設定

基本的には全てのアクセスを拒否で問題なし。
プラグインの「Jetpack」を利用している場合は「Jetpack」がこのファイルを利用しているのでを「Jetpack」を提供しているAutomattic社のIPアドレス(192.0.64.0/18)のみ許可する設定

<files xmlrpc.php>
order deny,allow
deny from all
Allow from 192.0.64.0/18
</files>

WordPress 5.0.1 と Twenty Nineteen にしてみた

WordPress 5.0.1

WordPress 5.0.1

まず、WordPress 5.0.1 はエディタが新しい「Gutenberg(グーテンベルク)」になり、今までのものとは似ても似つかないエディタになっていて、慣れるまでかなり時間がかかりそう。更に一部がきちんと日本語に翻訳されていない部分があり、次のアプデでここら辺がちゃんと翻訳されるまで少し様子を見た方がいい感じ。

Twenty Nineteen

Twenty Nineteen

新しいテーマの「Twenty Nineteen」もこれまた斬新すぎるというか、サイドバーがない!うーん・・・どうなんだろう・・・となってしまうが、確かにスマホの時代だから、スマホ表示を第一に考えるのは自然の流れなんだろうけど、PC表示のときに、ちょっとちょっとのような気がするのは自分だけだろうか・・・?

あとは時間と共に慣れていくしかないんだろうなぁ・・・。

Apacheのmod_deflate(gzip圧縮)を利用してコンテンツを圧縮して転送量を下げ表示を表示速度を向上させる設定

そもそも何故こんなことをしなければならないか?というと、WordPressを利用してブログを運営していると徐々に記事数も増え、利用するプラグインも増え、データベースの容量も増え、時と共に重くなるWordPressの表示速度を少しでも速くしたい。

何故表示速度を速くしたいのか?中々コンテンツが表示されず、長い読み込み中の画面から立ち去るブラウザバックを少しでも減らしたい、そして1件でも多くのPVを獲得したい・・という切実な思いの表れであり、SEOの非常に重要な一環であります。

まぁ、このサイトは雀の涙ほどしかPVがないわけでありますが・・・それは置いておいて。

実際の設定方法

「httpd.conf」を開き

#vi /etc/httpd/conf/httpd.conf

最終行に下記を追記

ソースは下記サイトのものをそのままパクらせて利用させていただきました。ありがとうございます。m(_ _”m)

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE

# Mozilla4系などの古いブラウザで無効、しかしMSIEは除外
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# gifやjpgなど圧縮済みのコンテンツは再圧縮しない
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI _\.utxt$ no-gzip

# htmlやcssなどは圧縮
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
</IfModule>

設定が完了したら「httpd」のサービスを再起動。

#systemctl restart httpd

下記サイトで実際に反映されているか?を視覚的に非常にシンプルで分かりやすく確認できます。

Evaluation Tools(圧縮をチェックできるサイト(英語))」

参考サイト
Apacheのmod_deflateでコンテンツを圧縮してサイトを高速化する方法
正しく圧縮、素早く送信、mod_deflateの設定方法

WordPressを高速化するMariaDBのInnoDB(CentOS7)の設定

WordPressを高速化する一つの手法としてMaiaDBをInnoDBで運営している際にクエリキャッシュを有効にさせてデータベースの読み込みを高速化する設定の備忘録です。

サーバー上のMariaDBの設定ファイルを設定するので、サーバー管理者、もしくはレンタルサーバーのroot権限を持った管理者向けの設定方法です。なので今回の設定ではWordPress自体はいじりません。

MariaDBの設定ファイルの書き換え

#vi /etc/my.cnf.d/server.cnf

[mysqld]
・
・
innodb_buffer_pool_size = 512M
query_cache_size = 64M

[mysqld]部分の最後に上記の2行を追記

MariaDBのサービスの再起動

#systemctl restart mariadb

現在のクエリキャッシュの設定値の確認

シェルでMariaDBにログインしてコマンドラインで

>SHOW VARIABLES LIKE '%query_cache%';

+------------------------------+----------+
| Variable_name | Value |
+------------------------------+----------+
| have_query_cache             | YES      |→クエリキャッシュを利用
| query_cache_limit            | 1048576  |→クエリキャッシュ最大サイズ
| query_cache_min_res_unit     | 4096     |
| query_cache_size             | 67108864 |→クエリキャッシュ領域
| query_cache_strip_comments   | OFF      |
| query_cache_type             | ON       |
| query_cache_wlock_invalidate | OFF      |
+------------------------------+----------+
7 rows in set (0.00 sec)

キャッシュが有効になっていることを確認