2016-05-06 15 views
11

Projenin yeniden yazımı: https://github.com/tombusby/docker-laravel-experiments (Yazma sırasında HEAD, 823fd22'dir).Docker php-fpm/nginx kurulumu: php-fpm boş atma 500, hata kaydı yok

nginx: 
    image: nginx:stable 
    volumes: 
    - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro 
    volumes_from: 
    - php 
    links: 
    - php:php 
    ports: 
    - 80:80 

php: 
    image: php:5.6-fpm 
    volumes: 
    - ./src:/var/www/html 
    expose: 
    - 9000 

src içine/oluşturduğum taze laravel projesi:

İşte benim liman işçisi-compose.yml olduğunu. Ben bir basic echo "hello world"; ile bir index.php dışarı takas ederseniz ve echo "called";exit(); kullanırsam, bu laravel'in index.php dosyasının çalıştırıldığını tespit edebilirim.

Yolun 53 yaşında öldü:

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture() 
); 

ben bunun neden böyle hiçbir fikrim yok, ben hata günlükleri için benim php-fpm kabın etrafına bir göz atmak docker exec -it <cid> bash kullanarak denedim. Tüm günlükler stderr/stdout'a (docker tarafından toplanan) yönlendirilir. İşte

liman işçisi toplayan çıktısı:

php_1 | 172.17.0.3 - 06/May/2016:12:09:34 +0000 "GET /index.php" 500 
nginx_1 | 192.168.99.1 - - [06/May/2016:12:09:34 +0000] "GET /index.php HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36" "-" 

siz "500" Görüldüğü gibi bir hata bana neden işe yardımcı olmak için oldukça fazla bir şey yapmaz, ama ben herhangi bir şekilde bulamıyor Yığın izini veya apache'nin php uzantısının üreteceği uygun hata günlükleri gibi bir şey elde etmek.

+0

Ben hiç temel nedenini buldunuz ... bir _very_ benzer sorunla karşı karşıya ediyorum prob em? – chrisvdb

+1

Kabul edilen cevap sorununuzu çözecektir. Resmi docker iamge'deki varsayılan php-fpm yapılandırması hatalara kapandı. Eğer 'ini_set' veya benzeri ile etkinleştirmeye çalışırsanız, php-fpm bunu yok sayar. Php_admin_flag [log_errors] 'seçeneğini kullanarak php-fpm yapılandırma dosyasında ayarlamanız gerekir. Bunu yaptım, docker'ımın, varolanın üst kısmına bir salt okunur birim olarak bir costom php-fpm yapılandırma dosyası yerleştirmesini sağlayarak yaptım. –

+0

Ayrıca, bu soru yaşadığınız bir sorunu açıklıyorsa, yükseltmeler her zaman takdir edilir;) –

cevap

12

...

Sorununuz php.ini ayarı "log_errors" Kapalı olarak ayarlanmış olmasıdır.

seçenekleriniz şunlardır:

  • seti log_errors = On php.ini içinde
  • set yönerge [log_errors] = On havuz config (dosyada /usr/local/etc/php-fpm.conf içindedir php:5.6-fpm dayalı liman işçisi konteyner için) .user.ini içinde (php en başına dir geneli, benzer .htaccess) Açık
  • ya da muhtemelen ayarlamak log_errors =
+1

nihayet işe yarayan bir şey, bunu çok uzun zamandır arıyordum! 'php_admin_flag [log_errors] = Açık – peedee

0

Bir Mac tarafından istekte bulunduğunuzu görebildiğim gibi, Mac'te de docker ortamı var mı? Eğer varsa, php-fpm kapsayıcısında bash çalıştırarak, açığa çıkan hacme yazmayı deneyebilirsiniz? (Kabın üzerinde /var/www/html) freenode ## php tartışmamızın gereği

+0

Sorun bu değil. Her şey temel merhaba dünya uygulaması için doğru çalışıyor. Benim sorunum 500 almam ve neden olduğunu öğrenmek için günlükleri görmek istiyorum. Herhangi bir günlük bulamıyorum. –

+0

"Merhaba dünya uygulaması" için ne demek istiyorsun? –

+0

, "merhaba dünya" daki gibi: –