カテゴリー
WordPress

WordPress を動かしているリバースプロキシとWebサーバの Nginx で、Let’s Encrypt と certbot で SSL/TLS の発行、導入をしました記録♪

はじめに

本ブログをやっと、SSL/TLS 化しました。

Let’s Encrypt を認証局として、これの公式ツールである certbot を使用して、リバースプロキシもWebサーバも構築している Nginx に SSL/TLS を導入しましたので、その記録を試行錯誤も含めて記録してまいります。

まとめ

  • nginx 設定ファイルの書き換えも certbot に委ねたい場合、nginx 設定ファイルに日本語を入れるとエラーとなるため事前に削除しておく。
  • 作業前に、ファイアーウォール設定を変更して https の 443 ポートは開けておくとよい。
  • WordPress データベースの URL を修正するには、wp-cli を使えるようにして wp search-replace 'beforeurl' 'afterurl' とするのが楽。
カテゴリー
Linux

【VirtualBox】【Mac】【CentOS7】LAMP (ただし Nginx) 環境を整える

環境

  • MacBook Pro (Retina, 13-inch, Late 2012)
  • OS X El Capitan 10.11.3(15D21)
  • VirtualBox バージョン 5.0.14 r105127

構築するもの

  • CentOS7 仮想マシン
  • 仮想マシン IP アドレス: 192.168.56.111
  • 仮想マシンへの SSH 接続環境
  • chrony (インターネット時刻同期) と Vim
  • ファイアウォールは SSH と HTTP のみ開放
  • Nginx ← 最新版
    • ドキュメントルートは /var/www/html/ とする。
    • PHP-FPM を導入する。
    • プロキシキャッシュ設定は行わない。
  • MariaDB ← 最新版
    WordPress 用に次の内容の DB を作る。

    • データベース: wpdb
    • ユーザー: wpuser
    • パスワード: wppass
  • PHP ← 最新版
    最低限と思われる次をインストールする。

    • php: PHP 本体
    • php-gd: 画像処理
    • php-mbstring: マルチバイト文字取り扱い
    • php-mysqlnd: MariaDB 接続
    • php-opcache: キャッシュ
  • WordPress
    • http://192.168.56.111
    • リビジョンは 3 に設定
    • WordPress ユーザー名: wploginuser
    • WordPress パスワード: wploginpass
カテゴリー
Linux

【Nginx】Basic 認証をかける方法手順メモ

追記。「ログインページを介さず Basic 認証」シリーズの投稿一覧です♪

  1. 【Nginx】Basic 認証をかける方法手順メモ | oki2a24
  2. cURL を使って Basic 認証が必要な PHP へ JSON データを POST する手順メモ | oki2a24
  3. AngularJS を使って PHP へ JSON データを POST する方法 | oki2a24
  4. AngularJS を使って Basic 認証が必要な PHP へ JSON データを POST できません>< | oki2a24
  5. AngularJS を使って Basic 認証が必要な PHP へ JSON データを POST するサンプルコード! | oki2a24

追記終わり!

nginx で Basic 認証をかけたいですの。まずは、静的な HTML ファイルと簡単な PHP ファイルを表示いたします。

その準備、手順を記していきますわ♪

Nginx で Basic 認証をかけるためのポイント

  • ユーザ名、パスワードを生成するのは nginx とは別のコマンド「htpasswd」を使用すると便利
  • 「htpasswd」は httpd がインストールされていれば使用可能。使えず、Apache をインストールする必要もなければ「httpd-tools」を yum でインストールすると良いとのこと。
  • Basic 認証をかけるには nginx 設定ファイルに「location パス」のディレクティブに auth_basic、auth_basic_user_file を指定すれば良い。

Nginx で Basic 認証をかける手順ポイント

  1. Basic 認証で使用するユーザ名、パスワードを記述したファイルを作成し、適切なディレクトリに置く。
  2. Nginx の設定ファイルに、Basic 認証をかけるパス、Basic 認証の有効化、認証情報ファイルの場所の情報を追記する。
  3. Nginx 設定をリロードし、Basic 認証がかかっていることを確認する。
カテゴリー
WordPress

【nginx】server_tokens をオフにしてバージョン情報を非表示にする手順♪

nginx のバージョン情報を非表示にした方がセキュリティ上堅牢になりますの♪ある日ふと確認してみましたら、バージョン情報が表示されてしまっております><。

今回は、確認方法と設定の変更方法をメモいたします。

確認方法

カテゴリー
コンピューター

APCu 付属のキャッシュ状況を把握できる管理ページを使う方法♪

php 5.5 へアップデートして APC から APCu と OPcache へ切り替えました♪ | oki2a24 で PHP のキャッシュをできるようにいたしました。

2つ設定した内の1つの APCu について、【PHP】APC 付属のステータス把握できる管理ツールを使う方法♪【CentOS 5.9】 | oki2a24 も参考にしつつ管理ページの表示、それをもとにしたチューニングをしたいですの。

今回、チューニングはできませんでしたけれども、管理ページは表示できましたのでそのやり方をメモいたします。

カテゴリー
コンピューター

【WordPress】robots.txt ファイルを作成!nginx に変えたら 404 not found となったため><

作成した robots.txt の中身。シンプル!最低限♪

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/

Sitemap: https://oki2a24.com/sitemap.xml.gz

robots.txt の置き場所

  • WordPress のルートディレクトリ
  • /var/www/html/oki2a24.com/robots.txt

robots.txt のファイルを作成した理由

カテゴリー
コンピューター

サブディレクトリに CakePHP をインストールしたい時の nginx 設定

環境、CakePHP のインストール条件

  • ドキュメントルートは /var/www/html/
  • ドキュメントルートには WordPress がインストールされている
  • WordPress 用にパーマリンク設定を施している
  • CakePHP を /var/www/html/cake/sample/ にインストールしたい

ポイント

  • CakePHP をインストールしたサブディレクトリにアクセスしたとき、CakePHP の webroot/ にアクセスするようにエイリアスを設定する。
  • パーマリンク設定を行う。
  • もし WordPress のパーマリンク設定が nginx 用に既にされているのなら、不要。(未検証)

具体的に次の設定を加えれば OK でした♪

カテゴリー
コンピューター

yum インストールした nginx の logrotate 設定を読み解きます♪

nginx の logrotate 設定ファイル「/etc/logrotate.d/nginx 」

/var/log/nginx/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
        endscript
}

/etc/logrotate.d/nginx の各行の意味

  • /var/log/nginx/*.log {
    「/var/log/nginx/」ディレクトリの、ファイル名が「.log」で終わるファイルを対象とする
  • daily
    日ごとにログファイルを置き換える。
  • missingok
    ログファイルがなければエラーメッセージを出力しない
  • rotate 52
    ログを 52 世代分残す
  • compress
    ログを圧縮する。
  • delaycompress
    ローテートの 1 世代目は圧縮しない
  • notifempty
    元のログファイルが空なら、ローテーションしない
  • create 640 nginx adm
    ローテーション実行後、空の新規ログファイルを属性を指定(パーミッション 640 ユーザ nginx、グループ adm)して作成する。
  • sharedscripts
    複数指定したログファイルに対し、postrotate または prerotate で記述したコマンドを実行
  • postrotate 〜 endscript
    ローテーション終了後に postrotate から endscript までの処理を実行する。
  • [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
    馴染みがなくてわからないが、おそらく nginx を再起動するような感じ?
カテゴリー
コンピューター

【nginx】WordPress の cron アクセスをログに残さないのは諦めて nginx 設定ファイルを整理!

wp-cron.php へのアクセスログを残さないようにできなかった。。。失敗のポイント!?

  • プロキシではなくウェブサーバの server コンテキストに wp-cron のログを残さないための location ディレクティブを書いた。
  • try_files は wp-cron の location ディレクティブと並ぶ同じ階層にあるが、これによって URL が書き換わり、wp-cron の location ディレクティブの条件に一致しなくなるのではないか?
  • try_files をウェブサーバ server コンテキストからプロキシサーバの server コンテキストに移してみた。。。パーマリンクのリライトが上手く働かず、エラーとなった。

以上の失敗を経て、wp-cron 部分に関する nginx 設定を削除いたします。ついでですので、別の箇所も少し見なおして修正いたしました♪

/etc/nginx/conf.d/default.conf の整理した内容♪

カテゴリー
コンピューター

【nginx】WordPress の wp-cron.php が動きませんの!!!→直しましたわ♪【ただし不完全】

wp-cron.php を動かすことには成功しましたが、ログへの記録を残らないようにする点について、失敗しています><。

wp-cron.php を再び動かすポイント

  • 【nginx】【WordPress】wp-cron.php アクセス時はログに残さないようにしました♪ | oki2a24 の投稿で、wp-cron.php アクセス時のログを記録しないように変更した、つもりだった
  • 実際には、ログに記録しない後、なにも記述しない = ないも動作しない、という意味であった
  • location ディレクティブ内に入ると、内部の設定を処理した後は処理が終了する。ディレクティブ外の処理を続けて実行しない
  • プロキシサーバ側に wp-cron.php のログを残さない設定を書いていたが、ウェブサーバ側に wp-cron.php の設定を移動した

/etc/nginx/conf.d/default.conf 修正ポイント!