Score:0

Sentry พร้อม PHP และ nginx: ข้อผิดพลาดจะไม่เกิดขึ้นในแดชบอร์ดยามอีกต่อไป

ธง gb

ฉันติดอยู่กับการกำหนดค่า nginx (nginx/1.14.2) สำหรับแอป php (php-7.4) ที่ปกติจะส่งการแจ้งเตือนข้อผิดพลาดไปยังทหารยาม

ฉันย้ายแอปพลิเคชัน php จาก apache ไปยังเซิร์ฟเวอร์ nginx และตอนนี้ข้อผิดพลาดในการส่งของฉันไม่ถูกรายงานอีกต่อไป ... ฉันทำอะไรผิด

นี่คือการกำหนดค่า nginx ของฉัน:

เซิร์ฟเวอร์ {

    รูท /var/www/services/some-seservice;

    ดัชนี index.php;

    server_name *****.com;

     access_log /var/log/nginx/some-service.access.log;
     error_log /var/log/nginx/some-service.error.log;

    ที่ตั้ง / {
        try_files $uri $uri/ /index.php;
    }
    ตำแหน่ง ~ .php$ {
        รวมตัวอย่าง/fastcgi-php.conf;
        fastcgi_pass ยูนิกซ์:/var/run/php/php-fpm.sock;
    }

    ฟัง [::]:443 ssl ipv6only=เปิด; # จัดการโดย Certbot
    ฟัง 443 ssl; # จัดการโดย Certbot
    ssl_certificate /etc/letsencrypt/live/*****./fullchain.pem; # จัดการโดย Certbot
    ssl_certificate_key /etc/letsencrypt/live/*****./privkey.pem; # จัดการโดย Certbot
    รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot

}
เซิร์ฟเวอร์ {
    ถ้า ($host = *****.com) {
        ส่งคืน 301 https://$host$request_uri;  
    } # จัดการโดย Certbot


    ฟัง 80;
    ฟัง [::]:80;

    server_name *****.com;
    กลับ 404; # จัดการโดย Certbot


}

และการโทร php ของฉัน


    ยาม\init(['dsn' => 'https://****.ingest.sentry.io/***' ]);
    โยนข้อยกเว้นใหม่ ("Sentry กำลังทำงานกับ ".$_ENV['ENV']" เครื่อง!");

ในขณะที่ติดตั้งผู้แต่งโดยใช้ส่วนผู้แต่ง json นี้

"จำเป็นต้อง": {
        "ยาม/sdk": "^3.1",
....

ความคิดใด ๆ หรือแนวคิดใด ๆ ที่จะแก้ปัญหานี้ได้อย่างไร

อัปเดต

ไฟล์บันทึกข้อผิดพลาดพบสิ่งนี้ (ดังนั้นข้อผิดพลาดจึงถูกบันทึก):

2021/07/02 13:22:12 [ข้อผิดพลาด] 17232#17232: *193 ส่ง FastCGI ใน stderr: "ข้อความ PHP: ข้อผิดพลาดร้ายแรงของ PHP: ข้อยกเว้นที่ไม่ได้ตรวจสอบ: Sentry กำลังทำงานบนเครื่องทดสอบ! ใน /var/www/services/ some-service/Config/sentryloader.php:13
การติดตามสแต็ก:
#0 /var/www/services/some-service/Config/bootstrap.php(15): รวม()
#1 /var/www/services/some-service/index.php(6): include('/var/www/servic...')
#2 {หลัก}
  ส่งใน /var/www/services/some-service/Config/sentryloader.php ที่บรรทัด 13" ขณะอ่านส่วนหัวการตอบสนองจากอัปสตรีม ไคลเอ็นต์: ****ip**** เซิร์ฟเวอร์: ****.com คำขอ: "GET /get HTTP/1.1", อัปสตรีม: "fastcgi://unix:/var/run/php/php-fpm.sock:", โฮสต์: "****.com"

อัปเดต: snippets/fastcgi-php.conf :

# regex เพื่อแบ่ง $uri เป็น $fastcgi_script_name และ $fastcgi_path
fastcgi_split_path_info ^(.+?\.php)(/.*)$;

# ตรวจสอบว่ามีสคริปต์ PHP อยู่ก่อนที่จะส่งต่อ
try_files $fastcgi_script_name =404;

# ข้ามความจริงที่ว่า try_files รีเซ็ต $fastcgi_path_info
# ดู: http://trac.nginx.org/nginx/ticket/321
ตั้ง $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

fastcgi_index index.php;
รวมถึง fastcgi.conf;
Michael Hampton avatar
cz flag
ตรวจสอบบันทึกข้อผิดพลาด PHP ของคุณ ตรวจสอบให้แน่ใจว่าคุณกำลังบันทึกข้อผิดพลาดของ PHP และรหัสของคุณสร้างข้อความตามความเหมาะสม
gb flag
ตรวจสอบแล้วว่า มันทำในไฟล์ที่กำหนด แม้ว่าข้อความจะดูแตกต่างจาก apache นั่นอาจเป็นปัญหาหรือไม่?
Michael Hampton avatar
cz flag
คลาส Sentry นั้นไม่บันทึกข้อผิดพลาดหรือส่งข้อยกเว้นหรือไม่!
gb flag
ฉันจะหาพวกเขาได้ที่ไหน ที่อื่น? ข้อผิดพลาดที่ฉันโพสต์คือทั้งหมดที่มีในบันทึกข้อผิดพลาด nginx
Michael Hampton avatar
cz flag
ไปดูเอกสารของมัน
gb flag
คลาสยามต้องเข้าสู่ไฟล์เดียวกันกับส่วนที่เหลือของแอพ php ... ดังนั้นจึงไม่มีข้อยกเว้นใด ๆ
Michael Hampton avatar
cz flag
คุณได้รับบันทึกข้อผิดพลาด PHP แม้ว่า ณ จุดนี้ ปัญหาจะเกิดขึ้นกับรหัสของคุณหรือกับบริการของบุคคลที่สามที่กำลังพูดคุยด้วย คุณควรโฟกัสตรงนั้น คุณสามารถรับความช่วยเหลือในการดีบักโค้ดของคุณได้ที่ [so]
gb flag
รหัสทำงานได้ดีภายใต้ apache รหัสเดียวกัน รหัสผู้ส่งเดียวกัน ข้อผิดพลาดเดียวกัน อะไรคือความแตกต่างที่สำคัญระหว่าง apache และ nginx ในบริบทนี้
gb flag
ฉันมาที่นี่เพราะการแก้จุดบกพร่องโค้ดเป็นเฟสแรกและขั้นตอนที่ละเอียดถี่ถ้วนของฉันแล้ว ดังนั้นปัญหาจะต้องเป็น nginx หรือการร้องขอของทหารยามบน nginx เนื่องจากฉันไม่ใช่ผู้เชี่ยวชาญเกี่ยวกับ nginx หรือ Sentry ฉันคิดว่านี่เป็นการแลกเปลี่ยนสแต็กที่ถูกต้องใช่ไหม ไมเคิล ไม่เป็นไร ถ้าคุณไม่รู้วิธีแก้ปัญหา อาจมีคนอื่นรู้เบาะแส...
mforsetti avatar
tz flag
ระบบปฏิบัติการของคุณคืออะไร? หากคุณใช้ CentOS ให้ลองใช้บันทึกของ SELinux คุณติดตั้ง `php-curl` แล้วหรือยัง ดูเหมือนว่า `sentry/sdk` ต้องใช้ cURL เพื่อเรียก HTTP API
gb flag
ระบบปฏิบัติการคือ debian 10, ad curl: `php7.4-curl เป็นเวอร์ชันใหม่ล่าสุดแล้ว (7.4.20-1+0~20210604.45+debian10~1.gbpfeee62)`
mforsetti avatar
tz flag
ลอง [ส่ง](https://docs.sentry.io/platforms/php/usage/) ข้อความด้วยตนเอง หรือผ่าน `catch` หากข้อความแสดงบน Sentry คุณอาจยังไม่ได้ตั้งค่า [exception handler](https://www.php.net/manual/en/function.set-exception-handler.php) ของสคริปต์เป็น Sentry
gb flag
ฉันจะตั้งค่าได้อย่างไร
gb flag
ฉันลองส่งด้วย catch ไม่มีอะไร: / แต่บางทีฉันสามารถดีบั๊กได้ ...
sv flag
เราขอเนื้อหาของ `snippets/fastcgi-php.conf` ได้ไหม
gb flag
@pothi: อัปเดตแล้ว อะไรจะบอกฉันว่าไฟล์นั้น (ฉันไม่ได้แตะต้องการกำหนดค่าหลังจาก insallation btw ทั้งหมดควรเป็นค่าเริ่มต้น)
mforsetti avatar
tz flag
ใช้ `\Sentry\captureMessage('เกิดข้อผิดพลาด');` ลองตรวจสอบว่าคุณใช้โควต้ากิจกรรมไม่หมดหรือไม่ และ[ลองปิดการป้องกัน Spike](https://blog.sentry.io/2018/05/08/event-spike-protection#can-i-turn -spike-protection-off).
gb flag
ไม่ ไม่ ฉันมีเพียงข้อผิดพลาดในการดูที่รายงานเครื่องมือจนถึงตอนนี้ และในขณะที่การตั้งค่าแอปเฉพาะนี้ดูเหมือนจะไม่รายงานอะไรเลย แอปอื่นๆ บนเซิร์ฟเวอร์อื่นยังคงรายงานอยู่ และการจำลองแอปเดียวกันในเครื่องของฉันแต่อยู่บนเซิร์ฟเวอร์ apache สามารถรายงานข้อผิดพลาด
gb flag
ฉันยังปิดไฟร์วอลล์และตรวจสอบว่านี่อาจเป็นปัญหาหรือไม่ - ยังไม่มีการแจ้งเตือน

โพสต์คำตอบ

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