メンテナンス中ページの作り方

画像mente.pngを作って使う例

mente.html

 <!DOCTYPE html>
  <html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>メンテナンス中です | Blog</title>
<!-- 全てのブラウザで同じに見えるようreset.cssを読み込みます-->
    <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css">
    <link rel="stylesheet" type="text/css" href="/mente.css">
  </head>
  <body>
    <header>
      <div class="logo-container">
        <div class="logo">
          <p>Blog</p>
        </div>
      </div>
    </header>
    <div class="top-container">
      <div class="container">
        <div class="maintanance-now">
          <p>ただいまメンテナンス中です。</p>
<!--画像もご自身のサーバーから好きなものを使ってください-->
          <img src="mente.jpg" width=30% height=30%>
          <p>一時的にご利用いただけない状態となっております。</p>
          <p>ご不便をおかけいたしまして申し訳ございません。</p>
        </div>
        <div class="maintanance-supplement" >
          <p>2020年5月6日24時 終了予定です。</p>
          <p>※終了時間は作業により若干送れる場合がございますことをご了承ください。</\p>
        </div>
      </div>
    </div>
    <footer>
      <div class="logo-container">
        <div class="logo">
          <p>Blog All Rights Reserved.</p>
        </div>
      </div>
    </footer>
  </body>
  </html>

mente.css

body{
      margin:0;
      top:0;
      height:100vh;
    }
    header{
      height:60px;
      width:100%;
      background-color:black;
      color:white;
      top:0;
      left:0;
    }
    .logo-container{
      height:100%;
    }
    .logo{
      font-family:Hiragino Kaku Gothic ProN;
      text-align:center;
      position:relative;
      top:50%;
      transform: translateY(-50%);
      color:white;
      letter-spacing:1px;
      margin:0 0 0 5px;
    }
    .logo-container.logo p{
      margin:0;
      height:100%;
    }
    .container{
      font-family:Hiragino Kaku Gothic ProN;
      letter-spacing:0.3px;
      text-align: center;
    }
    .maintanance-now{
      padding: 30px;
    }
    .maintanance-now p{
      font-size: 20px;
      padding:3px;
    }
    .maintanance-now img{
      padding: 10px;
    }

    .maintanance-supplement{
      display: block;
      margin-left: auto;
      margin-right: auto;
      padding: 15px;
      background-color:#9f9f9f;
      color:#ffffff;
      font-size: 15px;
      width:75%;
    }

    footer{
      height:60px;
      width:100%;
      background-color:black;
      color:white;
      bottom: 0;
    }

.htaccess

ErrorDocument 503 /mente.html
  <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !=/mente.html
    RewriteCond %{REQUEST_URI} !=/mente.css
    RewriteCond %{REQUEST_URI} !=/mente.png
    RewriteRule ^.*$ - [R=503,L]
  </IfModule>
  <IfModule mod_headers.c>
    Header set Retry-After "Wed, 6 May 2020 9:00:00 GMT"
  </IfModule>

MFCでIEじゃなくEdgeのコンポーネントを利用するサンプル

WebView2が使える。

これでIEとおさらばできるかと思えば、ChroniumベースのEdgeがインストールされてる環境が前提。
お客さん向けに作るならChroniumベースのEdgeが使える環境/使えない環境を判断してコントロールを使う必要がありそうだ。

ネタ元にはサンプルプロジェクトがあるのでありがたい。

wordpressでサイトに重大なエラーがありました。の対策

wp-config.php を以下のようにする。

エラー内容は確認したいけど、ブラウザでは表示したくないとき用です。
/wp-content/ ディレクトリに debug.log が作成され、そのファイル内にエラー内容が記録されます。

define('WP_DEBUG', true); // デバッグモードを有効化
if (WP_DEBUG) { // デバッグモードの時だけ
	define('WP_DEBUG_LOG', true); // debug.log ファイルに記録
	define('WP_DEBUG_DISPLAY', false); // ブラウザ上に表示しない
	@ini_set('display_errors',0); // ブラウザ上に表示しない
}


exec-phpでエラーがでてることも。

「【Windows】Dockerと開発環境の作り方」 への道

いまだゴールにたどり着けず。

ベース


そもそもGit BASHインストールしとくことが前提。

Cドライブへのアクセス権がどうとかで怒られる

対策は初期化してから共有OKにさせること。

すでにこの記事のころとメニューが変わってる

2020/4/22現在はここ

f:id:shikaku:20200422130431p:plain

docker-machineってコマンドが動かない

docker-machine: command not found

と言われる。

Install Docker Machineを参考に以下のコマンドを実行してインストール

docker-machine ip てうってもエラーになる

Error: No machine name(s) specified and no "default" machine exists

なんかDocker Machineってのができてないっぽい。

しかたないのでDocker Machineを作ってみようとするが

docker-machine create --driver hyperv docker-machine-name

Error with pre-create check: "no External vswitch found. A valid vswitch must be available for this command to run. Check https://docs.docker.com/machine/drivers/hyper-v/"

エラーになる。


ここに対策方法があるみたいだが、時間切れ。あとで続きやる

c#で特定のexeが生きてるか調べる

excel.exeいるか調べるサンプル

Process[] processList = Process.GetProcesses();
foreach (Process p in processList)
{
    try
    {
        string fileName = System.IO.Path.GetFileName(p.MainModule.FileName);
        if (fileName.ToLower() == "excel.exe")
        {
            bExcelQuit = true;
            break;
        }
    }
    catch {
    }
}

PHP LINE送信テスト

まずLINEに登録しているメールアドレスとパスワードでLINE Notifyのページ(https://notify-bot.line.me/ja/)にログインします。
登録メールアドレスは、LINEアプリの『設定>アカウント』から確認することが出来ます。
LINE Notifyにログインしてマイページを開きます。「トークンを発行する」と書かれたボタンがあるので、クリックしてアクセストークンを発行します。

<?php

// LINE送信テスト

define('LINE_API_URL'  ,"https://notify-api.line.me/api/notify");
define('LINE_API_TOKEN','ACCESS_TOKEN');    // 「ACCESS_TOKEN」を取得したアクセストークンに置き換える
function post_message($message){
    $data = array(
                        "message" => $message
                     );
    $data = http_build_query($data, "", "&");
    $options = array(
        'http'=>array(
            'method'=>'POST',
            'header'=>"Authorization: Bearer " . LINE_API_TOKEN . "\r\n"
                      . "Content-Type: application/x-www-form-urlencoded\r\n"
                      . "Content-Length: ".strlen($data)  . "\r\n" ,
            'content' => $data
        )
    );
    $context = stream_context_create($options);
    $resultJson = file_get_contents(LINE_API_URL,FALSE,$context );
    $resutlArray = json_decode($resultJson,TRUE);
    if( $resutlArray['status'] != 200)  {
        return false;
    }
    return true;
}

// 引数取得
$mess = "";
if(isset($_GET['mess'])) {
	$mess = $_GET['mess'];
}

header("Content-type: text/html; charset=utf-8");

echo urldecode($mess);
echo '<br>';

post_message($message);  

sqliteでインメモリで複数接続はできないっぽい

いつかはサポートするかもしれないけど

SQliteが他のプロセスとのメモリデータベースの共有をサポートしていないことは事実です。

....

サポートが不足している主な理由の1つは、ロックの必要性です。 
SQliteには、データベースをロックするための手段が必要です。
現在、これらのロック操作は、SQlite VFS実装のファイル操作に関連付けられています。
メモリ内で機能する独自のVFSモジュールを実装することは可能ですが、ファイルシステムを実装するリスクがあります。