- 環境
Docker for Mac (18.03.1-ce)
phalcon(3.3.2)
最近、XAMPPからDockerに切り替えました。
Docker for Macで環境構築をして、アプリケーションを動かしたいのですが、なぜか502エラーが出ました。
そこで、xdebugを使ってデバッグしたところ、indexControllerに記載されていた、executeクエリが失敗していました。(データベースとの接続の問題?)
しかし、他の開発者2人(LinuxとMac)はうまくいっています。
他の2人はうまくいっているので、コードに問題はないかと思うのですが、データベース接続も含めてphalconやdocker、apcなどのバージョンは全て同じであることは確認しました。
executeクエリが失敗している原因で考えられるものは他にありますでしょうか?
ご回答よろしくお願いします。。
追記
- 実際にエラーが発生しているソース
$WritingTotalPointsは、ブログの一ヶ月間の文字数の合計です。
$columnsと$startOfMonth, $startOfNextMonthはXdebugを使って変数にちゃんとデータが入っていることを確認しました。
dockerのコンテナに入り、blogテーブルとそれぞれのデータがあることは確認しました。
execute(); で失敗しています。
indexController.php
1$WritingTotalPoints = \Blog::query() 2 ->columns($columns) 3 ->innerJoin('Site', 'Site.id = Blog.siteId') 4 ->where("Blog.contentDueDate >= '{$startOfMonth}' AND Blog.contentDueDate < '{$startOfNextMonth}'") 5 ->execute();
- DB接続情報
セキュリティ的にはよくないかもしれませんが、そこはスルーで、、、。
app.php
1 2'database' => [ 3 'isAutoCast' => true, 4 'mysql' => [ 5 'development' => [ 6 'adapter' => 'Mysql', 7 'host' => getenv('DB_HOST') ?: 'localhost', 8 'username' => 'root', 9 'password' => '', 10 'dbname' => 'test', 11 'persistent' => true 12 ], 13 'production' => [ 14 'adapter' => 'Mysql', 15 'host' => getenv('DB_HOST'), 16 'username' => getenv('DB_USER'), 17 'password' => getenv('DB_PASS'), 18 'dbname' => getenv('DB_NAME'), 19 'persistent' => true 20 ] 21 ], 22 'results' => [ 23 'flatten' => true, 24 'masterValues' => 'extract', // null | extract 25 'scope' => 'public', // null | public | protected | private 26 ] 27 ], 28
ログの追記
PHPのエラーログ
phalcon_php | 172.18.0.4 - 20/Jun/2018:03:34:43 +0000 "GET /index.php" 200 phalcon_php | [20-Jun-2018 03:34:44] WARNING: [pool www] child 8 exited on signal 4 (SIGILL) after 6.481382 seconds from start phalcon_php | [20-Jun-2018 03:34:44] NOTICE: [pool www] child 9 started
nginxのエラーログ
phalcon_nginx | 172.18.0.1 - - [20/Jun/2018:03:36:35 +0000] "GET / HTTP/1.1" 200 394 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_ 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36" "-" phalcon_nginx | 172.18.0.1 - - [20/Jun/2018:03:36:36 +0000] "GET /favicon.ico HTTP/1.1" 200 1150 "http://test.local/" "Mozilla/5.0 ( Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36" "-" phalcon_nginx | 172.18.0.1 - - [20/Jun/2018:03:36:36 +0000] "GET /api/initialize?timezone=Asia/Tokyo HTTP/1.1" 502 568 "http://test. local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36" "-" phalcon_nginx | 2018/06/20 03:36:36 [error] 13#13: *26 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 172.18.0.1, server: test.local, request: "GET /api/initialize?timezone=Asia/Tokyo HTTP/1.1", upstream: "fastcgi://172.18.0.3:9000", host: "test.local", referrer: "http://test.local/"
mysqlのエラーログ
今実行してもmysqlのエラーは何も出ないのですが、知らないうちにエラーが溜まっていました。
phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: Compressed tables use zlib 1.2.8 [0/139] phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: Using Linux native AIO phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: Number of pools: 1 phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: Using SSE2 crc32 instructions phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: Initializing buffer pool, total size = 256M, instances = 1, chunk size = 128M phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: Completed initialization of buffer pool phalcon_mariadb | 2018-06-20 3:30:36 140097225074432 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread pr iority can be changed. See the man page of setpriority(). phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: Highest supported file format is Barracuda. phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: 128 out of 128 rollback segments are active. phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: Creating shared tablespace for temporary tables phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: File './ibtmp1' size is now 12 MB. phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: Waiting for purge to start phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] InnoDB: 5.7.22 started; log sequence number 172722127 phalcon_mariadb | 2018-06-20 3:30:36 140096783243008 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] Plugin 'FEEDBACK' is disabled. phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] Server socket created on IP: '::'. phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Warning] 'proxies_priv' entry '@% root@273f5a19507c' ignored in --skip-name-reso lve mode. phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] Reading of all Master_info entries succeded phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] Added new Master_info '' to hash table phalcon_mariadb | 2018-06-20 3:30:36 140097962047360 [Note] mysqld: ready for connections. phalcon_mariadb | Version: '10.2.15-MariaDB-10.2.15+maria~jessie' socket: '/var/run/mysqld/mysqld.sock' port: 3306 mariadb.org binar y distribution phalcon_mariadb | 2018-06-20 3:30:38 140096783243008 [Note] InnoDB: Buffer pool(s) load completed at 180620 3:30:38
追記 Docer-compose.yml
Docer
1version: '3.4' 2 3services: 4 mysql: 5 restart: always 6 image: mariadb:10.2 7 container_name: phalcon_mariadb 8 ports: 9 - 3306:3306 10 environment: 11 MYSQL_DATABASE: test 12 MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' 13 volumes: 14 - mysql:/var/lib/mysql 15 16 php: 17 restart: always 18 build: ./ 19 container_name: phalcon_php 20 ports: 21 # php-fpm 22 - 9000:9000 23 environment: 24 APP_ENV: 'development' 25 XDEBUG_REMOTE_HOST: 'host.docker.internal' 26 XDEBUG_REMOTE_PORT: '9005' 27 XDEBUG_IDE: 'VSCODE' 28 DB_HOST: 'mysql' 29 volumes: 30 - ./php:/app/php 31 - ./html:/app/html 32 - ./config/www.conf:/usr/local/etc/php-fpm.d/www.conf 33 - ./config/phalcon.ini:/usr/local/etc/php/conf.d/phalcon.ini 34 depends_on: 35 - mysql 36 37 nginx: 38 restart: always 39 image: phalconphp/nginx:1.10 40 container_name: phalcon_nginx 41 ports: 42 - 80:80 43 volumes: 44 - ./config/nginx.conf:/etc/nginx/conf.d/test.template 45 - ./src:/app/src 46 - ./html:/app/html 47 environment: 48 HOST_NAME: 'test.local' 49 PHP_CONTAINER: 'php' 50 command: > 51 sh -c "envsubst \"`env | awk -F = '{printf \" $$%s\", $$1}'`\" 52 < /etc/nginx/conf.d/test.template 53 > /etc/nginx/conf.d/default.conf 54 && nginx -g 'daemon off;'" 55 depends_on: 56 - php 57 58# docker volume create --name=mysql 59volumes: 60 mysql: 61 external: true 62
回答2件
あなたの回答
tips
プレビュー