kusanagi RoDでブログ構築(3)

前回はKUSANAGI RoDとWordPressのインストールについて説明しました。

今回はWorkPressの設定について説明します。

WordPress初期設定の前に、WordPress用のサーバ設定をします。

ダッシュボードのセキュリティ対応

wordpressの管理画面にログインすると次のようなメッセージが表示されました。

wp-content/ フォルダの権限は 750 です、推奨フォルダ権限は 755 です。
wp-content/ フォルダのオーナーは www.kusanagi です、推奨フォルダオーナーは kusanagi.kusanagi です。

フォルダの権限とオーナーを変更する必要がありそうです。

フォルダの権限変更

推奨フォルダ権限とするために、まずは、config containerに入ります。
ユーザはunknownとなりますがkusanagiのユーザIDです。

~/wordpress/kusanagi01$ docker-compose run config sh

wp-content/のpermissionを755に設定します。

/ $ ls -la /home/kusanagi/kusanagi01/DocumentRoot/
total 216
drwxr-x---    5 1000     1001          4096 Aug  3 00:48 .
drwxr-xr-x    6 1000     1001          4096 Aug  3 00:48 ..
-rw-r--r--    1 1000     1001           405 Aug  3 00:48 index.php
...
drwxr-x---    9 1000     1001          4096 Aug  3 06:26 wp-content
...
-rw-r--r--    1 1000     1001          3133 Aug  3 00:48 xmlrpc.php
/ $ chmod 755 /home/kusanagi/kusanagi01/DocumentRoot/wp-content/

フォルダのオーナー変更

docker container(httpd)に入ります(ユーザはkusanagi)

~/wordpress/kusanagi01$ docker exec -it --user 1000 kusanagi01_httpd sh

chonwでオーナ変更(kusanagi.www→kusanagi.kusanagi)します。

/ $ ls -la /home/kusanagi/kusanagi01/DocumentRoot/
total 216
drwxr-x---    5 kusanagi www           4096 Aug  3 00:48 .
drwxr-xr-x    6 kusanagi www           4096 Aug  3 00:48 ..
-rw-r--r--    1 kusanagi www            405 Aug  3 00:48 index.php
...
-rw-r--r--    1 kusanagi www           3133 Aug  3 00:48 xmlrpc.php
/ $ chown kusanagi.kusanagi /home/kusanagi/kusanagi01/DocumentRoot/wp-content/

SMTPメール設定

セキュリティ対応の後はメール設定です。
設定前までは、システム設定変更やシステムからのメール送信をしても、宛先のメールアドレスで受信することはできませんでした。

いろいろ調べてみると、WordPressはPHPが実行されるWebサーバのメールサーバが利用されるということが判明しました。

VPS上に構築したサーバではメールサーバを使っていないことが原因でメール送信ができていませんでした。

解決方法

Webサーバではなく、外部のメールサーバ経由でメール送信できる方法があり、それで送信することにしました。メール送信がうまくいかないことで結構ハマりました。

phpのメール送信からSMTPのメール送信へ変更するには、下記を参考にGmailを設定します。

GCP設定

OAuth同意画面

アプリケーション名:★任意のアプリ名

認証情報

  • 「認証情報を作成」を押下します。
  • OAuthクライアントIDの作成を押下します。
    • アプリケーションの種類:ウェブアプリケーション
    • 名前:SMTP – ★自身のサイトのドメイン名
  • 設定の保存後に「OAuth 2.0 クライアント ID」の表の作成した行の名前列をクリックします。

WP Mail SMTP設定

  • GCPの「クライアントID」と「クライアントシークレット」をコピーしてWordPressのWP Mail SMTPの画面に貼り付けて「保存」ボタン押下します。
  • 「Allow plugin to send emails using your Google account」ボタンが出現するので押下します。
  • Googleのページが表示されます。
  • 詳細を押下し、「ドメイン名(安全ではないページ)」を押下します。
  • 次の画面で「許可」を押下します。
  • 「選択内容を確認してください」というページになるので「許可」を押下します。

システム設定

PHPファイル制限変更

テーマをアップしようとすると下記のエラーメッセージが出ます。

アップロードされたファイルが php.ini の upload_max_filesize ディレクティブを越えています。

下記の記事を参考にtarget直下にphp/uploads.iniを作成します。

target(kusanagi01)直下にあるdocker-compose.yamlファイルを編集します。
servicesのphpのvolumeに設定ファイルを記載します。

     volumes:
       - database:/var/run/mysqld
       - kusanagi:/home/kusanagi
       - ./php/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini # 追加

コンテナを再起動します。

$ docker-compose down
$ docker-compose up -d

kusanagi-httpdのログ出力をDockerの標準ログ出力にする

ターゲットディレクトリにnginx/conf.d/mylogs.confを作成し、下記を記載します。

error_log /dev/stderr warn;
access_log /dev/stdout  main;

docker-compose.ymlでhttpdサービスのvolumesへ下記を追記します。

      - ./nginx/conf.d/mylogs.conf:/etc/nginx/conf.d/mylogs.conf

WordPress初期設定

上記に従い設定しました。

テーマ有効化

テーマを有効にすると下記のエラーが出ます。

エラー対応

ファイルを作成・保存できる権限がありません。
以下のファイルもしくはディレクトリの所有者およびパーミッションを確認してください。
/home/kusanagi/kusanagi01/DocumentRoot/wp-content/themes/luxeritas

ファイルを作成・保存できる権限がありません。
以下のファイルもしくはディレクトリの所有者およびパーミッションを確認してください。
/home/kusanagi/kusanagi01/DocumentRoot/wp-content/themes/luxech

wp-content/themes/のディレクトリのオーナとpermission変更します。

~/wordpress/kusanagi01$ docker exec -it --user 1000 kusanagi01_httpd sh
/ $ ls -la /home/kusanagi/kusanagi01/DocumentRoot/wp-content/
total 36
drwxr-xr-x    8 kusanagi kusanagi      4096 Aug  6 14:12 .
drwxr-x---    5 kusanagi www           4096 Aug  6 14:12 ..
-rw-r--r--    1 kusanagi www             28 Aug  6 14:12 index.php
drwxr-x---    4 kusanagi www           4096 Aug  6 14:12 languages
drwxr-xr-x    3 kusanagi www           4096 Jul 31 12:57 mu-plugins
drwxr-x---    4 kusanagi www           4096 Aug  6 14:28 plugins
drwxrwxr-x    7 kusanagi www           4096 Aug  7 14:26 themes
drwxr-xr-x    2 kusanagi www           4096 Aug  7 14:26 upgrade
drwxrwx---    3 kusanagi www           4096 Aug  6 14:12 uploads
/ $ chown -R kusanagi.www /home/kusanagi/kusanagi01/DocumentRoot/wp-content/themes/
/ $ chmod 775 -R /home/kusanagi/kusanagi01/DocumentRoot/wp-content/themes/
/ $ ls -la /home/kusanagi/kusanagi01/DocumentRoot/wp-content/
total 36
drwxr-xr-x    8 kusanagi kusanagi      4096 Aug  6 14:12 .
drwxr-x---    5 kusanagi www           4096 Aug  6 14:12 ..
-rw-r--r--    1 kusanagi www             28 Aug  6 14:12 index.php
drwxr-x---    4 kusanagi www           4096 Aug  6 14:12 languages
drwxr-xr-x    3 kusanagi www           4096 Jul 31 12:57 mu-plugins
drwxr-x---    4 kusanagi www           4096 Aug  6 14:28 plugins
drwxrwxr-x    7 kusanagi www           4096 Aug  7 14:26 themes
drwxr-xr-x    2 kusanagi www           4096 Aug  7 14:26 upgrade
drwxrwx---    3 kusanagi www           4096 Aug  6 14:12 uploads
/ $ 

plugin追加

WP Multibyte Patch:日本語サイトの不具合を解消

問題なく有効化できました。

EWWW Image Optimizer:画像を自動的に圧縮してくれる

インストールは成功。有効化するとエラーになりました。

  • エラー対応その1
EWWW Image Optimizer はツールフォルダーを作成できませんでした。: /home/kusanagi/kusanagi01/DocumentRoot/wp-content/ewww/. パーミッションを調整するかフォルダーを作成してください。.
  • エラー対応その2
EWWW Image Optimizer は jpegtran, optipng, pngout, pngquant, gifsicle, and cwebp を使用します。 jpegtran, gifsicle がありません。 設定ページ と インストール手順 をインストールしてください。

両方ともwp-contentのパーミッションを変更したらエラー解消しました。

jtamura@118-27-10-228:~/wordpress/vhosts/kusanagi01$ docker exec -it --user 1000 kusanagi01_httpd sh
/ $ ls -la /home/kusanagi/kusanagi01/DocumentRoot/
total 220
drwxr-x---    5 kusanagi www           4096 Apr 30 16:48 .
drwxr-xr-x    6 kusanagi www           4096 Apr 30 16:48 ..
-rw-r--r--    1 kusanagi www            405 Apr 30 16:48 index.php
-rw-r--r--    1 kusanagi www          19915 Apr 30 16:48 license.txt
-rw-r--r--    1 kusanagi www           7345 Apr 30 16:48 readme.html
-rw-r--r--    1 kusanagi www           7165 Apr 30 16:48 wp-activate.php
drwxr-xr-x    9 kusanagi www           4096 Apr 30 16:48 wp-admin
-rw-r--r--    1 kusanagi www            351 Apr 30 16:48 wp-blog-header.php
-rw-r--r--    1 kusanagi www           2328 Apr 30 16:48 wp-comments-post.php
-rw-r--r--    1 kusanagi www           2913 Apr 30 16:48 wp-config-sample.php
drwxr-x---    8 kusanagi www           4096 Apr 30 16:48 wp-content
-rw-r--r--    1 kusanagi www           3939 Apr 30 16:48 wp-cron.php
drwxr-xr-x   25 kusanagi www          16384 Apr 30 16:48 wp-includes
-rw-r--r--    1 kusanagi www           2496 Apr 30 16:48 wp-links-opml.php
-rw-r--r--    1 kusanagi www           3313 Apr 30 16:48 wp-load.php
-rw-r--r--    1 kusanagi www          44994 Apr 30 16:48 wp-login.php
-rw-r--r--    1 kusanagi www           8509 Apr 30 16:48 wp-mail.php
-rw-r--r--    1 kusanagi www          21125 Apr 30 16:48 wp-settings.php
-rw-r--r--    1 kusanagi www          31328 Apr 30 16:48 wp-signup.php
-rw-r--r--    1 kusanagi www           4747 Apr 30 16:48 wp-trackback.php
-rw-r--r--    1 kusanagi www           3236 Apr 30 16:48 xmlrpc.php
/ $ chmod 775 /home/kusanagi/kusanagi01/DocumentRoot/wp-content
/ $ ls -la /home/kusanagi/kusanagi01/DocumentRoot/
total 220
drwxr-x---    5 kusanagi www           4096 Apr 30 16:48 .
drwxr-xr-x    6 kusanagi www           4096 Apr 30 16:48 ..
-rw-r--r--    1 kusanagi www            405 Apr 30 16:48 index.php
-rw-r--r--    1 kusanagi www          19915 Apr 30 16:48 license.txt
-rw-r--r--    1 kusanagi www           7345 Apr 30 16:48 readme.html
-rw-r--r--    1 kusanagi www           7165 Apr 30 16:48 wp-activate.php
drwxr-xr-x    9 kusanagi www           4096 Apr 30 16:48 wp-admin
-rw-r--r--    1 kusanagi www            351 Apr 30 16:48 wp-blog-header.php
-rw-r--r--    1 kusanagi www           2328 Apr 30 16:48 wp-comments-post.php
-rw-r--r--    1 kusanagi www           2913 Apr 30 16:48 wp-config-sample.php
drwxrwxr-x   10 kusanagi www           4096 May  5 22:42 wp-content
-rw-r--r--    1 kusanagi www           3939 Apr 30 16:48 wp-cron.php
drwxr-xr-x   25 kusanagi www          16384 Apr 30 16:48 wp-includes
-rw-r--r--    1 kusanagi www           2496 Apr 30 16:48 wp-links-opml.php
-rw-r--r--    1 kusanagi www           3313 Apr 30 16:48 wp-load.php
-rw-r--r--    1 kusanagi www          44994 Apr 30 16:48 wp-login.php
-rw-r--r--    1 kusanagi www           8509 Apr 30 16:48 wp-mail.php
-rw-r--r--    1 kusanagi www          21125 Apr 30 16:48 wp-settings.php
-rw-r--r--    1 kusanagi www          31328 Apr 30 16:48 wp-signup.php
-rw-r--r--    1 kusanagi www           4747 Apr 30 16:48 wp-trackback.php
-rw-r--r--    1 kusanagi www           3236 Apr 30 16:48 xmlrpc.php

Broken Link Checker

問題なく有効化できました

パーマネントリンク設定

  • nginxコンテナのconfファイルを配置します。
~/wordpress/kusanagi01$ docker exec -it kusanagi01_httpd sh
/ $ find ./ -name "*.conf"
find: ./root: Permission denied
find: ./proc/tty/driver: Permission denied
./etc/sysctl.conf
./etc/sysctl.d/00-alpine.conf
./etc/udhcpd.conf
./etc/modprobe.d/blacklist.conf
./etc/modprobe.d/kms.conf
./etc/modprobe.d/i386.conf
./etc/modprobe.d/aliases.conf
./etc/nginx/nginx.conf
./etc/nginx/naxsi.d/naxsi_core.rules.conf
./etc/nginx/naxsi.d/general/user.conf
./etc/nginx/naxsi.d/general/default.conf
./etc/nginx/naxsi.d/wordpress/user.conf
./etc/nginx/naxsi.d/wordpress/default.conf
./etc/nginx/naxsi.d/common/user.conf
./etc/nginx/naxsi.d/common/default.conf
./etc/nginx/conf.d/default.conf
./etc/nginx/conf.d/security.conf
./etc/nginx/conf.d/kusanagi_naxsi_core.conf
./etc/nginx/fastcgi.conf
./etc/resolv.conf
/ $ 
  • ./etc/nginx/nginx.confの最終行に下記のように記載されている。その場所に*.confファイルを置けば反映されます。
    include /etc/nginx/conf.d/*.conf;

今回はWorkPressの設定について説明しました。
次回はhttps化(SSL設定)について説明します。