シンプルと自由を目指す

なるべくシンプルに自由になれるための情報を書いて行きます

NginxのPHPの絶対にできる簡単設定

php5や、一度設定したことがあれば、保証できません。 競合してめちゃくちゃになります。(体験談) nginxとphpを初めてインストールする人 さらに、debian系のディストリビューションなら間違いない。 うまくいかなければ、初期化して一からやることを進めます。 この記事は、初期化して一からやれば必ずできます。
Red-Hat系やMacOSは、参考程度によろしくお願いいたします。

それでは、始めます。

まず、installするものは、 nginx, php7.0, php7.0-fpmです。

$ sudo apt -y install nginx php7.0 php7.0-fpm

ちょっとした説明  aptは、apt-getの上位互換らしいです。 -yオプションは、選択を全てyesにします。

設定ファイルいじります。

はじめに indexにindex.phpを追加します。

その後、location ~ /.php{}の設定の中で includeの行と fastcgi_pass unixの行だけコメントはずします。

$ sudo vim /etc/nginx/sites-available/default
44 index index.html index.htm index.nginx-debian.html index.php;

56 location ~ \.php$ {
57 include snippets/fastcgi-php.conf;
58 #
59 # # With php-fpm (or other unix sockets):
60 fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
61 # # With php-cgi (or other tcp sockets):
62 # fastcgi_pass 127.0.0.1:9000;
63 }

次にfpmを編集します。

fpmとは phpを動作させるAppserverで Apacheなどでは、必要ない(Apacheが頑張る)が Nginxは、phpの仕事をしないのでfpmが必要。
それでは、やっていきましょう。

$ sudo vim /etc/php/7.0/fpm/php.init

760行目付近です。cgi.fixなどは、似たものがあるので気をつけてください。

760 cgi.fix_pathinfo=0

これだけで設定完了です。

あとは、リロードするだけ

$ sudo service php7.0-fpm restart
$ sudo service nginx restart
http://localhost/

でwebが表示されるはずです。

また、表示しているファイルは、 /var/www/htmlのディレクトリにあるファイルです。

以上です お疲れ様。

Atomというテキストエディタの中でターミナルをひらきたい。

そんなことを検索していてたら、実際にやっている人がいた。

結果として

Platform-ide-Terminal というパッケージをインストールすれば

Ctrl + Shift + `のショートカットで ターミナルを起動させたりさせなかったりができる。

gui上のデバッグツールを入れる

linter, linter-ui-default というのをいれてC言語用に linter-clangを入れています。 linter-gccというのもありますが gccのほうでは、セーブした時に更新されます。 clangの方では、自動で更新してくれるので非常に便利!

Atomデバッグgui上で確認しながらするコーディングは、本当にideみたいです。 そして、コンパイルと実行の時terminalを呼び出してAtom上でできます。

一つ気になる問題がある

Ctrl + rでコマンド検索というものがあります。 macでは、コマンド検索がなぜか一文字しかできません。 (業務上のLinuxAtomを使っているときは、つかえたのですが...)

macの方で同じような症状になっている方で 対策方法がわかっている人は、教えて欲しいです。 よければコメント部分によろしくお願いいたします。

Wordpressのメールアドレス変更しても通知来ない

Wordpressのメールアドレスの変更

3箇所ある。

  • ユーザ→メールアドレス(必須)
  • 設定→一般→メールアドレス
  • お問い合わせ(プラグイン)→コンタクトフォーム→メール→送信先

変更するとメールを送信しました。 「sample@gmail.comへのメールアドレス変更が承認待ち中です。」 という表示がでるがメールアドレスが来ない...。

探すと同じような人がいた。

結論

1時間30以上かかったという人がいた。

気長に待つのが吉。笑

一発で矢印キーを出す方法

[注意点]

  • Windowsでは、できないかもしれない。
  • Linux系は、確認済み

キーボード全角で矢印を一発で出す方法

全角にして行ってください。

コマンド 結果
Z + H
Z + J
Z + K
Z + L

Node.js Promiseの戻り値2つの実装

普通に戻り値2つ取ろうとすると ふたつ目がundefinedとなる。

// 省略...
    await get_info(config).then((data,fdata) => {
        console.log(data);   // test
        console.log(fdata);  // undefined
    });
// ...

let get_info = async (conf) =>{
    return new Promise((resolve, reject) => {
        var data = "test";
        var fdata = "test.txt";
        result(data, fdata);
        });
    });
};

解決策

配列にしていれば渡せる

// 省略...
    await get_info(config).then(([data,fdata]) => {
        console.log(data);   // test
        console.log(fdata);  // test.txt
    });
// ...

let get_info = async (conf) =>{
    return new Promise((resolve, reject) => {
        var data = "test";
        var fdata = "test.txt";
        result([data, fdata]);
        });
    });
};

Spreadsheet GAS 入門

SpreadsheetのGAS入門として以下のものを作成いたしました。 実行は、図形のボタンから行うのがお勧めです。 [Spreadsheet GAS 入門 ログの表示は、Macなら[Cmd] + [Enter]です

流れ

  1. Spreadsheetのデータを取得
  2. 実行速度をログに残す
  3. データをメッセージボックスで表示
  4. 表示したデータが合っているかどうかログに残す

ソースコード

function myFunction() {
  // 処理する時間を測り始める
  var time = time_start();
  // 今開いているシートを取得
  var sheet = SpreadsheetApp.getActiveSheet();
  // シート全体のデータを取得
  var data = sheet.getDataRange().getValue();
  
  // [A1(1,1)]から[B2(2,2)]のデータを取得
  var range_data = sheet.getRange(1,1,2,2).getValues();
  // 処理時間をログに残す
  time_end(time);
  // メッセージボックスにデータを表示させる
  msg(range_data);
  
}

// データの表示
function msg (data) {
  var test = Browser.msgBox("表示したいデータは\\n["+data+"]\\n合っていますか?", Browser.Buttons.YES_NO);
  // メッセージボックスのyes or noに応じたデータをログに残す。
  if(test) {
    if (test === 'yes') Logger.log('表示したデータは、合っていた。');
    else Logger.log('表示したデータは、間違っていた。');
    // エラーが起きた時の処理
  } else {
    Logger.log('error');
  }
}

// 時間を測り始める
function time_start() {
  return new Date();
}

// 時間の測定結果をログに残す
function time_end(time) {
  var end = new Date();
  var span_sec = (end - time)/1000;
  Logger.log("処理時間は " + span_sec + " 秒でした" );
}

JavaScriptのタイマー関数について

JavaScriptのタイマー関数について ドットインストールで良いのがあったのでメモ。 ドットインストールのJavaScript入門

setTimeout()について

  • setTimeout()は、指定した時間停止した後に実行する。また、停止している時間は、非同期のコールバックの関数なので時間が来るまで他の処理をしてくれる優れもの。
  • タイマーとして使う時は、再帰する関数の中に入れてループさせて使用する。
  • setTimeout()は、idを発行するので、そのidを使用することでsetTimeout()を停止することもできる。

サンプルソースコード

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Sample test</title>
</head>
<body>

    <script>
        var time = 0;
        function show() {
            console.log(time++);
            var sid = setTimeout(function () {
                show();
            }, 1000);
            if ( time > 10 ) {
                clearTimeout(sid);
            }
        }
        show();
    </script>
</body>
</html>