GoogleChromeでキオスクモード

サイネージ関連のお仕事で調べてみた。

GoogleChromeにサイネージ用にキオスクモードというのがあるらしい

設定は簡単だった。

ショートカットを右クリック→プロパティ

ショートカットタブのリンク先を下記のように変更する

後はショートカットをダブルクリックで起動すると指定のURLでキオスクモードで使える
画面を閉じる場合はAlt+F4などで閉じるとOK

CakePHP2でセッションが途中で切れる問題

CakePHPでセッションが途中で切れるという現象に遭遇しました。

テストサーバーでは問題ないけど、本番サーバーに移すと症状が発生。

有効期限を30日にしているが、1時間ほどでセッション切れを起こす。

開発ツールを使って、セッションを見てみると、
なぜかセッションが2個発行されている。
1個はCakePHPで発行したもの。
もうひとつが謎のセッション

セッションの説明に下記の注意書きがありました。

https://www.php.net/manual/ja/session.configuration.php#ini.session.gc-maxlifetime


----------
注意: 異なる値を session.gc_maxlifetime に指定している 別々のスクリプトがセッションデータの保存場所を共有している場合、 一番小さい設定値に達した時点でデータが消去されます。
このような場合には、 お互いに session.save_path を使用します。
----------

なぞのセッションが1時間になっていて、それに巻き込まれてセッション切れを起こしているようでした。
サーバーはGMOクラウドサーバー

謎のセッションをどうすることもできない。
htaccessでの変更もエラーが出てできません。

save_pathを変える方法で対応します。

CakePHPのcore.phpを変更

‘defaults’ => ‘php’

↓↓↓変更↓↓↓

‘defaults’ => ‘cake’

これでセッションが/tmp/sessionsに生成されます。

セッションの巻き込み事故回避完了!

SSLとセッション

当然のことかもしれないけど、知らなかったので結構はまってしまった。

SSLとセッションの読み書き
SSL内ではnonSSLとは違うセッションが発行される。

SSL内
○ SSL内セッションの読み書き
○ nonSSLセッションの読み書き

nonSSL内
× SSL内セッションの読み書き
○ nonSSLセッションの読み書き

当然だけどnonSSLからSSLのセッションにはアクセスできない。

SSLとnonSSLが混在しているサイトはセッションの扱いに気をつけないといけない。

セッション使うならサイト全体をSSLにしちゃったほうが悩まずにすみますね。

さくらサーバーのメンテ情報

だいぶ久しぶりの更新になってしまいました・・・

さて、さくらレンタルサーバーをお使い人向けの情報です。
さくらよりメンテナンス情報を公開されています。
さくらレンタルサーバー

SSL化後にhtaccessでSSLへの転送設定を行っている場合、メンテ後にサイトが見れなくなる不具合が出ます。
下記の部分がそれです。

———–
(2019年2月26日追記)
【X_SAKURA_FORWARDED_FOR の環境変数の利用について】
X_SAKURA_FORWARDED_FOR の環境変数を利用されていると、
本件のOSのバージョンアップ以降にページが表示されなくなる不具合が発生する場合があります。
X_SAKURA_FORWARDED_FOR を利用せずにHTTPSを利用いただくようお願いいたします。
———–

■修正前

 

■修正後

 

ある日突然動かなくなるとか怖いんだけど。

OAuth2の認証を使う(Misoca API)

OAuth2の認証を使う(Misoca API)

Misoca(ミソカ)のAPIを使ってみよう!
OAuth2の認証を使っているということなのでOAuth2のことを調べてみた。

■Misoca(ミソカ)
Misocaにアカウントを登録してAPIの準備をします。

Misoca APIのドキュメント
https://doc.misoca.jp/
Misoca API v1
https://doc.misoca.jp/v1/
Misoca API v3
https://doc.misoca.jp/v3/

上記ドキュメントの「アプリケーション登録」の手順でAPIの準備をします。
・Application Id
・Secret
・Callback urls
上記の3つの値をメモします。

■OAuth2
https://github.com/thephpleague/oauth2-client

OAuth2の認証は上記ツールを使いました。
ダウンロードしたバージョンは2.4.1です。

上記バージョンだとPHP5.6、7~7.3まで対応です。

Composerで必要ツールを用意します。

 

プログラムコード

README.mdの中に記載のあるコードを使いましょう。
修正したものが下記になります。

 

●修正内容
2~7行目を修正
8行目に「scopes」を追加

41~63行目を追加・修正
リクエスト&レスポンスを追加
詳しくはMisocaのドキュメントを確認してください

OAuth2にすごい時間かかりました・・・(疲

htaccessでerror_reportingの変更

htaccessでerror_reportingを変更する場合にはまったので備忘録

 

上記のような感じで書いちゃうと動かないみたいだ。

htaccessで指定する場合はビット値での指定が必須のようです。

各値は公式サイトを参考に。

E_ALLを指定する場合は「32767」を指定
※PHP5.4は32767、5.3は30719、5.2は6143、それ以前は2047とバージョンによって若干値が変わります。

E_ALL & ~E_NOTICE & ~E_DEPRECATED

例えば上記を指定したい場合

E_ALL:32767
E_NOTICE:8
E_DEPRECATED:8192

NOTの分を引き算します。
32767 – 8 – 8192 = 24567

 

となる。

XAMPPにLaravel

Laravelのインストール

Composerのインストール方法はコチラから

XAMPPのコントロールパネルからShellを起動
Shellで下記のコマンドでLaravelをインストール

# cd htdocs
# mkdir laravel
# composer create-project –prefer-dist laravel/laravel laravel

完了したら「Application key set successfully.」と表示されます。

下記のURLにアクセスでLaravelにアクセスできます。
http://localhost/laravel/public/

XAMPPにComposer

CakePHP3とかLaravelとか入れるにはComposerが必要になってきます。
XAMPP環境でもComposerが使えるようなのでその方法です。

まずはサイトからComposerをダウンロードしてインストールします。

https://getcomposer.org/download/

XAMPPのPHPの場所を指定。
C:\xampp\php\php.exe
※XAMPPポータブルだとこける可能性があるので、通常版を使うことをお勧めします。

プロキシの設定がある場合は、その設定を。

そのまま進めてインストール完了したらコマンドプロンプトで確認

>composer -V

バージョンが返ってこない場合はPCを再起動して試してみましょう。
それでもダメな場合は再インストールしてみてください。

Googleの同期とバックアップが動作しない

Googleの同期とバックアップが動作しない。

なんか2ヶ月以上ぶりの投稿になってしまいました・・・

100GBが半年無料の案内が来たので試して見ました。

しかしインストールしても設定画面が表示されない。
色々検索して調べてみました。

下記の方法で解決できます。
※ユーザー名は日本語じゃないほうが良いです。それが原因の場合もあります。

ちなみにうーちゃんの環境はWindows7です。

1.Driveフォルダを削除
 C:\Users\<ユーザー名>\AppData\Local\Google\
 Driveフォルダを削除
 この中に設定ファイルなど色々あってこれが邪魔しているようです。


2.インストールしたアプリをアンインストール
 「Backup and Sync from Google」をアンインストール
 インストールした状態でexeをクリックしても状況は変わらないのでアンインストールすること


3.管理者として実行
 exeファイルを管理者として実行

インストール完了後にGoogleのログイン画面が表示されると思います。

CakePHP2.10の認証でACLのエラーが・・・

CakePHP2.10でAuthコンポーネントを使って認証機能を作った。

ID、パスワード認証までは問題なかったが、認証後に別のページにアクセスしたらACLのエラーが出て困った。

Error: Table aros_acos for model Permission was not found in datasource default.

コンポーネントでACLの読込はしてないのに上記エラーが出てる。

検索しても情報が出てこなかった。

ソースを追ったりして色々調べてみたら下記の設定が原因だった。

$this->Auth->authorize = ‘actions’;

上記設定をするとACLを読み込んでACLの機能でチェックするらしい。

AUTHだけ使う場合は上記設定はなくていいみたい。