[PHP] エルビス演算子とNull合体演算子

新しい演算子の理解が怪しいので覚書メモ。

エルビス演算子 ?:

expr1がtrueである場合はexpr1と評価され、 それ以外の場合はexpr2と評価される。すなわち expr1 ? expr1 : expr2 の真ん中を略した書き方。

Null合体演算子 ??

expr1がNULLである場合はexpr2と評価され、それ以外の場合はexpr1と評価される。すなわち !is_null(expr1) ? expr1 : expr2 と同様。

参考サイト

似てるようで違う、PHPのエルビス演算子とNull合体演算子 – Qiita
https://qiita.com/jay-es/items/3b8734bc02070d074a3e

【PHP入門】三項演算子とは?使いこなしてコードをスッキリする | 侍エンジニアブログ
https://www.sejuku.net/blog/23070

[Unix] systemctlによるサービスの自動起動設定

CentOS 7からサービスマネージャとしてsystemdが採用された。それを受けて、これまでchkconfigで行っていたサービスの自動起動設定をsystemctlで行うことになった。以下、systemctlの使い方覚書。

自動起動をオンにする

自動起動をオフにする

自動起動の状態確認

参考サイト

CentOS7の自動起動設定 – Qiita
https://qiita.com/sayama0402/items/5691d464c422b48931c1

(CentOS7から)Systemdによるシステムとサービスの管理 – 概要と変更点
https://kazmax.zpp.jp/linux_beginner/systemd_summary.html

[MySQL] CentOSのMySQLへ外部から接続する

アクセス許可

ポートを開く

mysqldへのアクセス許可

mysqlユーザ設定

リモートマシンからアクセスできることを確認

参考サイト

MySQL で特定の IP アドレスからのアクセスを許可する – Qiita
https://qiita.com/u-dai/items/b360a337b5001778699e

MySQLに外部サーバーからアクセスする – 発声練習
http://next49.hatenadiary.jp/entry/20120112/p1

[Laravel] Homesteadのメモリ/CPU設定を変更する

Homesteadの動作がもっさりしているので、動作パラメータを変更してリソース消費を増やしてみる。

Homestead.yaml

変更前

変更後

もっさり感は若干は改善されたように感じるけど、劇的に改善した感じはない。この遅さは仕方ないのだろうか、それとも何かまだ打つ手があるのだろうか・・・

[MySQL] グローバルなシステム変数を設定/参照する

MySQLのチューンアップの覚え書きとして。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.1.5 システム変数の使用
https://dev.mysql.com/doc/refman/5.6/ja/using-system-variables.html

MySQL Server には、その構成方法を指示する多くのシステム変数が保持されています。各システム変数にはデフォルト値があります。システム変数は、コマンド行のオプションを使用するか、オプションファイルでサーバー起動時に設定できます。これらのほとんどは、SET ステートメントを使用してサーバーの実行中に動的に変更でき、これによりサーバーを停止して再起動することなくサーバーの動作を変更できます。

 

[MySQL] グローバルなステータス変数を参照する

MySQLのチューンアップの覚え書きとして。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.1.6 サーバーステータス変数
https://dev.mysql.com/doc/refman/5.6/ja/server-status-variables.html

サーバーには、その操作についての情報を提供する多くのステータス変数が保持されています。これらの変数およびその値は、SHOW [GLOBAL | SESSION] STATUS ステートメントを使用して表示できます。

[ホスティング] ログローテーションで新規ファイルのパーミッションを指定する

ログローテーションした後のファイルを例えばapacheユーザからアクセスしたい場合、そのファイルのアクセス権をrootしか持っていないのでは困る。

そういう場合は、createで新規ファイルのパーミッションを指定する。

参考サイト

ログローテーションするためのlogrotate設定とちょっとしたtips – Qiita
https://qiita.com/K_Yagi/items/7843429f34678e475be6

logrotateでcreate時にパーミッションが効かない – 右往左往ブログ
http://u0sa0.hateblo.jp/entry/2015/04/10/022551

@IT:logrotateの設定ファイルで指定できる主なコマンド
https://www.atmarkit.co.jp/flinux/rensai/linuxtips/747logrotatecmd.html

[Apache] 一定数リクエストを処理したphp-fpmのプロセスを再起動する

php-fpmをずっと動かしていると、徐々にメモリ使用量が増えて、終いにはメモリを食い潰してしまう。アプリなのか、ミドルウェアなのか、どこかでメモリリークが起きているのだろうと想像できるものの、その原因を突き止めるのは難しそうだ。

メモリリークは起きて仕方ないとあきらめて、一定期間が経過したらphp-fpmのデーモンを再起動したら良いのではないか。そんなことを思ったら既にそういうオプションが用意されていた。

/etc/php-fpm.d/www.conf

参考サイト

php-fpm の設定を理解してサイトのパフォーマンスを向上させる – Hacker’s High
https://hackers-high.com/linux/php-fpm-config/

[Windows] データ通信量を確認する

COVID-19で子供らの学校がリモート授業になって、かつ、子供らが自宅にいる時間が長くなったせいもあり、ついに先月、CATVインターネット接続の月間トラフィック許容量1,280GBを越えてしまう事態が発生。でも家族全員がそんなにトラフィックを使っているわけじゃあるまいし、まあ犯人捜しをするわけじゃないけど、誰がどれぐらいトラフィックを使っているのかは知っておきたい。

まずは、デバイス毎のトラフィックを集計する機能がWi-Fiルーターに備わっていないか調べるも、我が家が使っているような廉価な製品にはそんなものがあるはずも無し。

更に調べてみると、Windowsには過去30日間のトラフィックを積算する機能があるらしい。

[Windows10] データ通信量を確認する | ぱそまき
https://pasomaki.com/windows-data-traffic-check/

できれば1日単位でトラフィックを調べたいと思って調べると、以下のソフトが見つかった。多機能な割にUIはすっきりしていて使いやすそうなツールだ。30日間の試用期間があるようなので、とりあえず自分のPCと、我が家のネットのヘビーユーザーである息子のPCにこのツールを入れておく。

NetWorx : bandwidth monitor, connection speed test, data usage log
https://www.softperfect.com/products/networx/

NetMaster : Internet connection monitoring and control
https://www.softperfect.com/products/netmaster/