原因
「environment_name.php」をみにいく設定になっているのに、「environment_name.php」が存在していなかった(いろいろミスって消しちゃったときに消えちゃったのかな…)
ほんとはテスト環境を立ち上げたいのに、本番環境にいってしまってたみたい?
source/bootstrap/start.php
|--------------------------------------------------------------------------
| Detect The Application Environment
|--------------------------------------------------------------------------
|
| Laravel takes a dead simple approach to your application environments
| so you can just specify a machine name for the host that matches a
| given environment, then we will automatically detect it for you.
|
*/
$env = $app->detectEnvironment(function () {
$environmentNamePath = __DIR__ . '/../.environment_name.php';
if (file_exists($environmentNamePath)) {
return include($environmentNamePath);
} else {
if (in_array(gethostname(), ['vagrant-ubuntu-trusty', 'user-VirtualBox', 'vagrant-centos65.vagrantup.com','Yuji-MBP', 'kadomain8', 'kado-dynabook', 'a-pc-001.local', 'www.printmark.jp', 'king0040-no-iMac.local'])) {
return 'local';
}
return 'production';
}
});
解決方法
新規作成
source/.environment_name.php
<?php return 'local';
試したこと:ネットワークの疎通を確認
構文
$ping hostname/IP_addr(通信相手)
例
# www.google.co.jpに対して検査用パケットを送信する
$ping www.google.co.jp
# IPアドレス192.168.2.1に対して検査用パケットを送信する
$ping 192.168.2.1
試したこと:ネットワークの経路を調査
構文(Linux)
$traceroute 対象ホスト(ホスト名またはIPアドレス)
例
# google.comまでの経路情報を取得
$traceroute google.com
試したこと:ネットワーク環境の確認
例
# 受送信のエラー数が確認できる
$ifconfig
試したこと:Docker起動・再起動
- -d オプション
- デタッチド・モード: バックグラウンドでコンテナを実行し、新しいコンテナ名を表示
$ docker-compose down && docker-compose up -d
Stopping kp-proxy ... done
Stopping kp-app ... done
Removing kp-proxy ... done
Removing kp-app ... done
Removing network develop_default
Network shared-network is external, skipping
Creating network "develop_default" with the default driver
Creating kp-app ...
Creating kp-app ... done
Creating kp-proxy ...
Creating kp-proxy ... done
起動中のコンテナの一覧を表示
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bbb3a065e28d develop_kp-proxy "nginx -g 'daemon of…" 2 days ago Up 43 minutes 0.0.0.0:8082->80/tcp kp-proxy
7102ca7beced develop_kp-app "php-fpm5.6 --nodaem…" 2 days ago Up 43 minutes kp-app
d882ad7ed868 localcart_nginx "nginx -g 'daemon of…" 3 weeks ago Up About an hour 0.0.0.0:8888->80/tcp cart_nginx
ae8c7dc7f60f localcart_cart "docker-php-entrypoi…" 3 weeks ago Up About an hour 9000/tcp cart_php_fpm73
2dd067fe27e5 redis:latest "docker-entrypoint.s…" 3 weeks ago Up 43 minutes 6379/tcp, 0.0.0.0:6380->6380/tcp cart-redis
実行中のコンテナ内でコマンドを実行
- -iオプション
- 指定したコマンドを実行する際、コンテナの標準入力をDockerホストの標準入力と接続する
- -tオプション
- コンテナ内で疑似的な仮想端末を割り当てて、Dockerホストの標準出力と接続する
使い方
docker exec [オプション] CONTAINER COMMAND [ARG...]
実行例
$ docker exec -it bbb3a065e28d /bin/sh
/ # cleaer
/bin/sh: cleaer: not found
/ # cd /vw
コンテナを一覧表示
$ docker ps
実行中のコンテナ内でコマンドを実行
(Docker DesktopのGUIからコンテナ内に入るのを、コマンドだけで実行している)
$ docker exec -it ba35b6b95fe0 /bin/sh
# cd /usr/local/bin
# ls | grep wkhtml
wkhtmltoimage
wkhtmltopdf
試したこと:ログの確認(Laravel)
- path要素から、どこにログを出力する設定になっているか確認
logging.php
'channels' => [
'single' => [
'driver' => 'single',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
'tap' => [App\Logging\SampleTap::class],
],
- エクスプローラーを開き、ログを確認する
$ explorer
自分のいるディレクトリを開く場合
$ explorer .
試したこと:ログの確認(Docker)
PHP,nginxそれぞれのコンテナのCLIをひらき、ログをみる
→ログがでていれば、そこまで動いているということ
- ログ出力確認
- --follow , -fオプション
- 出力をフォローし続ける(表示し続ける)
- 出力されるログを確認しながら作業をしたい場合に使用
- リアルタイムにログを出力することができる
- --follow , -fオプション
docker logs -f <ContainerName>
こっちでもみれる
※ただし、アクセスログとエラーログ を切り分けることができない
docker-compose logs -f <ContainerName>
試してみたいこと:ログの確認(php)
error_log()
おまけメモ
new-king >nginx - error.log
develop>nginx>logs>error.log
storage>logs
個人的課題
ながれ:Laravel→nginx→PHP
この変がわからない!!
ブラウザ→nginx(Webサーバー)→Laravel→Nginx→ブラウザ?