WebサーバのログにPHPMyAdminがインストールされているかスキャンしている不正なアクセスがあったのでメモ代わりに残しておきます。 以下のようにありがちなパスを片っ端にスキャンされているので、パスワードを掛けておくのは当然ですが、/phpMyAdmin...


VisualStudio Codeでは、デフォルトでは、文字コードがUTF-8であると仮定してファイルが開かれます。 メモ帳(notepad.exe)のように、文字コードを自動認識させたい場合は、下記の設定を行えばよいです。 ```language-json { "files.autoGuessEnc...


PHPを勉強し始めて間もない時や、PHPを使ったプロジェクトの序盤では、トライアンドエラーを迅速に行うため、一旦すべてのエラーをブラウザ画面に表示させてしまいたい場合があります。 このような場合は、下記のコードをプログラムの先頭に書いておけ...


PHPのプログラムを実行するとUnexpected T_STRINGエラーが出る場合があります。 このエラーが出た場合にチェックするポイントを説明します。 ## エラーが出た場所を確認する 以下のようにエラーが出るので、まずはこのエラーメッセージよりエラー...


PHPのSlim3 Frameworkでcookieを管理するためのクラスです。 stackoverflowにあったコードを元に一部改修してます。 https://stackoverflow.com/questions/35257522/slim-3-framework-cookies ```language-php


Linuxではlogrotateコマンドでログの切り替えを行うことができますが、ログ切り替えの最小単位は1時間周期(hourly)です。 今回は、logrotateコマンドで、15分おきや1分おきなど、1時間より短い時間でのログ切り替えを行う方法を説明します。 ## 作...


Visual Studio 2017のインストーラをダウンロードすると、通常は1MB程度の小さなインストーラーで大半のデータをインストール中にオンラインでDLする形式になります。 複数台にインストールするなど、予めISOイメージを取得して起きオフラインでVisual ...


bash for windowsでfindを使う

2017年9月12日 | カテゴリ: Linux, Windows | タグ:
Windows環境で、bash for windowsやGit bashなどのbash環境を使っているとき、findコマンドでファイル検索しようとすると、以下のエラーが表示される場合があります。 ``` language-bash $ find ./ -print FIND: 無効なスイッチです ``` これは、...


Ansibleで小さなファイルを大量にcopyタスクを使ってコピーする場合、処理に非常に時間がかかる場合があります。この場合、copyの代わりにsynchronizeのタスクに変更すると劇的に処理が早くなる場合があります。 変更前: ```language-yaml - name: co...


[Windows].Net CoreのSDKをインストールする

2017年9月10日 | カテゴリ: C#
Windows向けの.Net Core SDKは、https://www.microsoft.com/net/download/core#/sdkよりダウンロードできます。 .Net CoreのSDKのインストールは、1分程度で完了する小さなもので、特に再起動も要求されません。 インストーラーも下記のような感じ...


AnsibleのPlaybookは、`ansible-playbook foo.yml`のような形で実行しますが、下記のようにしておくとymlファイル自体を実行可能な形式にすることが可能です。 ファイルの先頭に以下の1行を書く ```language-bash #!/usr/bin/env ansible-playbook `...


クラウドサーバなどリモート環境で実行されているLinuxサーバの再起動などを行った場合、いつ再起動が終わったかを知らせてほしい場合があります。 このような場合、リモートサーバがpingを許可していれば下記のコマンドで確認することができます。 ``...


VagrantでVMの管理にVirtualBoxを使用している場合、Vagrantfileの設定を変更することで、ネットワークを速くすることができます。 方法は、Vagrantfileファイルを編集し、ネットワークのドライバをvirtioというものに変更したうえで、vagrant upする...


Slim3 FrameworkでPDOを使用したDBアクセスを行いたい場合があります。 Slim3では、システム全体で使用するオブジェクトの管理をDIコンテナに任せることができる為、DIコンテナ経由でPDOオブジェクトの取得を行う方がスマートです。 下記は、PDOオブ...


Ansibleのtemplateコマンドについて

2017年8月28日 | カテゴリ: 未分類 | タグ:
Ansibleでは単純なファイルのコピーだけでなく、templateコマンドを使うことによって可変部を含むファイルをコピーできるテンプレート機能を使用することができます。 ## テンプレートの仕組みについて - templateコマンドを使うと、Jinja2のテ...


PHPのマイクロフレームワークである、Slim3 Frameworkでクライアントから渡された、GET/POSTパラメータを受け取る方法はいくつかの方法があります。 まずは以下の方法で、すべてのパラメータを配列として取得できます。 ```language-php $paramValue ...


今回は、AWSのcliユーティリティを使用して、複数のec2サーバに対してコマンドを実行します。例として、タグに"role=web"が指定された全てのec2インスタンスに対してuptimeコマンドを実行してみます。 ## 最初にまとめ 結果だけ知りたい人のために結論...


AWSのクラウド環境をコマンドラインから操作するために、awsコマンドというものがあります。 検索系のコマンドの場合、jsonで形式で出力させたうえでjqコマンドで必要な情報のみ抽出することが多いのですが、jqコマンドを初めて使う場合、使い方が分か...


VisualStudio Code(VSCode)では、エディタのスクロールバー領域に開いているファイルを縮小表示したものが表示されます。この機能はミニマップと呼ばれていて、SublimeTextなど他のモダンなエディタも持っている機能です。 ミニマップは便利なのですが...


Linuxのcron機能で、5分ごとにスクリプトを実行したい場合は、大抵の環境で下記の指定が可能です。 ```language-bash */5 * * * * ``` ただ、上記の場合だと、開始が0分になります。 開始が0分からではなく、m分のオフセットを掛けたのち、n分おき...


[PHP]Slim3でリダイレクトを行う

2017年8月15日 | カテゴリ: SlimFramework
PHPのSlim3 Frameworkで302リダイレクトを行いたい場合があります。 Slim3でリダイレクトを行うときは、下記のように$response->withRedirect()メソッドを利用すればよいです。 ``` language-php use \Psr\Http\Message\ServerRequestInterface as Re...


[PHP]arrayをXMLに変換する関数

2017年8月15日 | カテゴリ: PHP
PHPでarrayをXMLを調べていたところ、意外と探せない。 PEARのXML/Serializerライブラリを使うのはさすがにレガシーすぎるので、stackoverflowで見つけたSimpleXMLElementクラスを利用したものを使うことにしました。下記Q/Aの回答に提示されていたコー...


Slim Frameworkで応答データをjsonp形式で返したい場合は、下記のようにすればよいです。jsonpのcallback関数名は、通常クライアントから指定してもらうことが多いです。 ```language-php $app->get('/', function (Request $request, Response $respons...


SlimFrameworkでは、スクリプトの途中でエラーが出たとき以下のメッセージを画面に表示するだけで、エラーのスタックトレースなど詳細を画面に表示しません。 ```language-bash Slim Application Error A website error has occurred. Sorry for the te...


PHPを使ったプログラムで、簡単なWebAPIを実装したい場合があります。 小さなWebAPIサーバなど、シンプルなサービスを実装する時にSlim Frameworkのようなマイクロフレームワークは助けになりますが、クライアントの認証がネックになることがあります。...


phpからyamlファイルを読む機会があったのですが、symfony/yamlパッケージを使ってみたら便利でした。 パッケージ名に"symfony"とついていますが、symfonyフレームワークを使わなくても、このパッケージだけ単独で利用できます。 (さらに…)


ansibleをインストール後、下記のplaybookを実行すれば、phpとcomposerを纏めてインストールできます。 動作テストは、vagrant上のubuntu-trusty-64にて行っています。 ```language-yaml #!/usr/bin/env ansible-playbook - name: install php and c...


PHPの通信ライブラリであるGuzzleHttpで通信の送受信内容をデバッグしたい場合があります。 デバッグ出力するためには、get()やpost()など通信実行のメソッドの第二引数に、'debug'=>trueのパラメータを追加すればよいです。 (さらに…)


PHPでComposerといえばパッケージの依存性管理を行うためのツールですが、パッケージ管理以外にオートロードの機能も備えています。 今回はcomposerを使って、何も依存パッケージを利用せず、オートロードの機能だけ利用したプログラムを作ってみます。...


PHPでもrange()関数を使ってみよう

2017年8月1日 | カテゴリ: PHP
pythonでは一定の回数ループさせたり、一定の範囲の数列を扱うために、range()関数があります。 pythonのプログラムでは頻繁に使われる便利な関数なのですが、実はPHPにもpythonと同様、range関数が標準で用意されています。 今回はrange関数を使っ...


PHPでは、define()関数を使用して、定数を作ることが可能です。 定数を切っておくと便利なのですが、定義の内容はシステム全体に及ぶため影響範囲を調べ辛いというデメリットもあります。 古くからあるアプリを保守する場合は、そもそも、何のdefine定...


PHPで利用できるマイクロフレームワークの一つに、Slim Frameworkというものがあります。今回は、Slim Frameworkで、302リダイレクトを行う方法を説明します。 Slim Frameworkでは、HTTPのリクエスト、レスポンスの情報をPSR-7の規格に準じた形で実装し...