CakePHP をインストールしてみたら諸々エラー

いろいろなフレームワークを使ってみるべく CakePHP をインストールして試してみようとしたところ、まぁ諸々エラーが出ましたので書いておきます。

公式サイトのインストール説明の通りにインストールを進めていき

./bin/cake server
を実行したら
You must enable the intl extension to use CakePHP.
というエラーが出ました。
そうですね、インストールのときにも何かメッセージが出ていた気がします。
(そのままほっておいて突き進んでみたのですが、やっぱりだめですか)

yum install –enablerepo=remi-php56 php-intl

で intl インストールして再度

./bin/cake server

PHP Fatal error: require(): Failed opening required ‘/xxxx/vendor/autoload.php’

なんでしょう。。。

ファイルが無いようです。。

これは intl とは別な現象でしょうか

CakePHPがインストールされたディレクトリを削除してもう一度インストールしてみる
composer create-project –prefer-dist cakephp/app cake_test

proc_open(): fork failed – Cannot allocate memory

あらら、メモリが足りないと。。

さすがに AWS EC2 nano インスタンスだと、そのままのメモリでは厳しいようですね。

以下のコマンドでスワップファイルを作成して、見かけ上のメモリを増やしてみる。
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1

ふたたびディレクトリを削除して
composer create-project –prefer-dist cakephp/app cake_test

おぉ、無事インストール成功。気を取り直して

./bin/cake server

を実行

Welcome to CakePHP v3.6.7 Console
—————————————————————
App : src
Path: /data/cake_test/src/
DocumentRoot: /data/cake_test/webroot
Ini Path:
—————————————————————
built-in server is running in http://localhost:8765/
You can exit with `CTRL-C`

あぁ、やっと動きました!

EC2上なので、 localhost のところをグローバルIPに変えてアクセス。

http://xxx.xxx.xxx.xxx:8765/

ファイヤーウォールに引っかかってタイムアウト。。。

EC2 の SecurityGroup の 8765ポートに風穴を開ける

アクセスしてみる

タイムアウト。。。。

それならIP指定で起動してみる
bin/cake server -H xxx.xxx.xxx.xxx -p 8765

Failed to listen on xxx.xxx.xxx.xxx:8765 (reason: Cannot assign requested address)

うぅ、グローバルIPでは起動できないようです

面倒なので Apache の定義を追加してアクセスしました。

無事にトップページが表示されました。

Excelでファイルを保存するときに プライバシーに関する注意:… というメッセージが表示される

ExcelでVBEを開いていると、ファイルを保存するときに

「プライバシーに関する注意:このドキュメントには、マクロ、ActiveXコントロール、XML拡張パックの情報、またはWebコンポーネントが含まれています。これらにはドキュメント検査機能で削除することができない個人情報が含まれる場合があります。」

というメッセージが毎回表示されるようになりました。

さすがに毎回表示は手間なので消す方法を調べたところ、以下の手順で消えました。

・エクセルの[ファイル]-[オプション]-[セキュリティセンター]-[セキュリティセンターの設定]をクリック

・[プライバシーオプション]-[ファイルを保存するときにファイルのプロパティから個人情報を削除する]のチェックを外す

以上でメッセージが表示されなくなります。

ただ、恐らくこのチェックを外すと「ファイルを保存するときにファイルのプロパティから個人情報を削除」されなくなるので、そこはご注意を。

 

Webサーバ側で favicon ファイルを変更したが Chrome 上で変わらない

とあるWebサービスを作成してて、favicon がデフォルトのままだと気づいたので、サーバ上のファイルを変更したのに、ブラウザで表示させると古いままのfavicon になっている。

ページをリロードしても変更されない。

サーバ側は確かに変更したので、これはブラウザがキャッシュしているなと思い検索したところ、Chrome では以下の場所にfaviconのキャッシュファイルが格納されているようでした

C:\Users\xxxx\AppData\Local\Google\Chrome\User Data\Default

xxxx はユーザ名です。(Windows版です)

このフォルダにある Favicons というファイルを削除し、Chromeを再起動し、サイトにアクセスしてみたら無事変わってました。

 

MySQL(AWSのRDS)で高負荷なSQLを実行してしまい、CPUがずっと100%のままになってしまった

とあるWebサービスを作成してて、DBのクエリー処理を変更したら、サイトが応答しなくなってしまいました。

EC2とRDSの状態を確認してみたところ、RDSのほうでCPU使用率が100%固定になってしまっていました。

しばらく待てばおさまるかなと思いつつ30分、、、

一向におさまる気配はありません、データ量はまだそんなにないのでクエリーがよほどひどかったのでしょう。テーブルの構造を変更する必要がありそうです。。。

そんなことはさておき、30分経ってもおさまらないので、何か対策が必要です。

思いつくのは実行されているであろうクエリーを探し出し、そいつをSTOPすること。

以下の手順で行ないました

EC2上で

mysql –host example.rds.amazonaws.com -u exampleuser -pExamplePassword

のようなコマンドでSQLにログイン

SHOW FULL PROCESSLIST\G

を実行して、残っているクエリ一覧を表示し、あやしいクエリーのIDを控える

KILL 218815;

であやしいクエリーをストップ(数字のところは先ほど控えたIDに置き換えてください)

以上の対策で、無事にCPU使用率が下がりました。

もう少しカンタンにプロセス管理ができるといいんですが。。。

 

サイト xxxxx で「インデックス カバレッジ」の問題が新たに検出されました。というお知らせ。

Search Console から以下のようなメールが届きました。
—————————————–
サイト xxxxx で「インデックス カバレッジ」の問題が新たに検出されました

xxxxx の所有者様

Search Console により、貴サイトに影響する「インデックス カバレッジ」関連の問題が新たに 1 件検出されました。 「インデックス カバレッジ」は Google 検索結果で悪影響を受ける可能性がございます。 この問題をご確認のうえ、修正することをご検討ください。

新たに検出された問題:

サーバーエラー(5xx)

—————————————–

どうやら、とあるURLでアクセスすると500エラーが出るということをお知らせしてくれているようです。

その特定URLだけでなく、サイト全体としての評価にも影響が出てしまう恐れがあるので、できるだけ早めにエラーを修正しましょう。

修正が終わったら、メールに記載されたSearch Consoleへのリンクをクリックして、修正を検証するボタンをクリックして検証されるのを待つ、という流れになります。

Search Console は Google社が提供している、サイト運営者向けのパフォーマンス監視・管理ツールです。サイトの価値を高めて、アクセスを伸ばしたいサイト運営者の方は是非登録をして活用し、より良いサイト作りを行ないましょう。