Score:0

ข้อผิดพลาด PHP ปรากฏในคอนเทนเนอร์ PHP และ Nginx

ธง cn

เมื่อเร็ว ๆ นี้ฉันได้เล่นกับการย้ายออกจากการบันทึกตามไฟล์ในเครื่องในแอป PHP เพื่อส่งข้อผิดพลาด PHP ผ่าน stdout ดังนั้นพวกเขาจึงส่งออกไปพร้อมกับบันทึกอื่น ๆ ในการตั้งค่านักเทียบท่า วิธีนี้ใช้ได้ดีหากคุณตั้งค่า บันทึกข้อผิดพลาด ที่ตั้งไป /dev/stdout จากนั้นฉันเห็นข้อผิดพลาดจาก PHP ผ่านบันทึกนักเทียบท่าหาง อย่างไรก็ตาม ข้อผิดพลาดเดียวกันนี้ยังปรากฏในคอนเทนเนอร์ nginx ดังด้านล่างผ่าน "FastCGI send in stderr":

นักเทียบท่า-compose-nginx-phpfpm-php-fpm-1 | ข้อสังเกต: ข้อความ PHP: ทดสอบ
นักเทียบท่า-compose-nginx-phpfpm-php-fpm-1 | 172.18.0.3 - 18/ม.ค./2022:20:00:20 +0000 "GET /index.php" 200
นักเทียบท่าเขียน nginx-phpfpm-web-1 | 2022/01/18 20:00:20 [ข้อผิดพลาด] 32#32: *18 FastCGI ส่งใน stderr: "ข้อความ PHP: ทดสอบ" ขณะอ่านส่วนหัวการตอบสนองจากอัปสตรีม ไคลเอนต์: 172.18.0.1 เซิร์ฟเวอร์: phpfpm.local คำขอ : "GET / HTTP/1.1", อัปสตรีม: "fastcgi://172.18.0.2:9000", โฮสต์: "localhost:8080"

เพื่อความชัดเจน:

บันทึกคอนเทนเนอร์ PHP

นักเทียบท่า-compose-nginx-phpfpm-php-fpm-1 | ข้อสังเกต: ข้อความ PHP: ทดสอบ

บันทึกคอนเทนเนอร์ Nginx

นักเทียบท่าเขียน nginx-phpfpm-web-1 | 2022/01/18 20:00:20 [ข้อผิดพลาด] 32#32: *18 FastCGI ส่งใน stderr: "ข้อความ PHP: ทดสอบ" ขณะอ่านส่วนหัวการตอบสนองจากอัปสตรีม ไคลเอนต์: 172.18.0.1 เซิร์ฟเวอร์: phpfpm.local คำขอ : "GET / HTTP/1.1", อัปสตรีม: "fastcgi://172.18.0.2:9000", โฮสต์: "localhost:8080"

เกิดอะไรขึ้นที่นี่? นี่เป็นพฤติกรรมที่คาดหวังหรือไม่

นี่เป็นผลลัพธ์ของการตั้งค่า php-fpm/nginx ขั้นพื้นฐานและเป็นมาตรฐานด้วย docker-compose.yml ดังนี้:

รุ่น: "3.9"

บริการ:
    เว็บ:
        ภาพ: nginx: ล่าสุด
        พอร์ต:
            - "8080:80"
        ปริมาณ:
            - ./src:/var/www/html
            - ./default.conf:/etc/nginx/conf.d/default.conf
        ลิงค์:
            -php-fpm
    php-fpm:
        ภาพ: php:8-fpm
        ปริมาณ:
            - ./src:/var/www/html

default.conf เช่น:

เซิร์ฟเวอร์ {
    ดัชนี index.php index.html;
    server_name phpfpm.local;
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    รูท /var/www/html;

    ตำแหน่ง ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php-fpm:9000;
        fastcgi_index index.php;
        รวม fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

และ index.php เช่น:

<?php
ini_set('display_errors', 'off');
ini_set('error_log', '/dev/stdout');
error_log('ทดสอบ');
ก้อง phpinfo();

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา