NginxのPHPの絶対にできる簡単設定
php5や、一度設定したことがあれば、保証できません。
競合してめちゃくちゃになります。(体験談)
nginxとphpを初めてインストールする人
さらに、debian系のディストリビューションなら間違いない。
うまくいかなければ、初期化して一からやることを進めます。
この記事は、初期化して一からやれば必ずできます。
それでは、始めます。
まず、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を編集します。 それでは、やっていきましょう。
$ 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では、コマンド検索がなぜか一文字しかできません。 (業務上のLinuxでAtomを使っているときは、つかえたのですが...)
macの方で同じような症状になっている方で 対策方法がわかっている人は、教えて欲しいです。 よければコメント部分によろしくお願いいたします。
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]です
流れ
- Spreadsheetのデータを取得
- 実行速度をログに残す
- データをメッセージボックスで表示
- 表示したデータが合っているかどうかログに残す
ソースコード
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>