投稿

2019の投稿を表示しています

php_modが非推奨になったのね

昔のバージョンのphp環境でphpバージョンを上げるという対応中。 apache + PHP8のインスタンスを構築してドキュメントルートまで到達を確認。 対応する人にドキュメントルートまで到達するからプロジェクトのファイルを置いてバージョンアップのエラーを確認してもらうため依頼しましたが HTTP 503 Service Unavailable のエラーが出ているとのこと。 HTMLファイルはアクセスできているからPHPの実行ができていないと思い調べると Apache HTTP サーバーで使用するために PHP に提供されている mod_php モジュールが非推奨になりました。 php-fpmをインストールして起動し、リクエストを流してphp-fmpでphpを実行するようにして解決。 しばらくPHPを触っていなかったのでモジュールが非推奨になったことに気づかずでした。

S3マウントできない事象(s3fs)

s3fsでマウントできない事象が発生 前提として今回は、新規ディレクトリに作成したバケットをマウントしようとした際に出た事象の記事です。 とある作業をしていたメンバーからいつものコマンドでS3のバケットとマウントできないんですと問い合わせがありました。 マウントを実行するシェルコマンドはエラーもなく実行されているんですが # sudo ./mount.sh user Password 4 sudo: #  てな感じで終了しています。 手順通りだとマウントされているかの確認のため # df -h  s3fs             256T     0  256T    0% /var/www/html/webroot/img みたいに確認するのでですがその際に以下のエラーが出ました。 df: `/var/www/html/html/webroot/img': 通信端点が接続されていません 特に検索しても同様の事象はumountしてマウントしなおせばできるよって記事はありましたが今回は新規なので該当しません。 私も初めての事象でしたが、以前に何かのきっかけでこちらの記事をみていたのでもしかしてと思いました。 s3fs の利用者はいますぐバージョンを確認しないと使えなくなるかも?! 利用していたバージョンは(1.78)でした。 そこでバージョンを上げてみようと思い対応。 以前は、ソースからmake && make install をしていたんですが、yumリポジトリから普通に取れるじゃんって思い普通に # sudo yum install s3fs-fuse でインストール これでmount.shを実行したらうまくいきました。 うまくいっていないところからこれだけ対応してマウントできるようになったので原因はこれかと思います。 今回は新規の場合にマウントできませんでしたがすでにマウントしてあるディレクトリができなくなったという記事がほとんどでしたのでこちらもしかするともう一度マウントしなおさないといけないかもしれません。 こわいので順次対応していこう。。

nginxでaccess.logにアクセスユーザーの識別子を出す

nginxでaccess.logにアクセスユーザーの識別子を出すように設定 環境について OS:debien ※これは設定ファイルの場所の違い等があるかもしれないがそれ以外はどれでも同じ nginx: 1.17.6 言語: Go 1.11.2 基本的にはこちらを参考にしています。 nginxのアクセスログにユーザーIDを記録する方法 結構以前のものですがそのまま使えてます。助かりました。 まずはnginxの設定から vim /etc/nginx/nginx.conf こちらのログフォーマットを追加 > log_format sample-log '$remote_addr - $remote_user [$time_local] "$request" ' > '$status $body_bytes_sent "$http_referer" ' > '"$http_user_agent" "$http_x_forwarded_for" ' > '$upstream_http_x_user_id'; #該当アクセスログの出力設定に追加したログフォーマットを指定する > access_log /var/log/nginx/access.log sample-log; こちらを追加して、実行しているプログラムなりからHeader情報X-user-Idを追加することになります。 今回はGo言語だったので、IDが取れるのは各認証が必要なAPIは 認証関数が実行され、そこでIDが取得されるのでこちらに以下を記載 w.Header().Set("X-User-ID", fmt.Sprintf("%d", Id))/code> w関数の引数で受け取っている w http.ResponseWriter これで nginx -s reload でアクセスログの最後にアクセスユーザーI

仕事観記事メモ ヤマハ社長

JCBザ・プレミアム12月号よりヤマハ株式会社 中田卓也代表取締役社長 私が普段利用しているJALのJCBカード 毎月JCBザ・プレミアムが送られてくるんだが、普段全く流し見くらいしかしていなかったんですが、最近ビジネス観というところに興味があり目が止まったのが、 『逆転のセオリー』 と題して、 ヤマハ株式会社の中田卓也社長のインタビューページ が目に止まった。 普段も意識している言葉だったりするんだが、成功している人が同じことを言っていると発言はとても響く。 というか意識しているが実践できていないんだろうな。。 冊子とでも言うのだろうか、冊子自体は廃棄してしまうが印象に残ることは記憶に留めたい。なのでメモを残すことに。 以下は抜粋した個人メモになります。多少要約している部分もあり原文そのままをコピーしているわけではありません。 やれることと、やらないことの判断をすること。 やれるからやるのではなく、この商品に必要なことはやる。 逆に、不必要なことは切る。 その取捨選択が大事。 その見極めが企画する人間の勘どころです。 特に今の会社でこれができていなく身に染みた。 上司には捨てなければならないことの話をしているが、実行できていないのは上層部の責任だと思っていた。しかし私の力不足もある、説得力不足もあると思った。 ただ、一人でできる限界もあることは事実。 その時の対処法を私が知らないんだと思う。 平社員だった中田氏はヒットしたQY10の企画後もリーダーとして新たな提案を重ねるが 管理職たちは時に黙っていなかった。 提案はいいが、一体誰が責任を取るのか・・・。 →私が責任をとります。 私が取る、と言い切れば、それならいいよとなった。 でもやるからには、やり切るために必要なことを全てやるという信念と使命感があった。 責任をとると思っている人は多々いると思う。 私もそう思って仕事をしている。 しかし、必要なことを全てやっているのか? そう言われると妥協や自分の思い込みの範囲で動いていると思う。 信念と使命感は自分なりにで妥協があるんだと思う。 これが成功者と一般人との違いなんだと思う。 事業部合併の経験を経て この組織再編のをきっかけに組織は決め事であるとの確信を得た

S3のマウントと起動時設定

S3のマウントとインスタンス起動時マウント設定 前提として今回環境は EC2・amazonLinux2での作 成です。 マウントするバケットを作成 AWSコンソールで作成(特にbucketのアクセス制限は気にしない) 例:mount-backet IAMでcliで利用するユーザーを必要であれば作成 ここの説明は省きます。。 s3fs-fuseをインストール # sudo amazon-linux-extras install epel # sudo yum install s3fs-fuse マウントの設定 # sudo vim /etc/passwd-s3fs 追記>> {bucket-name}:{アクセスキー}:{シークレットキー} # sudo chmod 640 /etc/passwd-s3fs マウント実行のshellを作成 # cd ~ # touch s3fs-mount.sh # chmod u+x s3fs-mount.sh # vim s3fs-mount.sh ファイルの内容 #!/bin/bash s3fs [バケット名] [マウントポイントのディレクトリ] -o allow_other,use_cache=/tmp,uid=[UID],gid=[GID],passwd_file=/etc/passwd-s3fs ※ユーザーを指定する id -u username id -g username で得られるユーザーIDやグループID # sudo ./s3fs-mount.sh マウントがされているかどうか確認 # df -h インスタンスの起動時に自動でマウントされるように設定する # vim /etc/fstab >> s3fs#[バケット名] [マウントするディレクトリ] fuse allow_other,use_cache=/tmp,uid=[UID],gid=[GID],passwd_file=/etc/passwd-s3fs 0 0 ※速度的にはgoofysが早いらしいので今度はこちらも試してみたい。

初めてnodeサーバを構築してiOS/OSXでバックエンドのリクエストがエラーになったメモ

nodeサーバを構築してiOS/OSXでバックエンドAPIのレスポンスが取れなくてはまったメモです 前提として 環境は ロードバランサ AWSのアプリケーションロードバランサ 1台 フロント(nodeサーバ)AWS EC2 1台 バックエンド(apache2.4) 1台 DB AWS RDS 1台 こちらの構成です 発生した事象 は、iPhone/Macでページ表示の際に APIからのデータが反映したりしなかったりする ことがあるというもの 例えばTOPページの新着ニュースの表示がされたり、データが取得できずに新着ニュースが表示されなかったりといった感じの事象でした 調べてもあまりわからなかったんですがchromeの開発者ツールでエラーが出ているのを確認してググりました あまり同様の事象の人は出てこなかったんですが 一人だけドンピシャの事象を記事にしている人を発見!! これは本当に感謝です!! 参考にさせていただいた記事はこちら AmazonLinux2のhttpdをALB経由で公開するWeb環境で発生していた、SafariのHTTPS接続エラーを改善してみた 本当に助かりました!! ポイントは運用が始まってしまったのでどれとどれで発生条件になるか詳細まで詰め切れてはいませんが確認ポイントは以下だと思います ALB(application load balancer)を利用している apacheやnginxでリバースプロキシを利用したリクエストである apacheであればHTTP/2のモジュールが有効になっている になります これは今回トラブったサービスで全てはまりました 参考サイトにもあるように レスポンスヘッダ情報 に Upgrade: h2,h2c が含まれているとレスポンスが正常に受け取れず表示されないという事象でした ブラウザの開発ツールで確認するとネットワークでエラーが出ているのがわかり こんなエラーが出ていました Failed to load resource: 操作を完了できませんでした。 プロトコルエ ラー 参考サイトにもあるように http2モジュールを無効 にして解決しています 参考サイトはyum update

はじめてfavicon設定した!!

はじめてfavicon設定した!! お恥ずかしながらサーバサイドエンジニア歴13年にして はじめてfavicon設定 しました! 基本的にはプログラムよりな作業を主にしているので今までは基本的にフロントコーダー任せでしたが今回は人出も少なく。。。。それにnodejsでnuxtを使ったので、htmlに記載するのではなくnuxt.config.jsに記載をしたのでメモしておくことに。。 まぁプラスに考えて自分でやる仕事を(できる仕事)どんどん増やしています まずは favicon から、こちらはHTMLに記載する場合は <link rel="shortcut icon" href="イメージのパス"> これで設定できるみたいでこれですら 初耳学 これを nuxt.config.jsに記載 するとこちら link: [ {rel: 'icon', type: 'image/x-icon', href: 'イメージパス'}, ] なんかfavicon画像もらったら一緒に180x180の画像がついてきたのでこれ何?って聞いたらスマホとかでHOME画面にブックマーク置けるらしくその画像だと。。 せっかく作ってくれたのでこちらも設置してみました!! <link rel="apple-touch-icon-precomposed" href="イメージパス" sizes="180x180" /> んでこちらをnuxt.config.jsに記載 link: [ {rel: 'apple-touch-icon', sizes: '180x180', href: 'イメージパス'}, ] apple-touch-icon-precomposedとapple-touch-iconの違いは古いiOSで光沢をつけるらしくそれをしないようにするのがapple-touch-icon-precomposedみたいです なんだかいろいろ便利な世の中になってきているな。。

goose DBマイグレーションツールをインストール

goose DBマイグレーションツールのインストール おおよそDBマイグレーションツールはgooseを使っているんだけど いつもgooseをインストールするのを忘れてしまうのでメモ。。。 基本的に自分用にdockerにインストールする想定手順 ・管理者権限(root)をもっている ・今回はcentOSで既存プロジェクトに対してのインストールなので不足パッケージがあれば都度インストールする 今回のインストール環境はdockerにインストールでwgetとvimがなかったのでインストール # yum install wget vim 公式サイトから最新のバージョンのURIを確認します https://golang.org/dl/ ※ここに表示されている環境に合わせたダウンロードファイルのリンクURLをコピー dockerのコンテナにログインする $ docker exec -it container_name bash ※どこで実行するかいつも悩みますがユーザーのホームディレクトリで実行します go言語をインストール # wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz # tar xvzf go1.11.2.linux-amd64.tar.gz PATHを追加 ※.bash_profileに追加しても反映しなかったので.bashrに記述しました ちなみにdockerにログインする際に $ docker exec -it container_name bash --login の --login オプションつけると.bash_profileも読み込まれました ただコンテナにログインする際に毎回つけるの面倒だから.bashrcに素直に書きました ここら辺はあとで調べることとします # cat "export PATH=$PATH:$HOME/go/bin" >> .bashrc ※こちらは私の環境に合わせての記載なのでそれぞれに合わせると思います goose のインストール # go get bitbucket.org/liamstask/goose/cmd/goos

質問されて基本的なphpとtemplate、レスポンスとJavascriptについて描いてみようと思います

イメージ
サーバサイド言語とjavascriptの基本的なイメージを描いてみようかと思います 今回は cakePHP3.4,apache2.4 シンプルなWEB環境でのお話 先日私の隣の席の子が、 本当はデータがないはずなのにデータが入ってるんです! なんでですか? そんなはずはないんです! どうしてですか?? と 怒涛の ???を投げられて私も困ってしまい。。 困ったのは???を連続で来られて困っただけです。。 本物のコードは会社のものなので記載はできませんが ざっくりイメージ的にはこんな感じです。 ※formタグとか省略多いですが汲み取ってください 何がしたいイメージかというとformのテキストフィールドに入力すると、javascriptのhoge関数が実行されてPHPの変数 $val に $hogeが代入される というのが隣の席の子のがメージする動作 多分ここまでみてあぁ〜と思う人もいるかもしれませんが話を続けます。 基本的にPHPはプレーンな感じで書いていくと ファイルはhoge.phpとします <?php $hoge = "hoge"; ?> <html> <body> <?php echo $hoge; ?> </body> </html> とファイルを作ればブラウザでhoge.phpにアクセスすると hoge と表示されるはずです。 cakePHPを使っているとctpを別で作成していますが、クライアント(ユーザー) に送信する際は ctpを読み込んでphpタグで囲まれた処理を行いHTMLファイルとして送信 されます。 つまり先ほどの例でいうとctpでPHPの変数を代入していますが、 サーバサイドの処理の時点で $valには$hogeの値が代入されそれ以下の記載処理に使われます それをcakePHPはクライアント送信用のHTMLファイルを(ファイルというよりHTML宣言された出力)作成してクライアントに送信 します。 クライアントは受け取った出力を ブラウザに表示します。 ここでポイントはJavaScriptはクライアントで解釈されて動作するも

docker for windowsでローカル開発構築にはまったこと2019/06

新卒社員に環境を作ってもらったら私がはまったことが ないところでつまずいていてヘルプ! 環境はこんな感じです windows10 enterprise docker for windows ノートPC ちなみにCPUは intel core-i5 メモリは16GB 個人的に朝の起動が遅いし、開発アプリケーションを開くのも自販機でジュース買えるくらい。。。 PCを選択している選定者が働く側の仕事を理解していないと満足できるものを支給できないなって改めて思いました ちなみにここらを予算だけで判断して選定している人はブラウザとMicrosoft officeくらい。。。 ※すいませんぐちです さて余談はおいておきましょう!! 世の中は4月入社の新入社員が色々な研修を終えて配属先が決まってそれぞれの道を進み始めている頃だったりするのではないでしょうか? 私は教育にはそこまで携わりませんが。。。 基本的な考え方はこのように思っています 【生産物をあげてもらい成功体験を作る】 というのが基本的な考えにあります ですので、各自が開発するプロジェクトの環境構築は数分〜1時間くらいでできるようにするのが目標で、この構築手順でできるかまたはできなくても誰かの助言でできるのが1時間程度であれば、サクサクとプログラムを書いていってもらって生産物をあげて働いている実感を持っていってもらいたいなって思っています なので早速環境作りをしてもらいあらかじめ見つけてあった修正項目を対応してもらおうと。。。 しかし!! てかそもそも、 docker for windowsがそもそも起動 しない??! はぁ、、、 またWindowsか、、、 ※すいません、私はあまりにも支給されたWinPCにトラブルが多いのでMacを使っていて基本的に構築〜いままでにトラブルがないので個人的な感想です と思いながらそのPCを預かってエラーを見ながらWEB検索 するともしかすると… という記事が見つかりました Docker for Windowsで起動エラーが起きた場合の対処 解決策のところで問題なく起動しました!! こちらで起動周りは解決しました!! ありがとうございます!! ということで できたよ!続きやって〜

新しいキーボードを手に入れたよ!!

イメージ
新しいキーボードを手に入れました!! というより組み立てました!! ErgoDash!! こちらは音などピンク軸をご堪能ください。。 今回は 遊舎工房 さんで選んで その場で組み立て がしかし 一緒に行ったメンバーがいたので時間の問題があり、ハンダつけ以外は私のキーボードは自宅で動作など確認することになりました 私が購入したのは ErgoDash になります こちらの親指なしでキースイッチも光らないものなので、抵抗もつけずといったセットです キーキャップがこちらの MDA Big Bang にしました スイッチとキーキャップやキット本体を合わせて合計25,000円ちょい 購入後に遊舎工房での組み立てが2時間で500円ですがなんだかんだで2時間を超えて合計1,000円になりました ちょっとお高めでしたが後からの記載するトラブルにも対応できたり部品交換ができるので長いお付き合いができるかと思いました 購入したのはこちらですね ビルドガイド に従い組み立てをしていきます キットの内容はこちらです 基盤とアクリルのカバー、そしてダイオードやpro microというマイコン、リセットスイッチ、TRRSジャックなど これに 別売りのキースイッチとキーキャップ 、 TRRSジャックに挿すコード を買いました 工房ではハンダこてや、誤ってハンダ付けしてしまった場合のハンダ吸い取り機なども使い放題で、もちろんその他工具や消耗品のハンダなども使っていい感じです こんな感じでハンダを付けていきます オススメはダイオードを全部挿してしまって方向と場所を確認、それでひっくり返して一気にハンダを付けていくのが一番効率的かと思います さて テキパキとハンダを付けていき左右両方つけてTRRSジャックとリセットスイッチをつけたのがこちら ここからスタビライザーとキーキャップ、pro microを取り付けましたが ここで他のメンバーが組み立て終わりそして時間切れということで帰ることになりました さて残りは家でということですが、お店でpro microまでは取り付け完了していたのでアクリル板を取り付けるだけ

cakePHP3の.htaccessでrewriteできなくてはまる。。。③

cakePHP3でconfにrewriteの設定を記載したのに 効かなくて困った 今回で最終です。。 なんだかんだこの関連で3回も記事を書いてしまいました 前回まではこのタイトルに至るまでの経緯と行った作業をつらつらと書いてきたのですが ここで問題が発生しました それは、virtualhost.confに記載したこの部分です         RewriteCond %{REQUEST_URI} !^/img/${project}         RewriteRule ^img/(.*)$ img/${project}/$1 [L] これの意図は、イメージはそれぞれの管理者(企業)のイメージになるため既存仕様ではイメージディレクトリは複数に対応していないので意図する管理者(企業)の画像が登録されなかったり、意図しない画像が上書きされてしまったりいてしまいます ですので管理画面はそれぞれのproject_codeのディレクトリ階層に登録されるように変更しました さて登録は問題なくなりましたが、参照にも手をいらなくてはいけないわけです このサービスは、android/iOSのアプリを利用するサービスで、こちらも管理者(企業)ごとに作成されます。しかし、画像のパスも管理者(企業)が増えるたびに内部の画像パスも変更しなければならないことになり、アプリの初期コストに少なからずなります さらにはそれぞれの記載をしていればミスも産まないわけではわりません そこで、virtualhost.confに先ほどの記載をして元々のイメージパスにアクセスしてきたら、アクセスドメインで画像のパスをイメージパスの下に作成したプロジェクトコードの下に置かれた画像を参照するようにしようとしたわけです しかしここで意図しない挙動になりました apacheを再起動してアクセスすると、project_codeでURLは書き換えられてアクセスしますが、さらにまた書き換えてを繰り返してしまうのです アクセスログを確認するとこんな感じです https://domain.com/project_code/img/top.jpg https://domain.com/project_code/pr

cakePHP3の.htaccessでrewriteできなくてはまる。。。②

cakePHP3でconfにrewriteの設定を記載したのに 効かなくて困った 先日の続きです 先日は対応に至った経緯を記事にしましたが 今回は何に困ったかに到るまでの作業編を書いていこうと思います さ今回の対応の概要ですが cakePHP3/apache/mysql/amazonLinux 今は管理者(企業)と利用ユーザーのシステなんですが 管理者(企業)は一つの環境構成に一つしか存在できない設計です 利用管理者(企業)企業が増えるたびにサーバなどの環境が無限に増えていくこの状況では運用コストもランニングコストも増え続けて利益とコストは比例型という状況を解消すべく今回は今まで一つの管理者のところ複数の管理者が共存できるように改修するわけです といってもVirtualh Hostを作成してドキュメントルートを別に作成してもメンテナンスコストがかかるのでドキュメントルートは同じで管理者ドメインとDBも同一DBホスト内にdatabaseが増えていくような感じにしました ※本当はdatabase設計も変更して一緒にしたかったんですけどね。。 さて本題です まずは、cakePHP3.4だったのですが環境設定ファイルはconfig配下でdevelop/productionの環境設定の定義が書かれたファイルを置き、environmentというファイルを作りこの中にdevelopと記載されていればdevelopのファイルを参照するって感じでした 独自で作ったんでしょうか? しかも、Git管理されてしまっているのであんまりよろしくもありません。。 とりあえずこのままでは一つの管理者(企業)に用意した環境の設定した記載されません 今の状態でconfig/bootstrap.php記載されている記述をカスタマイズして複数設定を出来るようにしても良かったのですが他のプロジェクトで言語は違いましたが環境変数を使った設定をしたくこちらでも実装しようかなとそちらで対応することにしました そして導入したのがこちら Dotenv 基本的には、config/.envというファイルを置いて、Git管理外にしてとかするんですがそれだと元のまま一つしか設定はできないのでちょっとカスタマイズしました ちなみにこの導入に一番参考になり

cakePHP3の.htaccessでrewriteできなくてはまる。。。①

cakePHP3でrewriteではまる... とあるプロジェクトに携わっていてrewriteが効かなくてはまりました。。。 この作業をやるきっから。。。 サービスは、管理画面とユーザーアプリのシンプルなもので BtoBtoCサービスになります 基本的に私どもがサーバやアプリなどを企業様に提供して、企業様のサービスとしてユーザーが使うといういたってありきたりなスキームなのですが 私がアサインされた時点で、営業が企業様とサービス利用の契約をしてきて そこから、その企業用の環境構築(WEB/DBホスト、ロードバランサー)をしソースコードの配置、外部サービスの契約をしてテスト確認をし企業様の利用開始となります つまりは 1企業1構成が必要なわけです ぶっちゃけ 愕然としました だって 1クライアントあたりの粗利はおおよそ決まっているので、クライアント数と利益が比例するモデル 例えば極端な話ですが1企業と契約して1人の運用人数が必要であれば、1000企業と契約したら1000人の人が必要になるわけで、 企業数と利益が比例型 です 一見売り上げは伸びていきますし利益も増えていきます しかし増えるのに比例して運用コストなども増えています 環境も増え、作業量にともなう人も増えるのですから アサイン当初からこれじゃあ儲かりませんよと思っていました とシステムを改修したかったんですが1構成に1企業しか登録できないシステムで作られているのをDBの構造変更からプログラムの変更を伴い大きな改修でその工数は会社は準備してくれませんでした そんなこんなで数ヶ月 会社が執拗な原価削減を訴えてきて私の担当プロジェクトはこの環境を増やすスタイルではなく、同じ環境を使うことでランニングコストを下げるという方針を出しました しかし恐らく私の上長は、virtualhostでドキュメントルートを分けてDBを分けてという構想だったと思います 基本的に既存のソースコードは企業ごとの設定(DB情報やメール、決済接続情報など)だけで個別の改修はしない方針 であれば、1000個のドキュメントルートができて変更があればメンテナンス量が増えることになりますので、確かにサーバは抑えるのでランニングは下が

前回の続きでPHP7.2 とcrud4.4.4でエラーで困ったことをメモしておきます

PHP7.2 とcrud4.4.4でエラーで困ったことをメモっておき解決した結果メモ 前回の続きです ( PHP7.2の環境で、既存プロジェクトの横展開で新しいサービスを対応したときに躓いたのでメモ① ) エラーログから、PHP7.2とcrud4.4.4のバージョンが合わないということで一旦、PHP7.1にダウングレードしてその場限りを乗り越えたところから。 PHP7.1にダウングレードしたけれども、セキュリティーアップデートも2019/12/01に終了することからこのままでいいわけがありません。 ということでまずはローカル環境で動作を確認してPHP7.2に対応させていきましょう! PHP7.2(cakePHP3.4 apache2.4) node.js mysql5.7 という環境をまずはdockerで再現して動作確認をしてみることに。。 ということでまずはまんまと出ました前回のエラーです PHP Fatal error: Cannot use Crud\\Core\\Object as Object because 'Object' is a special class name in /var/www/html/vendor/friendsofcake/crud/src/Listener/BaseListener.php on line 4, referer: http://domein 調べるとPHP7.2だとcrudのバージョンが5だとな composer記載のcrudが以下なので "friendsofcake/crud": "~4.3", こちらに変更 ↓↓↓↓↓ "friendsofcake/crud": "^5.0", してみました ちなみに、PHP7.1のままCRUDをバージョン5にするとこんなエラーが出ました # composer update crud Problem 1 - The requested package friendsofcake/crud (locked at 4.4.4, required as ^5.0) is satisfiable by friend

PHP7.2の環境で、既存プロジェクトの横展開で新しいサービスを対応したときに躓いたのでメモ①

cakePHP3.4とPHP7.2でAPIを作ったら躓いたのでメモ 今回、新規プロジェクトを担当していざ納品前の確認で社内公開せねばというステータスになったら、ローカル環境から開発のサーバーに設置してみて動かないという事態に。。 今回のローカル環境要件 dockerで以下を構築 apache2.4(php7.1 cakePHP3.4) node.js mysql5.7 なぜこの環境かというと、納品までの時間があまりにもなく既存のプロジェクトを焼き回しで使える部分は使って工数を削減しないとならないということで既存の環境要件に合わせてこちらで開発をスタート なので既存と同じ環境で作り始めました うちは開発サーバーからステージングサーバー、本番サーバーはサーバー管理チームに依頼して作ってもらいます なので、〇〇プロジェクトと同じ構成で!って依頼して作ってもらっていました さて、慌ただしい開発で納品前の社内確認をということで開発サーバーにソースコードを移して動作確認しよっと! と思ってソースコードを配置してアクセス! ん?なんかアクセスできないし!! とりあえずエラーログを見る でとる〜 エラーでとる〜 するとこんなエラーが PHP Fatal error: Cannot use Crud\\Core\\Object as Object because 'Object' is a special class name in /var/www/html/vendor/friendsofcake/crud/src/Listener/BaseListener.php on line 4, referer: http://domain どうやらPHP7.2でcrudのバージョンを5以上にしないとダメよってことらしい。。。 ちなみになんでエラーなのかの参考にしたのはこちらで https://github.com/FriendsOfCake/crud/issues/565 ん?PHP7.2ってなん?? 〇〇プロジェクトと同じ環境って言ったやん!! どうやら開発サーバーはリポジトリの標準パッケージのPHP7.2をインストールしたらしい。。 うちのサバ管そういうとこあります。。 こちらの意図を伝えてるのにそうならない。。 まぁねPHP7.

私のMacBookの設定日記

私のMacBookの設定日記 基本的に新しいPCを買うと不要な物を引き継ぎたくないということで(なんとなくクリーンにして使いたいというきもちがありまして。。) 今回、整備品のMacBookPro(2017)を購入したんですが、以前購入したのが2013 MacBook airで期間も経っていてそのまま引き継ぎたくないな、でも移行したいアプリケーションもあるなって思ったり。 とりあえず購入時にやったことを記録に残すのとMacの便利機能をメモっとくページになります。 2019/03/23現在で入れているアプリケーション 開発に使っている関連 Docker For Mac Xcode Android Studio iTerm2 postman fortiClient Visual Studio Code GitKraken Clipy SNS連絡ツール系 Slack Line Skype ブラウザ Google Chrome 購入アプリケーション Affinity Designer イラストレーターみたいなやつ。つかこなせていない。。 各種設定 ターミナルで大文字・小文字を無視してTab補完 echo "set completion-ignore-case on" >> ~/.inputrc 画面動画キャプチャツール GIPHY CAPTURE これなんですが、例えば検証で再現手順などをアニメーションGIFにできたり動画にできるので便利です。 日本語のライブ変換が好きではないので変更 システム環境設定⇨キーボード⇨入力ソース ライブ変換をOFF 仕事に使うので画面ロックは簡単にしたい システム環境設定⇨キーボード⇨Touch Barをカスタマイズ 画面ロック(鍵マーク)を画面下にドラッグアンドドロップ 基本的にiTunesの保存先は外部HDDに逃しているので変更 iTunes環境設定⇨詳細 【iTunes Media フォルダの場所】を外部のHDDドライブに変更 あとはショートカットを忘れてしまうのでメモ ※ちなみに私は純正キーボドではないUS配列キーボードを利用

CakePHP3でHTTPSにする

CakePHP3でHTTPSにする 表題の件ですが、以前も同じような記事を書いています。 ELBで80番ポートアクセスをしていたのですべてのアクセスを443番ポートにアクセスさせる しかし、基本的にHTTPアクセスしていたものをHTTPSでリダイレクトさせているだけです。 以前対応した時は、AWSのELB(Elastic Load Balancing)で80番ポートも443番ポートも解放していたので、80番でアクセスしてきたものを443番でリダイレクトして解決させたのです。 がしかし、今回この構成をベースに新たなサービスの開発をする際にハマりました。。 環境自体は私が構築しないので、サーバー管理に依頼して出来上がってきた時に一言添えられていました。 【HTTPアクセスは推奨しないのでHTTPSしか許可していない構成です】 まあ、HTTPSなんて当たり前だから気にもせずコードをGITからcloneして配置 アクセスしてみると、以前と同じようにHTTPSからHTTPに切り替わる と言うことでhttpd.conf(正確にはvirtualhost.confですが)に以前やった対応を記載してgracefulをしてみると、ログインフォームからログイン時にログイン成功しているけれどもTOPページが表示されず、、、 どうやらリダイレクトしているっぽい、、、 TOPページのURLを直打ちすればログインしている状態で表示されます。 その状態で、ログアウトするとまたログインページが表示されずにグルグルとアクセスしようとしている感じがありますがページは表示されません。 少し調べると、なんとなくわかりました。 発生している場所は、CakePHPでリダイレクトしている箇所です。 その時点で気付きました。。 今回はELBは443ポートしか解放されていません。 リンクやFORMは相対パスなので現在アクセスされているプロトコルで遷移していきます。つまりはTOPから設定メニューのリンクはHTTPSでアクセスしていればHTTPSで遷移していきます。 しかしリダイレクトはリダイレクトURLを生成して転送をかけるので、ここでどうやらHTTPでURLを生成してリダイレクトし

うちのルンバをレポート

イメージ
うちにルンバが来ました! 全く技術とは関係ないお話です。というか最近は業務が多忙すぎて新しい技術に取り組めていないのが現状なので、、気になったことやいいと思ったことは記事にしちゃえって感じです。。 ということで今回はルンバについてです。 うちにルンバが来て2ヶ月 はじめは休みの日にずっとルンバを見つめるばかりでしたが最近は仕事に行く前にルンバを動かしてみたり、ルンバを動かしながら顔を洗ってみたりとしています。 そうやって使ってみてルンバっていいなと思ったので記事に うちのルンバはジャパネットオリジナル はじめはジャパネットオリジナルと知らずに注文してしまいました。。とほほです。 購入時の情報は ルンバ800シリーズ 上位モデルがこの値段で! という売り文句につられて買ってしまいました。 ちょうど昨年の9月に引越し、部屋の収納が多く部屋をフラットに使えるのでルンバがあってもいいなと思っていました。 さらに引っ越した頃に訪れた友人の家にルンバがあったので『いいなぁ〜』なんて思っていたらジャパネットであの売り文句。調べると800シリーズでこの値段(税抜きで3万7千円くらい)なら安いなぁ、いいなと思ってしまいましたが色が好みでなく悩み購入をためらっていると売り切れに。。。 でも予約販売ということで同じ800シリーズの色違いが同じ値段で販売されていました。色も好みでしたので即決定。 しかし到着は2月(購入時は9月末)ということで首を長くして待つことに。 それが早めに届いたんですよね。 昨年の12月初旬に と言うことで届いてから2ヶ月使ってみました! 届いてまず思ったのが、上位モデルって言っていたんでWiFiモデルでアプリ操作できるんだろうなと思っていらたら違かったのでちょっとがっかりしました。 まぁ製品仕様もそこまでみていなかったので私の甘さ。 公式サイトで調べましたが800シリーズと言っても色々あるんですね。 890モデルはWiFiモデルでアプリ対応なんですが、そのほかの800シリーズはみる限りついてなさそうです。ここはジャパネットで買うときにどのモデル相当かがわかりずらかった。。 おそらく付属品などから察するにジャパネットで購入したルンバ(ジャパネットの型番で R878060)は公式モ

会社の会議を変えたいと思って考えてみた

イメージ
転職してからもそうだけど会社の会議ってもっと効率よく効果を出していった方が良いと思う! 以前の会社の時もそうだけど、会議やミーティングって人数を使ってやっているのに人数分お時間だけは使っているのに結果なにができるようになったの?? って思っていて80%の人が発言しない、決まった事が実行されているのか確認されていない、何かあったからとりあえずミーティングなど本当に必要なのか疑問なところがかなりありました。 8月に転職することをきっかけに自分がスキルアップしていないと、期待値に自分がなっていないと恥ずかしいなと思いました。そこでひとつの本を買ってみたところ、それが物語り形式なんですがわかりやすくて実践しやすいなと思い今の会社で発表しました! 第2回に分けますが初回は今実践できることを発表したので自分のブログにもまとめたいと思います。 ちなみに購入した本はこちら (amazonへリンクしています) 会社ではスライドで発表したんですけど、ここではざっくり何で変えようとしているのかとまずはなにをやっていこうとしているのかをまとめときたいと思います。 ただ第一弾は今から実践できることでもうやっているよと言う簡単なことかもしれませんが個人的なメモですのでそこらへんは流してください。。 なんのための会議かそして何を決めなければならないのかを明確に 会議の時間も生産をしていなければ業務とは言えません、毎週定例だからやっているや、何か問題がありそうだからとりあえず集まるでは効率的な生産ができるわけがありません。 その会議で何ができるのか?それを明らかにして取り組むほうが意識が統一されます。 例えば定例会議は定期的な期間に発生したことの周知や進捗の確認だったりします。発表だけでなく参加者やまたはチーム内に周知できて初めて意味のある会議だったことになります。 なんか問題ありそうだからだからミーティング。。。これは何かを明らかにする目的ですね。 事前にアジェンダの共有や資料の共有をしておく その会議に参加する人たちが何を話すのかわかっていないのに参加している場合も今まで見てきました。。私もなぜ参加しているのかわからない会議もありました。参加するにあたりの意識や準備を事前に共有することにより高めることができるかもし

今年の目標を決めました!!

2019年の目標を決定!! 元旦に打ち出したいのですが、ここ何日か考え行動までし始めているのですが 本年度の目標を決定いたしました!! ベースを練習して弾けるようになり友人か誰かとセッションする 盆栽の育て方を学び30年計画の基盤を作る ダイエットをする 釣りに行って動画撮影もして配信 技術情報も発信する 配信できるものは配信して口先で言っていたYouTuberを目指す 1 ベースについては酔った勢いとはいえ購入したものをそのまま放っておくのは心が痛むので練習します。そしてYouTubeをみてベースは上手くなるのかをテーマにして実践。その過程を報告していきたいと思います。 ちなみに何の曲を弾きたい等はないので困り者です。。 2 盆栽についてはきっかけはオフィスで季節感を感じたくて買ったんですがオフィスは暖かく紅葉せず。。 家に持ち帰り2年目を迎えますが多忙で水をやり忘れ、苔はカピカピにしたりもあり紅葉というより枯葉のように… 3年目の昨年は多少紅葉感はありましたが色は茶色でしたので今年は真っ赤な紅葉をお家で見れるように育てます。 と同時に魅せる盆栽の技術を少しでも身につけて実践します。 3 ダイエットについては昨年末の健康診断で総コレステロールが要精密検査の判定を受けたことによる危機感から運動して体重をコントロールしてみようと言う試みです。 ずっと66キロ前後の体重だったのですが40歳を超えて今や72キロくらいに。。 体重=コレステロールではないとは思いますが、お酒をちょびっとだけ控え運動くらいで体重とコレステロールは戻せるのかを確かめるべく挑戦したいと思います。 体重目標は68キロにします。 4 釣りについては一昨年になるでしょうか『釣りよかでしょう』というYouTubeのチャンネルをみてものすごく楽しそうで釣りを始めました。そして自分も釣り動画を配信するんだと心に決めたんですがなかなか釣り自体にまめに行くことができず。。 今年は釣りに行く機会を増やして動画配信をしたいと思います! 5 技術発信については基本的に職業はWEBのエンジニアですので本業での技術発信をブログや自信ないですけど登壇できる機会があればやってみたいかなと思います。 この部分で人に役立つ発信