sukimash のすべての投稿

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

 

phpMyAdmin でテーブル一覧がページングされるのを解除する

最近のバージョンの PHPMyAdmin は左側のフレームに表示されるテーブル一覧がページングされるようになった。

テーブルを選択する際にいちいちページを切り替えて探さないといけないので、自分にとっては何のメリットも無いどころか、かなり使いにくくなってしまった。

しばらくそのままで使っていたが、我慢の限界で、ページングしないようにできないものか設定をいじってみたら、ページングを解除できた。

vi config.inc.php で以下を追加する

$cfg[‘MaxNavigationItems’] = 100;
$cfg[‘MaxTableList’] = 100;

ログアウトしてログインしなおせば、ページングされずに1画面で表示されるようになった。

テーブルが100個以上ある場合は数字をもっと大きくすれば大丈夫だと思います。

 

Apache で Forbidden .htaccessにアクセスできない?

CentOS 5 ではTLS1.2の構築が難しいというので、CentOS 7 の環境でWebサーバを構築しなおしました。

ブラウザでアクセスしてみたら早速

Forbidden
You don’t have permission to access /xxxx on this server.

というエラーが表示される。

/var/log/httpd のエラーログを確認してみると

(13)Permission denied: [client xxx.xxx.xxx.xxx:xxxxx] AH00529: /xxx/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that ‘/xxx/’ is executable

とのこと。

.htaccess のアクセス権限をチェックするも、読み取り権限有り
/xxx の権限をチェックするも、読み取り権限(実行権限も)有り

 

うーむ。。
試行錯誤の結果、SELINUXが悪さをしているのを発見しました。
setenforce 0
コマンドでSELINUXを一時的にOFFにするとアクセスできました。

vi /etc/selinux/config で
SELINUX=disabled
に編集すると次回のマシン再起動時もOFFのままです。
(このファイルを編集しないと次回起動時にSELINUXが有効になってしまい、同じ現象が発生する)

ほんとはOFFにしなくてSELINUXの設定でなんとかできるんだろうけど。。。

 

EC2 のインスタンスタイプを変更しようとしたらエラー

AWS EC2 のインスタンスで、Create Image で AMI を作成し、別のインスタンスタイプでインスタンスを起動したところ、Unreachable で接続できない状態となってしまった。

再度同じAMIで起動しても現象は変わらず。

AMIを作り直しても現象は変わらず。

システムログを見てみたところ、

cloud-init[2555]: url_helper.py[WARNING]: Calling ‘http://169.254.169.254/2009-04-04/meta-data/instance-id’ failed [13/120s]: request error [HTTPConnectionPool(host=’169.254.169.254′, port=80): Max retries exceeded with url: /2009-04-04/meta-data/instance-id (Caused by <class ‘socket.error’>: [Errno 101] Network is unreachable)]

なエラーが出て止まっている模様。

AWSのサーバにインスタンスIDを問い合わせようとしているのだが、ネットワークがつながっていないのでできない。といったところか。

さらにログを見ていったところ

udev: renamed network interface eth0 to eth1

という一行を発見。

ネットワークデバイスの名前を eth0 から eth1 に変えといたよ!

いやいや変えちゃだめでしょ。eth0 で設定しているんだから。

つまり、ネットワークデバイスは eth1 という名前になったのだが、設定はeth0 で探しに行っているので、ネットワークデバイスが見つからず、ネットワークがつながらず、インスタンスIDが取得できず、インスタンスが正しく起動しない。

ということのようだ。

調べたら

/etc/udev/rules.d/70-persistent-net.rules

というファイルに

SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”01:23:45:68:89:ab”, KERNEL==”eth*”, NAME=”eth0″

というような設定があり、ここのMACアドレスがハードのものと違うとリネームされてしまうようでした。

この行の先頭に # をつけてコメントアウトし、Create Image で AMI を再作成した後、再度インスタンスを起動したら問題なく起動できました。

 

 

IEが突然起動しなくなった

Windows 7 上の Internet explorer が突然起動しなくなりました。

起動直後に Internet explorer は動作を停止しました。となり、何もさせてくれません。。

詳細を見てみると以下のようなことになっています。

問題の署名:
問題イベント名:    BEX64
アプリケーション名:    IEXPLORE.EXE
アプリケーションのバージョン:    10.0.9200.16843
アプリケーションのタイムスタンプ:    53096f36
障害モジュールの名前:    StackHash_534e
障害モジュールのバージョン:    0.0.0.0
障害モジュールのタイムスタンプ:    00000000
例外オフセット:    00000001000200a0
例外コード:    c0000005
例外データ:    0000000000000008
OS バージョン:    6.1.7601.2.1.0.256.1

どうやらセキュリティソフトのAVGが悪さをしているようで、一時的にAVGをOFFにするとIEを起動できるようです。

AVGが対策してくれるのを待つか、それともAVGをやめて他に乗り換えるか。

しばらく様子を見てみるか。。。

 

S3 にインスタンスイメージをアップしようとしたらerror:0D0C50A1

EC2インスタンスのデータを作成してS3にアップしようとしたら以下のエラーが出てしまいました。

ERROR: Error talking to S3: Curl.Error(35): error:0D0C50A1:asn1 encoding routines:ASN1_item_verify:unknown message digest algorithm.

一年前は大丈夫だったんですが、何かが変わってしまったみたいです。

調べてみたら、openssl が古かったようで

yum update openssl

でアップデートをかけたら無事に動くようになりました。