投稿

php_modが非推奨になったのね

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

PHPプロジェクト構築する時にいつもcomposerのインストールではまる件

PHPのcomposerをインストールする際に参考にするもの だいたいインストールする時にGoogleさんで検索します 例えばこんな感じで php composer インストール しかしヒットするのはおおよそブログ記事だったりします。 でもその通りにやってもだいたいすんなりとインストールすることができなかったりする場合があります。 原因は php -r "if (hash_file('sha384', 'composer-setup.php') === '*********') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" *の部分が記事の記載当時そのままの場合があるのです。 こういったものは個人の備忘録だったりするので、こうやったらできるんだとコピペしていくとなんで?っとなります。 しかし、よくみるとIF文のelseに処理が入っていて、 echo 'Installer corrupt'; が出力され composer-setup.phpがなくなっています。 *の比較はなんなんだ!! って結局なるので 素直に最初から公式サイトを見てしまえばいいんだってことを言いたいだけです😆 composer公式 インストール方法を解説とかいうブログより真先にここをみるべし!! 普通にわかりやすいし確実です!!

AWSのS3バケットをマウントするs3fsでマウントが外れた件

s3fsでマウントが外れた件のお話し ネットで検索すると予期せずマウントが外れたなんて記事を見かけてて そんなことあるの〜?? うちは大丈夫でしょ! なんて鷹を括っていましたが なんと起きてしまいました。。。 しかも本番で… まぁ起きてしまったことはしょうがない。。 一応発生した時に再マウントしようとするとエラーがでますのでそれも参考に備忘録しておきます。 発生 A:すいません今大丈夫ですか?? 私:ええよ〜 A:なんか画像が表示されないんです。 私:大丈夫ですか言っとる場合やないやん!! ということで事象の認知がされました。しかも本番です。 インスタンスにログインして確認するとこんな感じです。 ※うちは大量のユーザーごとに登録するイメージファイルをイメージディレクトリとS3バケットをマウントすることでEC2のイメージボリュームを抑えるようにしていました。 # cd /image_dir # ls -a # イメージが入ってなぁーい!! AWSのコンソールからS3のバケットを見るとイメージはある ということでマウントされているかの確認 # df -h df: `/image_dir': 通信端点が接続されていません 通信端点が接続されてないってどういうこと? と思いながらマウントを試みる # s3fs bucket-name /image_dir -o allow_other,use_cache=/tmp,uid=48,gid=48,passwd_file=/etc/passwd-s3fs s3fs: unable to access MOUNTPOINT /image_dir: Transport endpoint is not connected ※uid,gidはアパッチ操作なのでそのIDです。 エンドポイントと接続できないと。。。 なんだかこれが出る理由はいろいろあるらしいのですが、意図せずマウントが外れているがNFSではマウントしている情報が残ったりのようなことだったりいろいろ。。。 今まで見てきた記事によるとマウントできない場合は 一度アンマウントしてからマウントすれば成功するよ!! ってことなので、一度アンマウントし...

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...