投稿

4月, 2018の投稿を表示しています

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を体験したメモと初心者なりの解釈を記述したページになります。 さて前回ではサンプルからそれてコンポーネントクラスとレンダリング、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="shopping-list">      

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]セクションの enabled = t

apacheのやったほうがいい設定メモ

 apacheのやったほうがいい設定メモ apacheでいつも忘れそうになる基本的なやっといた方がいい設定などを追記しておく自分用のページになります。 あったベースで追記していきます。追記したら下部に履歴を残します。 apacheのバージョン表示関連 エラーページなどに表示されるバージョンを表示しない。 ServerSignatureはサーバが生成するドキュメントに表示されるバージョン表示の制御 ServerSignature Off レスポンスヘッダ情報に含まれるバージョン情報を表示しない。 ServerTokensはレスポンスヘッダに表示されるapacheのバージョン情報の制御 ServerTokens Prod TRACEメソッドの無効化(XST対策) TraceEnable Off これが有効になっているとクロスサイトトレースという脆弱が起きる可能性がある。 クリックジャッキング対策 Header append X-Frame-Options SAMEORIGIN nginxの設定で存在をしったこちらは自サイトのフレームを他サイトに読み込ませない設定です。ページ内のフレームに自サイトのページを表示する。 XSS対策 Header set X-XSS-Protection "1; mode=block" Header set X-Content-Type-Options nosniff こちらもnginxのときに学んだ検知したときにブロックする。 サーバがContent-Typeを指定しているのにHTMLだったり認識してしまうのを避ける指定みたいです。 PHPなどのバージョン情報をapache側でも表示しないように制御しておく Header unset X-Powered-By どちらかというとphp側のphp.iniでも非表示にしてapacheでも一緒に両方設定しておくのがいいと思う。 とりあえずセキュリティ関連から。 nginxのときに学んだEtagはまたApacheでも調べてみないと。 その他わかったことがあったら追記していきます。

nginxをソースからインストールする

nginxをソースからインストールして パッケージと入れ替える インストール環境 amazon linux 前回はLet's Encyptで証明書を発行してSSLの公開サイトを作る準備をしたんですが mainline versionを入れたかったのがLet's Encyptでcertbotを使って自動でnginxの設定変更や起動スクリプトなど設定ファイルの場所が違うなどでエラーが出てしまい、時間もなかったのでパッケージからインストールしてしまいました。 ですので今回はソースからインストールしたもので差し替えたいと思います。 まずはダウンロード こちら から現時点のMainline versionのnginx-1.13.10をダウンロードします。 場所は/usr/local/src/として進めます。※root権限で実行していってしまいます。 # cd /usr/local/src/ # wget http://nginx.org/download/nginx-1.13.10.tar.gz # tar xvzf nginx-1.13.10.tar.gz # cd nginx-1.13.10 インストールディレクトリを/usr/local/配下としてインストール作業をします # ./configure --prefix=/usr/local/nginx-1.13.10 そうするともろもろ足りないパッケージがありエラーが出ました。 まずは以下のエラー checking for OS  + Linux 4.9.81-35.56.amzn1.x86_64 x86_64 checking for C compiler ... not found ./configure: error: C compiler cc is not found Cのコンパイラがないということなので # yum install gcc 再びconfigureを実行するとエラーが出ました checking for PCRE library in /usr/include/pcre/ ... not found checking for PCRE libr