投稿

php_modが非推奨になったのね

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

質問されて基本的な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.j...

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