投稿

php_modが非推奨になったのね

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

Reactを初めて触ってみました(tutorialその⑤)

Reactを初めて触ってみました(tutorialその⑤) このページはReact公式ページのtutorialを体験したメモと初心者なりの解釈を記述したページになります。 前回は、カプセル化されたSquareの状態を保存するところをやりました。またその続きと先に進めたいと思います。 翻訳どおりに記述すると 不変性が重要な理由 前のコード例では、.slice()演算子を使用して変更を加える前に四角形の配列をコピーし、既存の配列の変更を防ぐことをお勧めします。 これが何を意味し、それがなぜ学ぶのが重要な概念なのかについて話しましょう。 一般に、データを変更するには2つの方法があります。 最初の方法は、変数の値を直接変更してデータを変更する方法です。 第2の方法は、所望の変更も含むオブジェクトの新しいコピーでデータを置き換えることである。 突然変異によるデータ変化 var player = {score: 1, name: 'Jeff'}; player.score = 2; // Now player is {score: 2, name: 'Jeff'} 突然変異のないデータ変化 var player = {score: 1, name: 'Jeff'}; var newPlayer = Object.assign({}, player, {score: 2}); // Now player is unchanged, but newPlayer is {score: 2, name: 'Jeff'} // Or if you are using object spread syntax proposal, you can write: // var newPlayer = {...player, score: 2};var player = {score: 1, name: 'Jeff'}; 何を説明しているのかというと、このゲームでは履歴を保持していてクリック操作でその時の状態に切り替えする機能があるので、突然変異のデータ変化では状態を上書きするためにそれができずコ...

Reactを初めて触ってみました(tutorialその④)

イメージ
Reactを初めて触ってみました(tutorialその④) このページはReact公式ページのtutorialを体験したメモと初心者なりの解釈を記述したページになります。 さて前回は、属性に値を付与してクリックアクションで再描画するところをやっていましたが前回からの続きになります。 ちょっと途中で開発者ツールのことが書いてあったので訳を載せておきます。 開発者ツール React DevtoolsのChromeとFirefoxの拡張機能を使用すると、ブラウザのdevtoolsのReactコンポーネントツリーを調べることができます。 これにより、ツリー内の任意のコンポーネントの小道具(prop)や状態を調べることができます。 インストールしたら、ページ上の任意の要素を右クリックし、「Inspect」をクリックして開発者ツールを開くと、Reactタブが最後のタブとして表示されます。 私の場合は開発者ツールのconsoleにreactのプラグインツールURLが出ていたのでクリックしてインストールしました。(chromeです) インストールすると開発者ツールのタブメニュー右側にreactメニューが追加されていました。 ではtutorialの続きに入ります。 リストのステータスに付いて進めていきます チック・タック・トゥ・ゲーム(このtutorial)のための基本的なビルディング・ブロックがあります。しかし今は、状態は各Squareコンポーネントにカプセル化されています。 完全に機能するゲームを作成するには、1人のプレイヤーがゲームに勝ったかどうかを確認し、XとOを交互に配置する必要があります。 誰かが勝ったかどうかを調べるには、正方形の要素に分割するのではなく、1つの場所に9つの正方形のすべての値を設定する必要があります。 みたいなことが書いてあり続いてWEB翻訳ではちょっと理解できない内容だったのですっ飛ばします。 とりあえず見る限りは順番と誰がクリックしたかボードの状態を保持してクリックでどのマークかをSquareコンポーネントで枠の中を書き換える手順を進めるみたいです。 ここで、正方形がクリックされたときの動作を変更する必要があります。 ボードコンポーネントに...

Reactを初めて触ってみました(tutorialその③)

イメージ
Reactを初めて触ってみました(tutorialその③) このページはReact公式ページのtutorialを体験したメモと初心者なりの解釈を記述したページになります。 さて前回ではサンプルからそれてコンポーネントクラスとレンダリング、htmlの理解を自分なりにしましたがサンプルコードへ戻ることにします。 サンプルコードは③つのコンポーネントを持っています。 Square(四角単一のボタンをレンダリング) Board(9つの四角をレンダリング) Game(プレースホルダをボードにレンダリング※後で説明するよとのこと) まずboardコンポーネントからsquareコンポーネントに値propを渡すようにコードを変更していきます。 構成を見て理解していくと Gameコンポーネントクラスで <div className="game-board">   <Board /> </div> となっており<Board />となってることでBoardコンポーネント要素をレンダリングしているということだと思います。 Boardコンポーネントで<div className="board-row"></div>がありここで一つの四角をレンダリングしているrenderSquareメソッドがあります。 renderSquareメソッドは<Square />の記述によりSquareコンポーネント要素をレンダリングしているということになり9つの四角が形成されているというわけですね。 次にSquareのrenderメソッドを変更して、{/ * TODO * /}を{this.props.value}に置き換えてその値を表示してみましょう。 ということでBoradコンポーネントで一つの四角をレンダリングしているメソッド this.renderSquare(0) これの引数をSquareコンポーネントのvalueにセットします   renderSquare(i) {     return <Square value={i} />; ...

Reactを初めて触ってみました(tutorialその②)

Reactを初めて触ってみました(tutorialその②) 前回もお話したとおり社内で別チームの人から自分の市場価値を上げたい、今のまま自分の業務をやっていては駄目なのではないかとということで私も業務没頭型で世間の波に乗り遅れている手前こんな話は救いの意見。前回に引き続きやっていきましょう! やっとreactを触るの巻ですね。 まずReactを調べて(実際にざっくりしか知らなかったもので。。) React のサイトからとりあえずtake the tutorialに進んでみて理解していこうかなと思います。 話は脱線しますが、PHPエンジニアとして長くやっていてWEBで検索して誰かの書いている同様な例を参考にやってまいりましたが、ひしひしと公式を理解できないと他の作業で理解が深まらなくて駄目だなと思っていて公式から手をつけた次第です。 早速スタートしていきます。 どうやら簡単なゲームに触れるらしいとのこと。 HTMLとjavascriptの知識はあったほうがいいらしくES6とやらも?(しらない。。) 始めるにあたってはブラウザでコードを編集するか環境を作ってやれとのこと 今回はいつもどおりdockerで環境を構築して試していこうと思う・・・っと作り始めたんですが触れるだけならIDEとローカルだけで理解をまずはしたほうがいいのでは?と思い手軽に触れる環境を 前回構築 しています。ですのでlocalhost:3000でブラウザから参照できているところまでできているところからですね。 では先に進みます 次はReact.Componentのサブクラスから始めましょうとのことです。 componentはpropsと呼ばれるパラメータを取り込みrenderメソッドを返して表示するビューの階層を返します。 とのこと 実際にはやらないのですが理解のために概要で説明に書いてあることを実行してみました。ShoppingListをレンダリングしているところをちょっと試してみますね。 class ShoppingList extends React.Component {   render() {     return (       <div className="shoppi...

Reactを初めて触ってみました(tutorialその①)

イメージ
Reactを初めて触ってみました(tutorialその①) 前から触ってみようと思ってたんですがダラダラとここまで来てしまい。。 会社の人間から興味があるんですけど・・・ なんてきたものですから じゃ一緒にやってみよっか! ということになりました。 とりあえずはReactのtutorialでもやってみようかなと早速スタート 環境がよくわからずdockerのコンテナ作ってnode.jsインストールしてとかやってみたんですけど触るだけならローカルでブラウザでお手軽に見たほうがとりあえずいいじゃんと思いIDE(netbeans)で触れるようにしときました。 では tutorial を進めていきます。 前提としてはmacにnode.jsをインストールして # create-react-app my-app でプロジェクトを作り既存のソースとしてnetbeansでプロジェクトを作成しました。 # rm -f src/* でファイルを消してからsrcの中に index.css を作成 index.js  を作成 多分、create-react-appでデフォルト構成のindex.htmlはそのままでroot要素は存在しているはずなのでこれで準備はできました。 netbeansでプロジェクトを右クリックするとnpmスクリプトがあるのでstartしましょう。 これはあくまでnetbeansの例ですのでそれぞれlocalhost:3000でアクセスできるようにしてブラウザで見てみてください。9つの四角が表示されるはずです。 これを二人のプレイヤーが交互に○☓をつけて縦横斜めどれか一列になったら勝利の例のあのゲームを作っていくみたいです。 こんな感じのやつです 今日はここまでにして次回に続きたいと思います。 →Reactを初めて触ってみました(tutorialその②)

EUからのアクセスで通知が確認できなかったときのメモです

EUからのアクセスで通知が確認できなかったときのメモ 昨年からですがEUの同意ポリシーを満たしてくださいねみたいねメールがadsenseから来ていたんですが全く確認できず。。。 いよいよ期限も迫ってきたのでちゃんと確認したいなと調べていても全く.jpを.co.ukとかに変更してアクセスすれば通知が出ているのが確認できるよとあるばかりで ブログ名.blogspot.co.uk とアクセスしてもどうしても ブログ名.blogspot.co.jp にリダイレクトしてしまい確認が出来ず大丈夫かなと不安になっていました。 何件かいろいろな方のページを見ていても同様の記述しかありませんでした。 しかしこの方のブログで1発解決 私のブログも問題ありませんでした。 EUからのアクセスにcookie使用の通知をしているか、リダイレクトを防いで確認してみました ※ありがとうございます。 ブログ名.blogspot.co.uk/ncr これで確認ができました! 私のような初心者などは大丈夫かと心配になってしまいますがわかりやすい記事に出会えて良かったです。 しかし、エンジニアのブログも釣りブログも全くadsenseの審査が通りません。。 釣りブログは最近投稿できていないからしょうがないか… こうやって見ると検索に引っかかる情報で有益性がある記事を出すことの大事さを痛感しますね。私もわかりやすく解決や有益な情報を発信できるようにしなければと気を引き締めていこうと思いました。

fail2banをインストールしたときのメモ

fail2banをインストールしたときのメモ サーバ監視ツールでグラフを見ていたらアクセスも少ないのにロードアベレージが高い時間があったので調べてみたらSSHで不正アクセスの嵐が来ておりました。 基本的に鍵認証なのでアクセス出来ないんですがどうも負荷が高くなるのが気に入りません。 そこでfail2banというツールを導入することにしました。 fail2banは対象ログから指定した不正アクセスとみなす設定文字列を検出し指定回数出現した場合にFirewallを設定を変更して対象ログのIPをブロックするツールです。 これはAWSのEC2/amazonlinuxインストールした場合の参考です。 インストール epel-releaseリポジトリからインストールします epel-releaseリポジトリがインストールされていなければインストール # sudo yum install epel-release # sudo yum install --enablerepo=epel fail2ban ログの場所を作る # sudo mkdir /var/log/fail2ban ログの場所を指定 # sudo vim /etc/fail2ban/fail2ban.conf ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # logtarget = SYSLOG  # コメントアウト logtarget = /var/log/fail2ban/fail2ban.log # 追加 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ インスタンス起動時に有効になっておくようにしておきます # sudo chkconfig --list # sudo chkconfig fail2ban on whoisを使えるようにしておく(IP情報をメールで送るときに使う) # yum install jwhois SSHのフィルタリング設定をしていきます # vim /etc/fail2ban/jail.conf sshを設定していきます [ssh]セクションの en...