質問編集履歴

2

やったこと、解決方法追記

2017/09/11 14:17

投稿

setuphelt
setuphelt

スコア10

test CHANGED
File without changes
test CHANGED
@@ -120,9 +120,9 @@
120
120
 
121
121
  ###試したこと
122
122
 
123
- 上記のHogeShellが呼べていることと、コンソールからではなくControllerからDBアクセスしデータの取得は出来ていることは確認済みです。
123
+ 上記のHogeShellが呼べていることと、ミナルからではなくControllerからDBアクセスしデータの取得は出来ていることは確認済みです。
124
124
 
125
- app.phpの設定もしており、コンソールから起動した場合のみエラーが発生します。
125
+ app.phpの設定もしており、ミナルから起動した場合のみエラーが発生します。
126
126
 
127
127
 
128
128
 
@@ -143,3 +143,43 @@
143
143
  cakephp3.x
144
144
 
145
145
  mac osx
146
+
147
+
148
+
149
+ ###※9月11日追記 解決?
150
+
151
+ controllerから実行した場合とターミナルから実行した場合で読み込んでいるphp.iniのディレクトリを調べた結果
152
+
153
+ ・controller:/Applications/XAMPP/xamppfiles/etc
154
+
155
+ ・ターミナル:/usr/local/etc/php/5.6
156
+
157
+
158
+
159
+ controllerはxamppの配下、ターミナルからはhomebrewでPHPをインストールしたディレクトリとなっていました。
160
+
161
+
162
+
163
+ それぞれが読んでいるpdo_mysql.default_socketの場所を調べた結果
164
+
165
+ ・controller:/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
166
+
167
+ ・ターミナル:/tmp/mysql.sock
168
+
169
+
170
+
171
+ ここで/tmp配下を覗いてみるとmysql.sockなんてファイルはない!つまりxamppの方のパスを指定してあげれば良いのでは?
172
+
173
+ と考え/Applications/XAMPP/xamppfiles/var/mysqlを見に行ったがそこにもmysql.sockなんてファイルはありませんでした。
174
+
175
+
176
+
177
+ ものは試しと思い、/usr/local/etc/php/5.6/php.iniのpdo_mysql.default_socketのパスをxamppのものにしてみたところDB接続が成功しレコード取得出来ました。。。
178
+
179
+
180
+
181
+ ファイル自体はターミナルから検索してもfinderで見ても存在していないのに読み込めているのは理由を理解しないと気持ち悪いですが、とりあえずはターミナルからcakeコマンドで実行した場合は使うphpや読み込むphp.iniが違うよというのが原因でした。(環境依存かもしれませんが...)
182
+
183
+
184
+
185
+ unauさん、icchiiさんありがとうございました!

1

追記

2017/09/11 14:17

投稿

setuphelt
setuphelt

スコア10

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  ターミナルからcakeのShellを起動し、中でDBアクセスし処理を行いたい。
4
4
 
5
- XAMPP、CakePHP3、MySQL、macOSX
5
+ ↓ここでやっていることがエラーとなる
6
+
7
+ [シェルの中でのモデルの使用](https://book.cakephp.org/3.0/ja/console-and-shells.html#id4)
6
8
 
7
9
 
8
10