Docker + PHPFPM デバッグ・エラーログ

[ec2-user@ip-10-0-1-164 ~]$ sudo docker logs phpfpm71 -f –tail=10
172.17.0.1 – 04/Dec/2019:00:02:18 +0000 “GET /index.php” 404
172.17.0.1 – 04/Dec/2019:00:05:09 +0000 “GET /index.php” 200
172.17.0.1 – 04/Dec/2019:00:10:37 +0000 “GET /index.php” 200
172.17.0.1 – 04/Dec/2019:00:13:13 +0000 “GET /index.php” 200
172.17.0.1 – 04/Dec/2019:00:13:15 +0000 “GET /index.php” 404
172.17.0.1 – 04/Dec/2019:00:13:18 +0000 “GET /index.php” 500
172.17.0.1 – 04/Dec/2019:00:13:19 +0000 “GET /index.php” 404
172.17.0.1 – 04/Dec/2019:00:19:33 +0000 “GET /index.php” 404
172.17.0.1 – 04/Dec/2019:00:35:55 +0000 “GET /index_dev.php” 200
172.17.0.1 – 04/Dec/2019:00:35:57 +0000 “GET /index_dev.php” 200

エラーの場合は、コードしか表記されず、
どのファイルの何行目かは、わからない。

 

/usr/local/etc/php-fpm.d/www.conf

;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_value[error_reporting] = E_ALL & ~E_NOTICE
php_admin_flag[log_errors] = on
;php_admin_value[memory_limit] = 32M

 

/var/log/fpm-php.www.log

[ec2-user@ip-10-0-1-164 ~]$ sudo docker exec phpfpm71 tail -f /var/log/fpm-php.www.log
[04-Dec-2019 03:33:25 Asia/Tokyo] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 98570240 bytes) in /var/www/html/skilipaca.com/pub3/html/_function.php on line 6
[04-Dec-2019 03:43:39 Asia/Tokyo] PHP Warning: Uncaught Symfony\Component\Debug\Exception\ContextErrorException: Warning: var_export does not handle circular references in /var/www/html/skilipaca.com/pub3/html/_function.php:6
Stack trace:
#0 [internal function]: Symfony\Component\Debug\ErrorHandler->handleError(2, ‘var_export does…’, ‘/var/www/html/s…’, 6, Array)
#1 /var/www/html/skilipaca.com/pub3/html/_function.php(6): var_export(Object(Plugin\Point\Entity\OrderPoint), true)
#2 /var/www/html/skilipaca.com/pub3/app/Plugin/Point/Event/ZeusTokenPaymentEvent.php(43): Plugin\Point\Repository\OrderPointRepository->findOneByOrderForCurrentUser(Object(Eccube\Entity\Order))

 

 

-

AWS EC2に新しいSSHアカウントを作る

EC2にSSH接続用のユーザーを作成する

を参考に、鍵を作ったが、

「No supported authentication methods available」というエラーで、
先に進めず、ドツボにはまる。

.sshや、authorized_keysのパーミションは、既に変更済み。
もちろん、passwd / groupにも、対象アカウントは追加済み。

 

AWS公式に則って、再び再設定。

キーは、EC2 > Network & Security > Key Pairsから生成し、
秘密鍵を、WinSPCに入れ、公開鍵をEC2に保存。

 

/etc/passwdの書き間違い

:がずれていたのを見つけ、修正したところ、

fatal: Access denied for user username by PAM account configuration [preauth]

という、エラーに変わる。

https://ma.ttias.be/ssh-fatal-access-denied-user-pam-account-configuration-preauth/

 

/etc/shadow

初めて見たが、パスワードを保存するファイルらしく、
こっちにもユーザーがないと、通らないっぽい。

 

/etc/passwdと/etc/shadowの編集

/etc/passwdと/etc/shadowファイルについてのまとめ

/etc/passwdを書き換える専用のツールまであるなんて、知らなかった。。。

vipw -s

にて、新しいユーザーを追加したところ、

 

無事ログイン成功!!

 

長かった。。。

PS

EC2-USERのままでも良かったのですが、
Syncthingを使って同期している関係で、実行ユーザーが1000:1000となり、
ec2-userのパーミッションだと、弾かれたりと、面倒で。
※php-fpmは、1000:1000で実行

1000:1000のユーザーで、ログインしたかったんです。

元はと言えば、Syncthiungが、
500:500で動いてくれれば言うことないのですが、
Dockerfileを修正して、buildすると、
Alpineにも関わらず、数GBのサイズになり、諦めた次第です。

/bin/entrypoint.shで、

#!/bin/sh
set -eu
chown "${PUID}:${PGID}" /var/syncthing \
  && exec su-exec "${PUID}:${PGID}" \
   env HOME=/var/syncthing \
     /bin/syncthing "$@"

${PUID}、$PGIDを500:500に書き換えるため、

export PUID=500 PGID=500
env PUID=500 PGID=500

など試したり、
直接500:500にしたんですが、リスタートを繰り返すばかりで。

 

AmazonLinux2にするまでの辛抱なので、
1000:1000でWinSPCにログイン出来たことにより、
随分と作業が楽になります♪

-