WordPress サイトルートで wp のディレクトリにリダイレクトされる

サイトルートからみて wp というフォルダにワードプレスを設置。
で、サイトルートのアドレスで表示する場合。
今までできていたのに、最近作成したサイトで普通にこれができない!
数週間、解決できずにいたけど細かく見ていくことで解決。

・アクセス解析では、いったんhome にアクセスしてからリダイレクトされている。
→トップページの設定に「固定ページ」が指定されているとリダイレクトされるね。
→パーマリンクが「基本」以外だとリダイレクトされるね。( cache の利用が想定されるので数字ベースで設定が多い)
・テーマ内の「index.php」をカスタマイズしていると、リダイレクトが起こらない。

ということで、いろいろいじったり試したりしたけど、固定ページをトップページに表示する設定をやめ、テーマ内の「index.php」で直接トップページになる記事を読み込むように変更。それから、ブラウザのキャッシュがあるとリダイレクトされるので、履歴を消去。(これが良くわからない。最近のブラウザではこれが起こる。説明ページにもわざわざリダイレクトの方法が記述されている。)

これで、サイトルートのアドレスで、ワードプレスのコンテンツを表示できる。

複数のアドレスで同じコンテンツが表示されるのは、SEO的に良くないといわれるけれど、作業的には、経験上これが一番安定していると思う。複数のワードプレス設置も可能だし、トップページの切り替えもストレート。

以前は承知していたと思うけど、遠回りしてしまった。

解決策まとめ(2022年1月 追記)

ワードプレスの階層が違うアドレスとサイトルートで、同じ表示をさせるには、

  • 固定ページをサイトルートに表示する設定ではない(最新の投稿)
  • サイトルートの「index.php」はワードプレスのディレクトリを示す
  • サイトルートの「.htaccess」はワードプレスのディレクトリを示した内容

 

サイトルートに行けない!

1階層下にあるワードプレス。
コンテンツは表示できるけど、サイトルートへ行こうとすると、ワードプレスのディレクトリへリダイレクトされてしまう。

5月の中旬くらいから。

  1. デイレクトリ名を変えたケース
    既存のAというディレクトリ、Bを追加して、サイトルートから見るディレクトリをBに変更した。
    ある環境から、検索で、Aがヒット、そこから、サイトルートを表示しようとしても、Bを表示せずにAを表示してしまう。
    ほかの環境では、ちゃんとBが表示される。
  2. 新規サイトでのケース
    テストページ、ディレクトリCで構築。サイトルートでの表示にOKが出たので、サイトルートからCを表示する設定にする。ここで、サイトルートのアドレスでブラウザに表示させようとするも、ディレクトリCにリダイレクトされてしまう。

1)のケースでは、Aを削除することで、Bが表示されるようになった。
ただし、サイトルートが表示されているかは不明。

2)のケースでは、Cをあきらめて、サイトルートにワードプレスを移築。
ここで、ブラウザによって、リダイレクトの動作に違いが出てくる。
ブラウザとネットワークの設定を確認。
キャッシュ削除とプロキシ自動検出をOFFで期待通りに表示できるようになった。
Firefox とIE はプロキシの自動検出がONだった。

既存のサイトでは、ディレクトリの構造が同じでも、リダイレクトされることはない。

同じサーバでもバーチャルサイトの設定の違いがある?(1.確認できず、2.不明)
サーバの通信環境の設定?(1.キャッシュなし、2.不明)
ブラウザの設定?

ブラウザの設定変更なんて、閲覧者に周知できない!

もしくは、最新ブラウザのバグ?

解決策(2021年1月追記)

・ワードプレスの階層がサイトルートでない状態、
このとき、
ワードプレスの「表示設定」で固定ページを選んでしまうと、サイトルートに行けない。
ワードプレスで階層の違うアドレスとサイトルートで、同じ表示をさせるには、

  • 固定ページをサイトルートに表示する設定ではない(最新の投稿)
  • サイトルートの「index.php」はワードプレスのディレクトリを示す
  • サイトルートの「.htaccess」はワードプレスのディレクトリを示した内容

webmail  Roundcube を再インストール

先回のOSアップデートで、使えなくなった。

うれしいことに、デザイナーさんたち向けに、簡単インストールのパッケージを作ってくれている。とっても感謝。

Roundcube for macOS Server

手順

  • インストーラーからインストール
  • デフォルトのサイト+「/mail」、「/webmail」でアクセスできる。
  • デフォルトのサイトの Apache のサイト .conf に設定の読み込みができているので設置したいサイトに設定
    webサーバを再起動が必要(注:再起動前に、server.appにてweb設定を変更する手順はNG)
    サイト.conf は、アップデートでわかりやすくなっている。以前は Proxy など散在。

webサイトの設定に、設定項目が追加されていた!

  • 利用者用にタイトルなど、Roundcube の設定ファイルで変更。
  • ほか何も変更することなく、ssl下でも動いた。

php のセキュリティ、Postfix 、Open Directory の認証方法、証明書の種類などいろいろの制約で設置が難しくなってきているので、オリジナルの Roundcube を、試行錯誤でインストール試みるもうまくいかなった。このインストーラーには非常に助けられた。

WordPress 攻撃対策

https://wpdocs.osdn.jp/ブルートフォース攻撃

のページに、リファラーのないPOST を拒否するという手法。
攻撃ロボットがポストするときには、ログインページを開くことなく、POST を繰り返すから、リファラーが違っていれば拒否するという発想。しかも、
RewriteRule (.*) http://%{REMOTE_ADDR}/$1 [R=301,L]
というのは、カウンターアタックになっている。別のサイトにフォームだけおいて、POST してみたら、自分のサーバのエラーページが表示された。

試してみたけど、攻撃は、この条件をクリアしているようで POST に成功しているようだ。ログインページはセキュリティプラグインで変えているのになぜ POST できているのか?

サーバのログを見ると、/xmlrpc.php からポストしている。
xmlrpc も条件に加えて、RewriteRule をサイトのエラーページにする。

これで様子見。

PostgreSQL 再チャレンジ

EC CUBE を使うにあたって MySQL から PostgreSQL 利用で、なんだかんだで、2か月もかかってしまった。もちろん誰もいない野原を進んでいるわけではない。
そもそも2009年ごろから同じようなことをやっている。ちょっとは進歩したのかな?

  1. brew doctor
    El Capitan では、これがそもそもひっかかる。
    パーミッションなどエラーをつぶしていく。
  2. brew search postgres
    homebrew/versions/postgresql93
    server.app を使いながらなのでバージョンを合わせる。
  3. postgresql のセットアップ
    initdb /usr/local/var/postgres -E utf8 –no-locale
    最初のデータベースを作る。大切な情報が出る。
    設定ファイルもできる。
  4. postgresql カスタマイズ
    ポートを空いている番号に設定。
    デフォルトだと、もともと El Capitan で使っているものと混乱する。
  5. 起動スクリプト
    ln -sfv /usr/local/opt/postgresql93/*.plist ~/Library/LaunchAgents
    生成されているスクリプトだと、システムログがメタメタ。
    mysql の起動スクリプトに習って調整。
  6. phpPgadmin 接続
    /phpPgAdmin-5.1/confconfig.inc.php
    ポートやユーザ制限を調整。
  7. phpPgadmin ロール設定
    ロール設定して、データベース作成の順番

ひとつ進めるたびに問題が出る。El Capitan , postgersql の情報の少なさで、こんな風にに設定できるはず!の思考と、参考サイトのおかげでセットアップできることができました!!!
php.ini やhttp.conf の設置は変更せず。
サーバの再起動もなし。

homebrew メンテナンス。mcrypt、ACP をインストール。

mcrypt をインストール1

brew install homebrew/php/php55-mcrypt

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

→APP から Xcode を起動して agree

undefined method `desc’ for Php55Mcrypt:Class

→brew update で大量のエラー

homebrew メンテ

→ brew doctor
Warning: The /usr/local is not writable.
sudo chown $(whoami):admin /usr/local

→sudo brew update
Warning: /usr/bin occurs before /usr/local/bin

→echo ‘export PATH=”/usr/local/bin:$PATH”‘ >> ~/.xxx
source ~/.xxx

mcrypt, ACP をインストール2

sudo を付けずにインストールしてしまったのでいろいろ不具合がありそう。
Error: You must `brew link libpng freetype unixodbc php55 mhash mcrypt` before homebrew/php/php55-mcrypt can be installed

→sudo brew link libpng freetype unixodbc php55 mhash mcrypt
→sudo brew reinstall homebrew/php/php55-mcrypt

* /usr/local/etc/php/5.5/conf.d/ext-mcrypt.ini was created,
* /usr/local/etc/php/5.5/conf.d/ext-apcu.ini was created,

で、ソケットを見ると、
[mcrypt]
extension=”/usr/local/opt/php55-mcrypt/mcrypt.so”

[apcu]
extension=”/usr/local/opt/php55-apcu/apcu.so”
apc.enabled=1
apc.shm_size=64M
apc.ttl=7200
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1

これを php.ini に記述。APC動かず。

Skype 仮想PCだと条件が悪い?

https://itunes.apple.com/us/app/logitech-camera-settings/id638332853?mt=12

Mac にマウントするためのアプリ。

マイクを買おうか迷っていたけれど、LOGICOOL  C270 が Mac で使えるらしい記事を発見。ドライバーがあると思い検索するとAPPがヒット。
昨年末に、無駄な買い物が多かったので、今回は粘り勝ち。

システムログがいっぱい

その一、

/System/Library/Caches/com.apple.coresymbolicationd/data does not exist, resetting cache

あるはずの「Caches」がない。
ディレクトリを作ったりするのがとても面倒そうなので、
ダウンロードしたインストーラーで、OS を上書きインストールして解決。

その二、

ReportCrash[2165]: Removing excessive log: file:///Library/Logs/DiagnosticReports/postgres_real_2016-01-03-203743_mtgp.crash

レポートのファイルを見ると、server.app で問題を起こしているらしい。
server.app プロファイルマネージャ 修復して解決
https://support.apple.com/ja-jp/HT202523

その三、

mds[75]: (DiskStore.Warning:127) Failed messaging flag writer
情報が少なく、見当がつかない。再起動で記録されなくなった。

とり急ぎ MySQL 5.7 にアップグレード

10工程くらいになるけれども、MySQL を 5.6から5.7にした。

手順概要

  1. 直前に、既存データをphpMyadmin からエキスポート
  2. インストールする前に、使用中のMySQLをストップ
    sudo launchctl unload /Library/LaunchDaemons/com.mysql.mysql.plist
  3. 停止の確認、アクティブモニタで確認
  4. インストール
    [Note] A temporary password is generated for root@localhost:******
  5. インストールの確認
    /usr/local/mysql -> mysql-5.7.10-osx10.9-x86_64
  6. 既存の起動スクリプトを削除
    sudo rm /Library/LaunchDaemons/com.mysql.mysql.plist
  7. MySQL 起動
    システム環境設定から
  8. root のパスワードを変更。
    /usr/local/mysql/bin/mysql -u root -p (自動でふられたパスワード)
    SET PASSWORD FOR root@localhost=PASSWORD(‘/-/-/-/-‘);
  9. phpmyadmin からデータのインポート
    今回は、php.ini の設定でアップロードできる容量を増やせたが、次回はきっと無理だから、sequel Pro でデータベースごとエキスポート、インポート。
  10. ユーザのインポート
    事前にphpmyadminのユーザからエキスポートで書き出されたコマンドを、mysql に流す。改行があってもすべて流し込める。
  11. 運用サイトをチェック

パスワードの有効期限があるそうで、これは、どこかで設定が必要。あるいは、推奨通りに、期限日までにパスワード変更などのメンテナンスを行うか?
phpmyadmin に簡単なGUIが出てくるか?

以前のハードの不調の原因

サーバ機材の入れ替え終了

入れ替え前に、不具合を連発。

  • タイムマシンに使っていた外付けHDDが原因か。HDD外す。タイムマシン停止。
    CPUの使用率は半分以下に抑えられた。
    作業量が増えると起こる、作業量以上の急激なCPU消費も見られなくなった。

古いハードディスクを一掃。
まだ使えているからと、何年もバックアップに使ったり、データ保存用にとっておいた機材を、消耗品として、思い切って段ボール箱へ!

10.6 から EL Capitan に。

MC408J/A

このマシン、メモリを8ギガにできると思って、メモリを買ってしまったけど、適切なタイミングで、EFIファームウェアをアップデートできていないと、8ギガにできない。

https://support.apple.com/ja-jp/HT201518

DVD からインストール時にすでにファームウェアは、1.3になっていて、インストーラに、「必要ない」と怒られる。

で、10.6.3 をアップデートして。。。アレ、、、、サーバのインストールディスクからなら、10.6で行けるのかな? これはおいておき、

本題は、10.6 の時点で ARD でつなげていたものが、10.11 にした段階でつながらない。手元の ARD は 10.11でバージョン違いではない。

あれやこれや、やっているうちに、アップグレードした、10.11 の共有設定の許可するユーザを、消して、新たに追加したら、つながるようになった!!

こういうクセって進めてみないとわからないよね。

VMware Fusion + Windows 10

・ショートカットがちぐはぐ
・USB がうまくつながらない
・Thunderbird は、仕様外

おかげで、今まで、Windows のバックアップをしていなかったことに気付いて、早速ディスクを追加して、履歴を残すようにした。

USB複合機 webカメラがつながらない。

OS を EL Cpitan に。
VMware Fusion を 8 に。
Windows を 10 に。
いっきにあげたら、webカメラがつながらない。スカイプ用に用意した、カメラとマイクのついたもの。

ほかの Windows  では認識するので、カメラが壊れているのではない。
Mac で 認識できずに、仮想マシンに渡せないのか?

VMware Fusion の設定で、USB をつないだら、仮想マシンに接続する設定にしたら、カメラに接続できた。

追記
マックに接続するためのアプリで解決
https://awmt-dekirukana.mtgp.jp/archives/649

12月17日

・MySQL 接続成功。
・CoreTelephony Trace File Error もでなくなった。

tmp の権限がおかしなことになっていたようで、このディレクトリに chmod をかけることで、解決。
sudo chmod 1777 /private/tmp

参考サイト
http://kb.odin.com/jp/119334
http://askubuntu.com/questions/633857/why-i-cant-write-a-file-in-tmp-even-when-it-is-rootroot-and-has-t-flag
https://johnsonsu.com/mac-yosemite-mysql-unable-start-reason-255/

ただし、
El Capitan では、MySQL 5.7 が推奨バージョンのようなので、引き続き、MySQL のアップグレード方法を検討。

http://www.mysql.com/support/supportedplatforms/database.html

このハード、いつまでもつかな。

やっちゃった!

Workgroup Manager.app では設定できなくなっていた。

メールアカウントとして、
「ユーザ名」だけで今までは、メールの受信ができていたのに、「ユーザ名」+「ドメイン」をショートカットに追加しないと、メールの受信ができなくなっていた。

server.app のユーザ設定からできる。

ドメインを、いくつも使う場合は、当然といえば当然なんだけど。これで、info@~を複数のドメインで、個別に受信できるね。

EL Capitan

Marvericks では、ブラックアウト(?)してしまった症状が、EL Capitan では、OS は維持されるか、ログアウトする程度で、再起動の必要がなくなったようだ。
編集内容も維持できていたので助かった。

Mac mini late 2012 はオーバースペックで排熱が追い付かずに、ブラックアウト(?)することが多々あるという記事を見かけた。ファンは通常より多めに回して使っている。
今月、購入した Mac mini は、late 2014 の分類。ファンはもとから多めに回っている。

Yosemite は使わなかった、Lion も使わなかった。Mountain Lion はあまり長く使わなかったな。

12月12日

・SSL 証明書 更新
・MySQL 自動起動

コピーに失敗。

SSL証明書については、インストールに1回目失敗。なぜか、秘密鍵の合うものが、キーチェーンに入らなかった。
キーチェーンに同名の秘密鍵がたくさんできていたので、現在使用しているものを名前がわかるようにして、余計なものを削除。
削除するごとに、インストールを試みるも、すべてダメ。
申請用のCERを再度作成して、再チャレンジ。うまくいった。