Điểm:0

Sentry with PHP and nginx: errors do not occur in sentry dashboard anymore

lá cờ gb

I am stuck with my nginx (nginx/1.14.2) configuration for a php (php-7.4) App that would normally send error notifications to sentry.

I moved a php application from an apache to nginx server and now my sentry errors are not reported anymore ... what did I do wrong?

here is my nginx config:

server {

    root /var/www/services/some-sesrvice;

    index index.php;

    server_name *****.com;

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

    location / {
        try_files $uri $uri/ /index.php;
    }
    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php-fpm.sock;
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/*****./fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/*****./privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    if ($host = *****.com) {
        return 301 https://$host$request_uri;  
    } # managed by Certbot


    listen 80;
    listen [::]:80;

    server_name *****.com;
    return 404; # managed by Certbot


}

and my php call


    Sentry\init(['dsn' => 'https://*****.ingest.sentry.io/***' ]);
    throw new Exception("Sentry is working on ".$_ENV['ENV']." machine!");

While composer is installed using this composer.json part

"require": {
        "sentry/sdk": "^3.1",
....

Any ideas or any ideas how to debug this?

UPDATE

The error log file finds this (so the error is captured):

2021/07/02 13:22:12 [error] 17232#17232: *193 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Exception: Sentry is working on TEST machine! in /var/www/services/some-service/Config/sentryloader.php:13
Stack trace:
#0 /var/www/services/some-service/Config/bootstrap.php(15): include()
#1 /var/www/services/some-service/index.php(6): include('/var/www/servic...')
#2 {main}
  thrown in /var/www/services/some-service/Config/sentryloader.php on line 13" while reading response header from upstream, client: ****ip****, server: ****.com, request: "GET /get HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php-fpm.sock:", host: "****.com"

UPDATE: snippets/fastcgi-php.conf :

# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+?\.php)(/.*)$;

# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;

# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;

fastcgi_index index.php;
include fastcgi.conf;
Michael Hampton avatar
lá cờ cz
Kiểm tra nhật ký lỗi PHP của bạn. Đảm bảo rằng bạn đang thực sự ghi lại lỗi PHP và mã của bạn tạo thông báo khi thích hợp.
lá cờ gb
Đã kiểm tra điều đó rồi. Nó thực hiện trong tệp được xác định. Mặc dù thông báo có vẻ khác với apache. Đó có thể là một vấn đề?
Michael Hampton avatar
lá cờ cz
Không phải lớp Sentry đó ghi lại bất kỳ lỗi nào hay đưa ra ngoại lệ sao?!
lá cờ gb
Tôi có thể tìm thấy chúng ở đâu? Một nơi khác? Lỗi tôi đã đăng là tất cả những gì có trong nhật ký lỗi nginx.
Michael Hampton avatar
lá cờ cz
Đi xem tài liệu của nó.
lá cờ gb
lớp canh gác phải đăng nhập vào cùng một tệp với phần còn lại của ứng dụng php ... vì vậy không, nó không đưa ra bất kỳ ngoại lệ nào
Michael Hampton avatar
lá cờ cz
Tuy nhiên, bạn đang ghi lại các lỗi PHP. Tại thời điểm này, vấn đề sẽ xảy ra với mã của bạn hoặc với dịch vụ của bên thứ ba mà nó đang nói chuyện. Bạn nên tập trung ở đó. Bạn có thể nhận trợ giúp gỡ lỗi mã của mình trên [so].
lá cờ gb
Mã này hoạt động tốt trong apache. cùng một mã, cùng một id cảnh báo, cùng một lỗi. Điều gì sẽ là một sự khác biệt lớn giữa apache và nginx trong bối cảnh này?
lá cờ gb
Tôi đến đây vì gỡ lỗi mã là giai đoạn đầu tiên và đã đầy đủ của tôi. Vì vậy, vấn đề phải là nginx hoặc lệnh gọi của sentry trên nginx. Vì tôi không phải là chuyên gia về nginx cũng như về sentry, tôi nghĩ đây là sàn giao dịch stackex phù hợp, phải không? Michael, không sao đâu, nếu bạn không biết giải pháp. Có lẽ ai đó khác có manh mối ...
mforsetti avatar
lá cờ tz
hệ điều hành của bạn là gì? nếu bạn đang dùng CentOS, hãy thử nhật ký SELinux. bạn đã cài đặt `php-curl` chưa? có vẻ như `sentry/sdk` yêu cầu cURL gọi API HTTP của nó.
lá cờ gb
Hệ điều hành là debian 10, ad curl: `php7.4-curl đã là phiên bản mới nhất (7.4.20-1+0~20210604.45+debian10~1.gbpfeee62).`
mforsetti avatar
lá cờ tz
thử [gửi](https://docs.sentry.io/platforms/php/usage/) một tin nhắn theo cách thủ công hoặc qua `catch`. nếu thông báo hiển thị trên Sentry, thì có thể bạn chưa đặt [trình xử lý ngoại lệ](https://www.php.net/manual/en/function.set-exception-handler.php) của tập lệnh thành của Sentry.
lá cờ gb
Tôi sẽ đặt nó như thế nào?
lá cờ gb
Tôi đã thử gửi bằng cách bắt, không có gì: / nhưng có lẽ tôi có thể gỡ lỗi bằng cách nào đó ...
lá cờ sv
Chúng tôi có thể có nội dung của `snippets/fastcgi-php.conf` không?
lá cờ gb
@pothi: đã cập nhật, điều gì sẽ cho tôi biết tệp đó? (Tôi chưa chạm vào cấu hình sau khi cài đặt btw. Tất cả phải là giá trị mặc định)
mforsetti avatar
lá cờ tz
sử dụng `\Sentry\captureMessage('Đã xảy ra sự cố');`. hãy thử kiểm tra nếu bạn chưa sử dụng hết hạn ngạch sự kiện của mình và [thử tắt Spike Protection](https://blog.sentry.io/2018/05/08/event-spike-protection#can-i-turn -spike-bảo vệ-tắt).
lá cờ gb
Không không, tôi chỉ có một lỗi xem báo cáo công cụ cho đến nay và trong khi thiết lập ứng dụng cụ thể này dường như không báo cáo bất cứ điều gì, các ứng dụng khác trên các máy chủ khác vẫn báo cáo và cả bản sao cục bộ của tôi về cùng một ứng dụng nhưng trên máy chủ apache , có thể báo lỗi.
lá cờ gb
Tôi cũng đã tắt tường lửa và kiểm tra xem đây có phải là sự cố không - vẫn không có thông báo.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.