レンタルサーバーでマルチサイトとかSSLの設定とか
きょう解放された。かなり長い期間Webと格闘していた。
実は、この秋に新しいサイトを開設する予定があり、それに向けての下準備をしていた。後で述べるようにけっこう複雑なことをしようとしたこともあって、全く上手くいかず、次から次にトラブルにはまって何日も無為の日々を過ごすことになってしまった。
ぼくはけっこう昔からネットオウルという業者のスターサーバーという有料サービスを利用している。それなら自分のホームページとかこのブログとか、全部そっちに移せばいいかなとも思うが、ニフティ歴も長く、いろいろな流れで今の状況となっているので、なかなか変更しづらい。
それはともかく、誰も知らないはずだが、ぼくは現在ネットオウルで複数のドメインを持ち、実験用を含めていくつかのサイトを開設している。今回はそこにドメインをひとつ、サイトを3つ増やそうという計画だ。そのうちの2つを秋に開始、ひとつはある程度長期的な目処で今すぐ運用は開始できないだろう。
ここからは備忘を兼ねて顛末を記す。
スターサーバーで新規のドメインを増やす方法は、公式のマニュアルにもあるし特に難しいことはない。ネットオウル独自ドメインというのを使えば(ちょっと怪しげなURLにはなるが)無料で増やせる。このサービスを使うとその後の様々な処理も簡単だ。ただしネットオウルではコースにもよるが追加ドメインの数は基本的に5つまでという制約がある。
もちろん同一ドメインの下にサイトはいくつも作れるので、それ自体はそんなに問題では無いのだが、いま個人や小規模サイト作成の主流であるWordPressを使おうとすると、同じドメインの下で複数の別サイトを立てるには技術的、容量的に少し難易度が上がる。
スターサーバーでWordPressのマルチサイトを構築
今回はWordPressで、ひとつのドメインの下に別のサイトを3つ作るので、マルチサイトという手法を使うことにした。この記事は初心者向けのガイドでは無いので具体的な方法はネット検索してもらいたいが、ある程度WordPressとFTPとテキストエディタが使えるなら別に難しい話では無い。ただし何事にも気を抜けないので、それなりに緊張は続く。あれ? テキストエディタに使い方なんてあるの、と思ったあなた、まあ、ようするにエンコードとか改行とかの知識ってことですよ、つまり。
そう言いながら、無念にもここでまず最初に軽く引っかかった。(というか、すっかり忘れていた。)
WordPressの「設定→サイトネットワークの設置」の画面で、「.htaccess ファイルへ追加して」という指示には要注意だ。実際には単純な追加では無く、基本的に
<IfModule mod_rewrite.c>
から
</IfModule>
の間の記述をそっくり置き換えると言う意味だ。お間違えの無いように。
Google様の支配するネット世
今回の問題以前に、今年は自分のサイトを全体的に統合しようとしていて、自分のメインサイトに若干手を入れた。普段まずエゴサーチとかはしないので、自分のサイトがWebの世界でどんな風に見えるのかなどということは気にしたことが無い。それに普段はFirefox使いなのでChromeがどんな動きをするのかもあまり良く知らなかった。と、試しに自分のサイトをネット検索すると…全然引っかからない。昔は自分の名前を検索しただけで大量のサイトがヒットしていたのだが。この十数年でネットの世界はまるで変わってしまった。どうやら検索エンジンがほぼGoogle1本に絞られたらしい。Google様の検索に引っかけてもらうには申請が必要なのだ。自分自身のサイトも含めて、古いサイトはそんなことをしていないだろうから、古い記事は今は検索しても全然引っかからなくなっているのかもしれない。面倒というか、なんかいろいろ文化的な損失があるんじゃ無いかとも思ってしまう。
ともあれ、申請が必要ならばしますよ、ということで登録したら、今度はGoogle様から「お前のサイトにはこんなに問題がある」と文句、いやご指摘が何度も来るようになった。よくよく調べてみると、こちらが意図的にやっているデザインや構成がお気に召さないようだ。まあ検索に引っかかるなら放置しておいても別に良いだろう。
だが極めつけは、Chromeでいちいち危険なサイト扱いされてアクセスが止められてしまう事象が起きることだ。ようするにChromeは「https」になっていないSSLに非対応の「http」は、ともかくはじく仕組みになったらしい。Firefoxも「安全で無い接続」という表示になるが、たぶんそんなにむやみにはじいたりはしない。
とは言え、もう世の中の潮目は完全に変わった。たしかに詐欺などネット犯罪がこれだけ増えているのだから、それもしかたあるまい。ただこちらは特に来訪者に何のデータの提供も求めていないのだから「危険」とか「安全で無い」と言われるのもちょっと納得しがたいところがあるにはあるが。
そこで今回の件を機会に自分のサイトをSSLに対応させることにした。とは言え、メインのLaCoocanは頑なにSSL化しないのが困りものだ。富士通もノジマも好きな会社だったのだが、彼等はもうぼくらの方を向いていないのかもしれない。でもでも、ココログは対応しているので、今回ここはSSLを導入したよ。
スターサーバーでSSLを設定
さて、問題はネットオウルのスターサーバーである。これも基本的にはマニュアル通りにやれば一応SSLに対応できる。ただし、それはモデルケースの場合だけだ。
モデルケースとは何かというと、ひとつのドメインに、ひとつのWordPressがインストールされ、ひとつのサイトが置かれている状態のことだ。この場合は前記の要注意点を間違えなければ、たぶんマニュアル通りで行ける。
.htaccessを自分で設置すると
ただ、ここはケースによっては苦戦することになる。ぼくの場合は、まず、WordPressをインストールしていないドメインの場合だった。正直、長年シコシコとテキストエディタに手打ちでHTMLを書いてきた身としては、ちょっとしたサイトなら別にWordPressを使いたいとは思わない。それでドメインによっては単純なHTMLだけのページを作っている場合もある。
スターサーバーの場合、自動インストール機能を使ってドメイン直下にWordPressをインストールすれば、そこに.htaccessが作られるので、それをマニュアル通りの記述にすれば良いだけなのだが、WordPressなどをインストールしていないとそもそも.htaccessが無い。SSL化のためには自分で設置する必要が出てくる。.htaccessというのは中身はただのテキストファイルで、これをFTPソフト等で対応させたいディレクトリにアップロードするだけだから作業自体は簡単だ。
ところがその中身を、
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
という例のサイト転送命令の記述だけ書いても上手くいかないのだ。
サーバー管理画面からSSL設定を完了させていても、「.htaccessの記述が間違ってる」みたいな文章が出てサーバーエラーになってしまう。この場合SSL化自体は成功している。自分で書いた.htaccessを削除してしまえば、Webブラウザから「https」のURLでアクセスすれば普通に表示可能だ。もちろん「http」で接続しても、これまで通り「安全でない接続」として表示される。
これはだいぶ悩んで、一度は、自前の.htaccessを消して、「index2.htm」を作り、そこに本来の「index.htm」の内容を書き込み、元の「index.htm」の方はmeta記述で1秒インターバルで「https…index2.htm」にリダイレクトする設定にする、という荒技も考えた。これならさほど不自然で無く「https」に誘導することが可能だ。ただこれをやるとおそらくGoogle様が怒るだろうし、いろいろ想定外の不具合が起きそうだ。
そのとき、たまたま他のサイトをいじっていて偶然思いつき、自作の.htaccessの記述の下にPHPのバージョンを次のように書き込んだところ、不思議なことに問題が解決した。
#####phpversion#####
#AddHandler x-httpd-php7.4 .php .phps
#####end:phpversion#####
理由は不明。これは本来は頭に「#」が無ければHTMLから直接PHPを操作することを許可する記述のようにも見えるが、これだとただのコメントアウトではないのだろうか。よくわからないが、まあ結果オーライだ。
マルチサイトのSSL化につまづく
トラブルはまだ続く。
SSL化させた場合、最後にWordPressの「設定→一般設定」で、「WordPressアドレス」と「サイトアドレス」を「http」から「https」に書き換える必要がある。これはマルチサイトの場合だと、サイトネットワーク管理の「サイト→すべてのサイト」で書き換えることになるわけだが、「メイン」サイトだけは書き換えられない。
ぼくの場合実質的には問題ないと思って放置したのだが、超有名なWordPressテーマである「Lightning」のヘッダー画像のスライダーが使えなくなったことに気づいた。他のテーマでは何の問題もないのだが。また悩む。これは画像のURLが「http」であるため「Lightning」が読み込めないのが原因だが、普通の説明ではSSL化した上で「https」へ画像をアップロードし直せば良いとしか書いていない。WordPresでURLが書き換えられていないので、それが出来ないのだ。
ここでいったん詰まったのだが、もう少し調べてみると、マルチサイトの場合、メインサイトのURLを変更するためには直接データベースを編集しなければならないという話にたどり着いた。ここでは詳細は説明しないが、ぼくの場合はWordPressのプラグインを使ってphpMyAdminを直接編集することで解決した。必要な人は上記のキーワードで検索して調べて欲しい。
やっと一段落
と、まあ、やってみれば、さほど技術的に難しいことは無かったが、本当に時間と精神を食いつぶされる数日間だった。この間、他の仕事は全部中断である。あーっ! 集中学習合宿に行っていたと思えば、それはそれで身にはなった、と思うことにする。
仕事は溜まりに溜まってしまった。
最近のコメント