質問: $_SERVER['SERVER_PORT']; $this->out($a); ``` に変更しました。ポート番号が確認できると思ったのですが、以下のエラーが出力されてしまいました。 Undefined index: SERVER_PORT cakephp3 では、どのように自分で立ち上げたポート番号を確認するのでしょうか?
回答: ポートを確認との事ですが、まず `bin/cake server -H 0.0.0.0 -p 8000 2> serverLog &` で立ち上げているので8000ポートを使用しているというのはわかっているはずですが、なぜポートを取得するのでしょうか? また `echo $_SERVER['SERVER_PORT'];` はブラウザでアクセスしてきた際、`$_SERVER`というスーパーグローバルにサーバー情報としてポートも入っていると 思いますのでこれはおそらく8000を出力するとおもいます。 最後の > > こちらを shell コマンド確認できるように > > > というのが意味がわからなかったんですが、これはサーバーのコンソールから ``` $a = $_SERVER['SERVER_PORT']; $this->out($a); ``` という内容を保存したファイルを実行するという事ですか?? cake自体をあまり使った事がないのでcakeに特化した何か使い方があるなら検討違いな答えになるかもしれませんが、 あくまでスーパーグローバルはブラウザ等でアクセスしてきた時に有効な変数でshell等では使えないと思います。 もしサーバーのコンソールにログインしてlistenポートを確認したければ `net stat -ano` などでtcpのlisten状態のポートを確認されたら良いと思います ### 追記 cakePHPに関してあまり知識がなかったため、先ほどもう一度調べましたが、shell コマンド確認とはAppShellクラスを継承したクラスを作って実行という事でしょうか? それであればcakephpに特化した機能ですが、サーバーコンソールから同様の内容を実行できるようですね。 $_SERVER'SERVER_PORT']がないというエラーですが、一度$_SERVER自体をdumpして何がセットされているか確認してみてください。[ここにあるようにスーパーグローバル変数にはすべてがセットされる訳ではありませんので