Apacheで特定のファイルを除外してリダイレクトさせた話
はてなブログに引っ越して独自ドメイン周りでゴニョゴニョ設定を触っていたら気づいたんですが、AdSenseの 「ads.txt」をドメインルートに設置ができないんですね。ads.txtの設置は必須ではないですがAdSenseの管理画面に 要注意 が出続けるのはちょっと気になりますよね。
はてなブログの方で対応予定はないとのことなので、ドメインルートをVPSに紐づけてはてなブログにリダイレクト、ads.txtを例外としてアクセスできるように設定しましたというお話しです。
ドメインルートのバーチャルホスト設定
対象ドメインのDNSサーバでドメインルート(www.なし)はVPSのIPアドレスに紐付けします。 はてなブログにドメインルートで独自ドメインを設定するとサブドメインの設定ができなくなる(または煩雑になる)ので、はてなブログの独自ドメインはwww.ありのサブドメインとして設定します。
次にVPS(Apache)でバーチャルホストの設定をします。対象ドメインの.confファイルの編集です。 80番と443番ポートのRewrite機能でアクセスのあったURLを書き換えます。 ads.txtはhttpとhttpsからアクセスできないとダメらしいので、それぞれads.txtを例外とします。
Rewrite機能を有効にする
ドメインルートにアクセスがあった場合のURL書き換え機能をONにします。
RewriteEngine on
RewriteCondで例外とするパターンを指定
RewriteCondは指定したパターンと一致していれば次の設定(RewriteRule)を実行します。論理否定の「!」で対象のファイル名を指定します。これによりアクセス先がads.txtでなければ次のRewriteRuleを実行することになります。
RewriteCond %{REQUEST_FILENAME} !^/ads.txt$
RewriteRuleでURLを書き換え実行
RewriteRuleでドメインルートのURLを書き換えます。
RewriteRule ^/(.*)$ https://www.SERVER_DOMAIN_NAME/$1 [R=301,L]
.confファイルのサンプル
Rewrite、RewriteCond、RewriteRuleを設定したバーチャルホストの.confファイルは以下のようになりました。Apacheをリスタートしてads.txtへのアクセスを確認しましょう。
<VirtualHost *:80> ServerName DOMAIN_NAME DocumentRoot "/YOUR_PATH" RewriteEngine on RewriteCond %{REQUEST_FILENAME} !^/ads.txt$ RewriteRule ^/(.*)$ https://www.SERVER_DOMAIN_NAME/$1 [R=301,L] </VirtualHost> <VirtualHost *:443> ServerName DOMAIN_NAME DocumentRoot "/YOUR_PATH" RewriteEngine on RewriteCond %{REQUEST_FILENAME} !^/ads.txt$ RewriteRule ^/(.*)$ https://www.SERVER_DOMAIN_NAME/$1 [R=301,L] SSLEngine on SSLCertificateFile /YOUR_PATH/YOUR_FILE SSLCertificateKeyFile /YOUR_PATH/YOUR_FILE SSLCertificateChainFile /YOUR_PATH/YOUR_FILE </VirtualHost>
最後に
これでドメインルートへのアクセスはwww.を付けてはてなブログへ転送、ads.txtはhttpとhttpsともにVPSに設置したものにアクセスが可能になりました。 もっとシンプルな方法がありましたらコメントで教えていただけるとありがたいです。
デカフェとジョギングとプロテインダイエット
はじめに
生活にデカフェとジョギングを取り入れて2ヶ月が経ちました。その経過をメモしていこうと思います。
前回の記事:
月間走行距離200km達成!
6月は4月までの月間走行距離の4倍、月間走行距離200kmを目標にジョギングを続けてきました。 前回も書きましたがフルマラソンを3〜3.5時間で走破するための走り込みの目安が月間走行距離ですね。 月間走行距離150kmからは体力的にキツかったんですがなんとか目標達成です。
達成率101%です!6月後半はフラフラでした、、、笑 蒸し暑さもあって6月後半のジョギングはキツい日もあったので、7月はペースを落として月間走行距離100〜120km程度の程よい目標にしたいと思います。
デカフェとジョギングを取り入れた結果
デカフェの影響ははっきり実感しています。頭痛も改善方向ですし、夜の寝付きも良くなりました。6月後半の目標達成に向けての追い込みジョギングはキツい日もありましたが気合いで乗り越えました!笑 体重は先月から2kg落ちたので、2ヶ月で9kg減ですね。ダイエット停滞期なのか先月ほどの落ち込みはありませんが、ダイエットとしては上出来だと思っています。
ジョギング?ダイエット?で肩こりが軽くなった?
ジョギングの距離を増やしたせいか、結果体重が落ちたせいかわかりませんが、悩みの1つだった「肩こり」が軽くなりました。腕を回しただけで激しく「ゴリゴリ」と音が鳴っていた音も「(コリッ…コリッ)」程度に軽くなっています。 整骨院に通っても「肩が軽くなった」と感じるのは一時的でしたが、これがパッシブ効果になったのはうれしい相乗効果でした。
程よいジョギングとプロテインダイエットで夏を乗り切る
外でワークアウトを続けると熱中症の恐れもあるので程よい走行目標とプロテインダイエットで夏を乗り切ろうと思っています。 プロテインダイエットは食事の一部をプロテインに置き換えるダイエット法で、プロテインからタンパク質、ビタミン、ミネラルなどの栄養素を補給しつつ、置き換えた食事分の摂取カロリーを低くおさえることができるダイエット法だそうです。 私は6月末から朝食をロテインに置き換えています。食の満足感や味の不満などのストレスを感じないようなプロテイン選びとレシピも楽しんでいきたいですね。 で、私がいま飲んでいるのは「ザバス ウェイトダウン チョコレート風味」です。下のレシピで不満なく、美味しく置き換えダイエットしています。
- プロテイン:付属のスプーン3杯(ザバス ウェイトダウン チョコレート風味)
- 豆乳:200mℓ
- インスタントコーヒー:少々
- 水:お好みの濃さに調整
まずは「1食置き換え」で様子見して効率的に「タンパク質、ビタミン、ミネラルなどの栄養素を補給」をしていきたいと思います。
最後に
まだまだ梅雨が続きますが、気温はしっかり夏に向けて上がってきていますね。もう少し体重落としたいので、デカフェとジョギング、プロテインダイエットを続けたいと思っています。 屋外ワークアウトで熱中症にならないようにしっかり水分補給しつつ、楽しんで体を作っていきたいと思います。アドバイスなどがありましたらコメントで教えていただければ幸いです。
はてなブログのデザインCSSをスマホに対応させた話
はじめに
このブログではレスポンシブ対応のテーマ「Minimalism」を使用しています。 ヘッダ周りのデザインを調整しようと思って管理画面の「デザインCSS」を編集してもPCの表示しか対応してないんですね。スマートフォン表示ではデフォルトのCSSしか読み込まれないようですね。 一手間かけてスマートフォン表示にデザインCSSを反映させたのでメモしておきます。
レスポンシブデザインを有効にする
まずはスマートフォンにデザインCSSを反映させる準備です。 管理画面にログインしてサイドバーの「デザイン」をクリックして進みます。
次にサイドバー上部の「スマートフォン」アイコンをクリックして詳細設定の「レスポンシブデザイン」にチェックを入れます。これで「デザインCSS」をスマートフォンに反映させる準備は完了です。
スマートフォン用のCSSを保存する
サイドバー上部の「カスタマイズ」アイコンをクリックして「デザインCSS」をクリックします。表示されたCSS記述枠内をクリックしてCSSを記述していきます。
スマートフォン表示用のCSSなのでscreenタイプのメディアクエリー構文で記述します。私の場合はスマートフォン表示用にヘッダのタイトルと記事サムネイルの画像周りを調整しました。 記述したCSSより優先されてしまうプロパティもあるので必要に応じてスタイル適用の優先順位を上げる「!important」を使っています。
書き込んだコードはこちらです。
@media screen and (max-width: 640px){ .page-archive .entry-thumb { border: none; background-size: cover; background-position: 50%; } #blog-title-inner{ height: 120px!important; background-size: 160%; background-position: 50%!important; } }
CSSを書き込んだらサイドバー上部の「変更を保存する」をクリックして変更を保存します。
スマートフォン用表示を確認する
ここまでの手順でスマートフォン表示用のCSS調整は完了です。スマートフォン表示用のCSS反映前と後で表示が変わったことが確認できました。
最後に
ちょっと回りくどい方法かもしれませんがスマートフォン表示用のCSS調整ができました。もっと簡単な方法があったらコメントで教えていただければ幸いです。
デカフェとジョギングしたら1ヶ月で体重が7Kg落ちた話
ここ数年、週末に頭痛がしたり、なんとなく体が重い、寝つきが悪いといった原因不明の体調不良が続いたのでネットで調べたら心当たりがある原因を見つけました。 カフェインには「血管を収縮させて血流を悪くする作用」があるそうです。そしてカフェインが体内から抜けると収縮した血管が元に戻って、締め付けから解放された血流が本来の量に戻るときに頭痛が起こるそうです。 月〜金曜は1日でマグカップ 4〜5杯のコーヒーを飲んでいるのですが、、、はい、カフェイン依存症ですね。
参考:厚生労働省 :食品に含まれるカフェインの過剰摂取についてQ&A ~カフェインの過剰摂取に注意しましょう~
そして体が重いのは単純に運動不足と食生活が原因と決めつけてデカフェとジョギングを生活に取り入れました。
普段のコーヒーをカフェインレスに
会社や同僚に協力してもらって普段のコーヒーをカフェインレスのコーヒーに変更しました。「コーヒー断ち」は長く続かないと思ったので、普段のコーヒーからカフェインを抜くことにしました。
選んだのは「小川珈琲店 カフェインレスブレンド 」。カフェインレスのコーヒーは味気なさそうな気がしていましたが、、、いやいや!しっかりコーヒーでした!選んだ商品が良かっただけかもしれませんが、コーヒーらしい香りと味わいは大満足でした。 商品説明には「水を用いてコーヒーの生豆からカフェインを97%カットした調和のとれたやさしい味わいのコーヒーです。」と書いてあったので、カフェインが全く含まれてい「ノンカフェイン」ではありません。カフェイン依存症から抜け出すのが目的なのでこれで良しとしました。
生活にジョギングを取り入れる
次に「なんとなく体が重い」を解消するために生活にジョギングを取り入れました。 今までは週末ランナーで月間走行距離が50km程度でしたが目標を高めに設定します。月間走行距離200km、、、4倍です! フルマラソンを3〜3.5時間で走破するための走り込みの目安が月間走行距離200km程度らしいです。せっかく走るならフルマラソンに挑戦するくらいのモチベーションがあったほうがサボらないと思っての設定でした。
と、高い目標を立てましたが5月の月間走行距離は165kmでした、、、
達成率82.5%です。6月は200km達成を目指します!
生活にデカフェとジョギングを取り入れた結果
デカフェの影響はわかりやすく出ています。週末の頭痛は治まって夜の寝付きも良くなりました。平日会社でコーヒーを飲んで週末自宅ではコーヒーを飲まないというムーブが週末頭痛の原因だったんだろうと思います。 週末頭痛が解消されたことで週末ジョギングにも影響が出ていて、より長い距離を走れるようになりました。平日夜のジョギングは気合いですね!笑
デカフェとジョギング生活の結果、体重は7kg落ちました。
今月(6月)も継続してデカフェとジョギングを続けています。家族や取引先の方からも「痩せたね!」と言われてモチベーション維持につながっています。 ダイエットで食事制限や筋トレをしていた頃の停滞期より体重が落ちているので、デカフェで得られたメンタル部分がダイエットにも影響しているように思います。
ここから体重3kg落とすと社会人になってからの最低体重を下回るので、ここを目指してデカフェとジョギング生活を続けます。
来月も月間走行距離と体重を報告できるように頑張ります。
ブログをWordPressからはてなブログに引っ越しました。
VPSでWordPressを運用していましたがはてなブログに引っ越しました。
VPSでいろいろ試してみたい時にWordPressのメンテナンスが煩わしかったのが理由です。
引っ越しはWordPressでエクスポートしたファイルをはてなブログでインポートしました。
画像だけははてなブログにアップロードし直さなければいけなかったのでこれが面倒でしたね。
記事URLが変わってしまったのでサーチエンジ対策的にはお勧めできない引っ越しですが、WordPressのメンテナンスから解放とトレードオフだと割り切っています。
はてなブログPROに登録したので1年はこちらでお世話になってみようと思います。
よろしくお願いします。
ファイル権限変更のコマンドをメモしておきます
ファイル権限変更系のコマンドはch
から始まります。「change」の略です。
chownの使い方
chown
(change owner)はファイルやディレクトリの所有者を変更するコマンドです。
基本的な使い方はchown <[所有者]or[所有者:グループ]> <ファイルorディレクトリ>
です。
% chown <userName>:<groupName> <directlyName>
※<>内の文字は適宜変更してください
再起的な権限変更を行う場合は「-R」のオプションをつけます。 再起的とはディレクトリを含め内包するファイル・フォルダに対して処理をすることです。 作業ユーザーを「apache」グループに所属させる場合、作業ディレクトリには「apache」で所有者・グループを設定します。
% chown -R apache:apache <directlyName>
chmodの使い方
chmod: (change mode) はファイルやディレクトリのアクセス権(パーミッション)を変更するコマンドです。
基本的な使い方はchmod <パーミッション> <ファイルorディレクトリ>
です。
% chmod -R 775 <directlyName>
※<>内の文字、パーミッションは適宜変更してください
chown
で設定したapacheグループにアクセス権を付与するためパーミッションは「775」に設定します。
ファイルもしくはディレクトリだけにアクセス権を付与する場合はfind
コマンドとの合わせ技を使用します。
ファイルのみ
% find <directlyName> -type f -print | xargs chmod 644
ディレクトリのみ
% find <directlyName> -type d -print | xargs chmod 775
Apple WatchをSeries6に変えました。
初代Apple WatchからSeries3、Series4と使用してきて先日Series6に乗り換えました。Apple Watch Series5は「常時オン」機能が気になっていましたが買い換えるほどの理由ではありませんでした。
Apple Watch Series6では体がどれだけ酸素を取り込んで体内に供給しているかを知ることができるという「血中酸素ウェルネス」機能が追加されました。この機能がApple Watch Series4からの大きな乗り換え理由です。
睡眠の状態をトラッキングするアプリ「AutoSleep」を使用し始めてから快適な睡眠を目指して生活しています。
そんな中で睡眠中に無呼吸になってしまう「睡眠時無呼吸症候群」の早期検知にも役立つのではないかと思いました。 もちろんApple Watchは医療用の測定器ではないので正確な判断はできませんが、計測した血中酸素濃度から睡眠時の呼吸状態を知ることができるのは体調管理や受診のきっかけになるのでありがたいです。
初代Apple WatchからSeries3、Series4はいずれもアルミケースを選択してきましたが今回のSeries6はステンレスケースにしました。
アルミケースモデルの方が軽いのでスポーツのお供にするなら、、、と思っていましたが実際身につけると全然気にならないレベルです。見た目が自分の好みなのとバンドの選べる幅が広がったことを含めてステンレスケースにして大正解でした Apple Watch Series6と一緒にリリースされた「ブレイデッドソロループ」はバックルがないのでタイピング時の手首の違和感がなくとても気に入っています。
スポーツバンドやレザーバンドとも親和性が高いのでバンド選びが楽しくなりました。
日本ではまだ心電図を計測することはできませんが、今後解放されるという話題も見かけるようになりました。Apple Watchはヘルスケア機能が目立ちますが、ApplePayや電話、通知機能とヘルスケア機能の集合体ですので今後も私の体の一部となって活躍しそうです。
こちらからは以上です。
MacでVPN接続してもグローバルIPが変わらない時に見なおす設定
外出自粛要請で自宅で仕事をする時間が増えました。 テレワーク、リモートワーク、WFH(work from home)など呼び方は様々ですが、オフィスのネットワークにVPN接続しなければできない仕事も多いです。
MacでVPNを設定してもネットワークがVPNを経由してくれない、、、そんな場合はVPNの接続順位を上げてみます。
「システム環境設定 > ネットワーク」でネットワーク設定ウィンドウを開きます。ネットワーク設定画面で歯車アイコンから「サービスの順序を設定…」に進みます。
あとはネットワーク設定ウィンドウで「適用」を押せば設定は完了です。 確認くんなどでIPアドレスを調べてみると、オフィスのネットワークを経由してグローバルIPがオフィスのものに変わっているはずです。
こちらからは以上です。
Macショートカットメモ
キーボードを新調しました。備忘録としてMacのショートカットをメモしておきます。Happy Hacking Keyboard Professional HYBRID Type-S、いいですね。 ※USキーボードのショートカットになります。
文字変換
全角かな | Ctrl + j |
---|---|
全角カナ | Ctrl + k |
全角英数 | Ctrl + l |
半角英数 | Ctrl + ; |
カーソル移動
カーソルを右へ | Ctrl + f |
---|---|
カーソルを左へ | Ctrl + b |
カーソルを上へ | Ctrl + p |
カーソルを下へ | Ctrl + n |
行頭/段落先頭に移動 | Ctrl + a | 行末/段落末に移動 | Ctrl + e |
編集
カーソル右側の文字を削除 | Ctrl + d |
---|---|
カーソル左側の文字を削除 | Ctrl + h |
カーソル右側の文字から行末/段落末まで削除 | Ctrl + k |
Ctrl+Kで削除した文字を貼り付け | Ctrl + y |
カーソル左側の1単語とその後ろのスペース・句読点を削除 | Ctrl + Del |
その他
カーソル/選択部分を表示領域の中央にする | Ctrl + l |
---|---|
カーソルの後ろに1行挿入(改行とは異なる) | Ctrl + o |
カーソルの左側と右側の文字を入れ替える | Ctrl + t |
Reeder (v4.2以降)からFreshRSS-Fever APIにアクセスする
RSSリーダーアプリのReederがFeedlyの自動同期機能を無効化しました。手動での同期は可能ですが、2013年のGoogle Readerディスコン(Discontinue)騒動を連想してしまいました。 ということで、早めに自前の環境でRSSフィード取得環境を構築しておこうというお話です。
FreshRSSはPC・スマホのブラウザから閲覧できたり、MacやiPhoneのReeder(v4.2以降)との同期機能がサポートされているので重宝します。 Feedlyを利用する前はfeverを利用していました。feverは2016年に販売とサポートが停止されてしまったのでFeedlyに乗り換えたという経緯があります。ですので、FreshRSSに標準搭載されているFreshRSS-Fever APIを利用してReederと同期することにします。
RSSフィードをOPML形式でエクスポート
Feedlyで購読しているRSSフィードをOPML形式でエクスポートしておきます。Feedlyにブラウザからアクセスしてログインします。左のナビゲーション「FEEDS」の右横にあるアイコン(①)をクリックして表示された画面のExport OPMLボタン(②)からOPMLファイルをエクスポート・ダウンロードします。
FreshRSSを設置する
FreshRSSをウェブサーバーに設置します。FreshRSSの安定版のリリースから素直に安定版をダウンロードしてきます。2019年12月26日現在ではFreshRSS-1.15.3.zipが安定版のようです。解凍してできたFreshRSS-1.15.3フォルダを任意のフォルダ名にしてウェブサーバーにアップロードしましょう。
FreshRSSをの初期設定
ウェブサーバーの設置した FreshRSSパスにアクセスすると初期設定画面が表示されます。Languageに日本語はないのでEnglishで進めます。 ※ FreshRSSの設定はPCからアクセスしてください。スマートフォン、タブレットからでは設定用の各種リンクが表示されません。
Step2でデータベースの種類を選べます。
SQLiteでも動作するFreshRSS。つまりデータベースサーバーが必須ではないので、ミニマム構成での運用も可能です。
Step3でユーザーを作成します。
デフォルトのユーザー名、パスワードを設定したら初期設定は完了です。Step4で「Complete installation」ボタンを押してFreshRSSにログインしましょう。
OPMLをインポート
FreshRSSにログインしたら画面左上の「Subscriptions management」ボタン(①)を押します。
進んだ画面のナビゲーションから「Import / export」(②)を押して進み、先ほどFeedlyで作成したOPMLを選択(③)してインポート(④)しましょう。
FreshRSS-Fever APIを利用する
PCからアクセスしたFreshRSS画面の右上にある歯車アイコンをクリックして設定画面に入ります。
Enable the API in FreshRSSページに書いてあるとおり、設定画面のAuthenticationセクションで「Allow API access (required for mobile apps)」にチェックを入れてAPIを有効にします。Submitを押して設定を確定させてください。
続いて設定画面のProfileセクションの「API password(e.g., for mobile apps)」でAPIパスワードを設定します。Submitを押して設定を確定させてください。
API password フォームの下にあるリンクから進んでAPIの状態を確認します。「PASS」と表示されていればFreshRSS-Fever APIの設定は完了です。 この画面でエラーが出ているならファイル・ディレクトリのパーミッションの問題を疑います。ご利用になっているウェブサーバーに合わせて設置したファイル群のパーミッションを設定し直してください。
ReederからFreshRSS-Fever APIにアクセスする
いよいよRSSリーダーアプリからのアクセスです。ReederのAdd AccountからFreshRSS-Fever APIの情報を登録します。 SELF-HOSTEDカテゴリのFeverを選んで設定を進めます。 Serverには先ほど表示した「FreshRSS API endpoints」画面のFever compatible API項目にあるYour API addressを入力します。 EmailにはFreshRSS初期設定時に作成したデフォルトのユーザーネームを入力します。 Passwordは設定画面のProfileセクションで設定したパスワードを入力します。 Sign inで進めばフィードの同期が始まるはずです。
cronでフィードの自動更新設定
FreshRSSでのフィード更新は「actualize」ボタンをクリックしなければいけません。RSSリーダーアプリからではFreshRSSとの同期は取れますが、FreshRSSによるフィードの更新が実行されません。 cronで定期的にFreshRSSによるフィードの更新を実行しましょう。 SSHでウェブサーバーに接続します。
$ crontab -e
上記のコマンドでcron編集画面に入ったら定期的に「YOUR_PATH/app/actualize_script.php
」を実行するように設定します。ここでは30分毎にactualize_script.php
を実行するようにしています。
*/30 * * * * php _YOUR_PATH_/app/actualize_script.php > /tmp/FreshRSS.log 2>&1
保存して編集画面を抜けたらcrontab -l
で設定を確認します。
$ crontab -l */15 * * * * php _YOUR_PATH_/app/actualize_script.php > /tmp/FreshRSS.log 2>&1
以上で前工程完了です。お疲れ様でした。