@yossiz תודה רבה!
זנ כנראה לא הבעיה. (והא ראיה שעבד לי הגישה לcmd).
אבל לו הייתי יודע על הפוסט בסטאק הייתי מראש מוותר על nginx בלוקאלי. (או מתקין לינוקס בלוקלי? ).
עכ"פ חזרתי עכשיו לאפאצי שהיה לי, ונראה אם אני יסתדר בהמשך.
chagold
-
בקשת cURL לnginx שעובדת מהקונסול אבל לא מתוך PHP -
בקשת cURL לnginx שעובדת מהקונסול אבל לא מתוך PHPהתקרבתי לפתרון. לא יודע איך לחצות את הגשר.
ניסיתי לבדוק אם הPHP יריץ את הפקודה cmd זה כן יעבוד. והתברר שהבקשה עצמה תקינה, (והיא גם מדפיסה את התגובה לקובץc:\url_response.txt
), היא רק לא מחזירה את הפלט לתוכנת הPHP שביקשה אותה.
זה הפקודהfunction createFullSystem() { $urlFile = 'C:\\url_command.txt'; $batchFile = 'C:\\url_runner.bat'; $outputFile = 'C:\\url_response.txt'; $url = "http://g-in.com:200/index.php?" . http_build_query([ 'format' => 'json', 'p' => 'chack_token_to_sp', 'Module' => 'sub_projects', 'token_sub_project' => 'kjsadouewio', 'token_user' => 'AIAvo7yAhWqMrQJl271P', 'nick' => 'administrator' ]); file_put_contents($urlFile, $url); $batchContent = "@echo off\n"; $batchContent .= "cd C:\\tools\n"; $batchContent .= "set /p URL=<" . $urlFile . "\n"; // בדיוק אותה פקודה שעובדת ב-CMD $batchContent .= "C:\\Windows\\System32\\curl.exe -v -H \"User-Agent: PHP/cURL\" --connect-timeout 10 -m 10 \"%URL%\" > " . $outputFile . " 2>&1\n"; $batchContent .= "exit\n"; file_put_contents($batchFile, $batchContent); $descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w") ); $process = proc_open("cmd /c " . $batchFile, $descriptorspec, $pipes); if (is_resource($process)) { stream_set_blocking($pipes[1], 0); stream_set_blocking($pipes[2], 0); $start = time(); $timeout = 1; do { $status = proc_get_status($process); if (!$status['running']) { break; } if (time() - $start > $timeout) { proc_terminate($process); echo "Process terminated due to timeout\n"; break; } sleep(1); } while (true); fclose($pipes[0]); fclose($pipes[1]); fclose($pipes[2]); proc_close($process); } if(file_exists($outputFile)) { echo "Response from server:\n"; echo file_get_contents($outputFile); } }
-
איך אני מתכנת קורא כרטיסם EMV -
בקשת cURL לnginx שעובדת מהקונסול אבל לא מתוך PHPזה לוג רק של שגיאות.
הוא נוצר באמצעות הקוד הזה -c:\tools\nssm.exe set PHP-FPM AppParameters "-b 127.0.0.1:9000 -d error_log=C:/php/logs/php-fpm.log -d display_errors=1 -d log_errors=1 -d error_reporting=E_ALL"
לא הצלחתי לעשות לוג של כל הבקשות
# nginx.conf - Combined Configuration worker_processes 1024; error_log "C:/nginx/logs/error.log"; #error_log logs/error.log notice; #error_log logs/error.log info; events { worker_connections 1024; } http { include "C:/nginx/conf/mime.types"; default_type application/octet-stream; charset utf-8; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; log_format debug '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" ' 'rt=$request_time ua="$upstream_addr" ' 'us="$upstream_status" ut="$upstream_response_time" ' 'ul="$upstream_response_length" ' 'cs=$upstream_cache_status'; access_log logs/access.log debug; access_log "C:/nginx/logs/access.log" main; sendfile on; keepalive_timeout 65; # FastCGI Settings fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; # Default server (port 80) server { charset utf-8; listen 80; server_name localhost; root C:/xampp/reko; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; autoindex on; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } # Port 200 server (reko) server { listen 200; server_name localhost; root C:/xampp/reko; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; autoindex on; proxy_connect_timeout 10; proxy_send_timeout 10; proxy_read_timeout 10; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } }
והקונפיגורציה של php-fpm
[global] pid = C:/nginx/php-fpm.pid error_log = C:/php/logs/php-fpm.log [www] listen = 127.0.0.1:9000 listen.allowed_clients = 127.0.0.1 user = nobody pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 access.log = C:/php/logs/php-fpm-access.log catch_workers_output = yes
-
בקשת cURL לnginx שעובדת מהקונסול אבל לא מתוך PHPאבל לא התוים הנוספים הם הסיבה. כי עשיתי טסט בלי פרמטרים בכלל. ועדיין..
[26-Dec-2024 08:08:38 UTC] PHP Warning: file_get_contents(http://g-in.com:200/index.php): Failed to open stream: HTTP request failed! in C:\xampp\file.php on line 340 [26-Dec-2024 08:08:38 UTC] API call failed: Failed to get contents
-
בקשת cURL לnginx שעובדת מהקונסול אבל לא מתוך PHPרק עכשיו הצלחתי לגרום לו לכתוב את הלוגים של php-fpm.
תכלס, הלוג מדפיס רק את הבקשה של @dovid את שלי הוא לא מדפיס.
אבל במה שהוא מדפיס נוסף טקסט 'amp;
' כמה פעמים.[26-Dec-2024 07:52:20 UTC] PHP Warning: file_get_contents(http://g-in.com:200/index.php?format=json&p=chack_token_to_sp&Module=sub_projects&token_sub_project=kjsadouewio&token_user=AIAvo7yAhWqMrQJl271P&nick=administrator): Failed to open stream: HTTP request failed! in C:\xampp\file.php on line 339 [26-Dec-2024 07:52:20 UTC] API call failed: Failed to get contents
-
בקשת cURL לnginx שעובדת מהקונסול אבל לא מתוך PHPזה מוגדר עם php-fpm.
אבל הוא לא כותב ללוגים שלו כלום.
לא בבקשה מהURL ולא מהPHP. -
בקשת cURL לnginx שעובדת מהקונסול אבל לא מתוך PHPרק עכשיו הצלחתי להבין מה הסיבה לכל שורה בלוגים של הnginx.
כשאני פונה מהURL (=בגוגל כרום, מה שחוזר תקין) יוצא מה שכתוב בשורה 1 ו-2. (לא יודע למה הוא מדפיס 2 שורות כאילו זה 2 בקשות).
שורה 4 זה הבקשה בצורה ש@dovid אמר לי לעשות באמצעות file_get_contents, ושורה 5 זה הבקשה באמצעות curl.
לא יודע למה בשורה 1,4,5 הוא לא כותב את כל הדומיין אלא מתחיל מה-index.php.127.0.0.1 - - [24/Dec/2024:23:36:44 +0200] "GET /index.php?format=json&p=chack_token_to_sp&Module=sub_projects&token_sub_project=kjsadouewio&token_user=AIAvo7yAhWqMrQJl271P&nick=administrator HTTP/1.1" 200 104 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" "-" 127.0.0.1 - - [24/Dec/2024:23:36:45 +0200] "GET /favicon.ico HTTP/1.1" 200 38672 "http://g-in.com:200/index.php?format=json&p=chack_token_to_sp&Module=sub_projects&token_sub_project=kjsadouewio&token_user=AIAvo7yAhWqMrQJl271P&nick=administrator" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" "-" 127.0.0.1 - - [24/Dec/2024:23:37:56 +0200] "GET /index.php?format=json&p=chack_token_to_sp&Module=sub_projects&token_sub_project=kjsadouewio&token_user=AIAvo7yAhWqMrQJl271P&nick=administrator HTTP/1.1" 499 0 "-" "-" "-" 127.0.0.1 - - [24/Dec/2024:23:38:06 +0200] "GET /index.php?format=json&p=chack_token_to_sp&Module=sub_projects&token_sub_project=kjsadouewio&token_user=AIAvo7yAhWqMrQJl271P&nick=administrator HTTP/1.1" 499 0 "-" "PHP/cURL" "-"
@yossiz איפה אני מוצא את הלוגים של php-fpm? בתיקיית PHP אין לי בכלל תיקיית משנה של logs.
-
בקשת cURL לnginx שעובדת מהקונסול אבל לא מתוך PHPלכאו' הוא לא מקבל את הבקשה בכלל. (הדפסתי ללוג ובבקשה הרלוונטית הוא לא מדפיס, ובבקשות האחרות כן).
-
בקשת cURL לnginx שעובדת מהקונסול אבל לא מתוך PHPWarning: file_get_contents(http://g-in.com:200/index.php?format=json&p=chack_token_to_sp&Module=sub_projects&token_sub_project=kjsadouewio&token_user=AIAvo7yAhWqMrQJl271P&nick=administrator): Failed to open stream: HTTP request failed! in C:\xampp\file.php on line 338
-
בקשת cURL לnginx שעובדת מהקונסול אבל לא מתוך PHPWarning: file_get_contents(http:\/\/g-in.com:200\/index.php?format=json&p=chack_token_to_sp&Module=sub_projects&token_sub_project=kjsadouewio&token_user=AIAvo7yAhWqMrQJl271P&nick=administrator): Failed to open stream: No such file or directory in C:\xampp\file.php on line 338
-
בקשת cURL לnginx שעובדת מהקונסול אבל לא מתוך PHPמשהו מוזר.
יש לי כתובת URL (לוקאלי) שכשאני ניגש אליה מכרום או בפקודת cURL מהcmd התגובה תקינה, אבל כשאני ניגש אליה מקוד PHP הוא לא מגיב ונתקע בטיימאוט.הפונקציה בPHP היא:
function makeAPIRequest($url) { // Initialize cURL session $curl = curl_init(); // Enable verbose debug output $verbose = fopen('php://temp', 'w+'); curl_setopt($curl, CURLOPT_STDERR, $verbose); curl_setopt($curl, CURLOPT_VERBOSE, true); // Set cURL options curl_setopt_array($curl, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_VERBOSE => true, CURLOPT_STDERR => $verbose, CURLOPT_USERAGENT => 'PHP/cURL', CURLOPT_INTERFACE => "127.0.0.1", CURLOPT_PROTOCOLS => CURLPROTO_HTTP, CURLOPT_TIMEOUT => 10, // הקטנתי את הtimeout CURLOPT_CONNECTTIMEOUT => 5, // הוספתי timeout להתחברות CURLOPT_TCP_NODELAY => true, // נסה למנוע buffering CURLOPT_FORBID_REUSE => true, // מנע שימוש חוזר בחיבור CURLOPT_FRESH_CONNECT => true, // אכוף חיבור חדש CURLOPT_HTTPHEADER => [ "Accept: application/json", "Cache-Control: no-cache", "Connection: close", // שיניתי ל-close ], ]); // Log request start time $startTime = microtime(true); // Execute cURL request $response = curl_exec($curl); // Calculate request duration $duration = microtime(true) - $startTime; // Get request info $info = curl_getinfo($curl); // If there's an error, get verbose debug information if ($response === false) { rewind($verbose); $verboseLog = stream_get_contents($verbose); $errorDetails = [ 'error' => curl_error($curl), 'error_no' => curl_errno($curl), 'info' => $info, 'verbose_log' => $verboseLog, 'duration' => $duration, 'url' => $url ]; fclose($verbose); curl_close($curl); throw new Exception("cURL Error: " . json_encode($errorDetails, JSON_PRETTY_PRINT)); } // Close resources fclose($verbose); curl_close($curl); // Log success information error_log(sprintf( "API Request successful - URL: %s, Duration: %.2fs, Status: %d, Size: %d bytes", $url, $duration, $info['http_code'], $info['size_download'] )); // Decode JSON response $decodedResponse = json_decode($response, true); if (json_last_error() !== JSON_ERROR_NONE) { throw new Exception(sprintf( "JSON Decode Error: %s. Raw response: %s", json_last_error_msg(), substr($response, 0, 1000) )); } return $decodedResponse; }
שרת האינטרנט nginx. (עדכון: בדקתי גם באפאצי וזה ג"כ נתקע ).
בלוגים הוא ניגש לnginx127.0.0.1 - - [24/Dec/2024:16:06:05 +0200] "GET /index.php?format=json&p=chack_token_to_sp&Module=sub_projects&token_sub_project=kjsadouewio&token_user=AIAvo7yAhWqMrQJl271P&nick=administrator HTTP/1.1" 499 0 "-" "PHP/cURL"
אבל מאיזשהו סיבה הוא נתקע אח"כ.
והתגובה היא:
Error: cURL Error: { "error": "Operation timed out after 10016 milliseconds with 0 bytes received", "error_no": 28, "info": { "url": "http:\/\/g-in.com:200\/index.php?format=json&p=chack_token_to_sp&Module=sub_projects&token_sub_project=kjsadouewio&token_user=AIAvo7yAhWqMrQJl271P&nick=administrator", "content_type": null, "http_code": 0, "header_size": 0, "request_size": 278, "filetime": -1, "ssl_verify_result": 0, "redirect_count": 0, "total_time": 10.016296, "namelookup_time": 0.001899, "connect_time": 0.002136, "pretransfer_time": 0.002204, "size_upload": 0, "size_download": 0, "speed_download": 0, "speed_upload": 0, "download_content_length": -1, "upload_content_length": 0, "starttransfer_time": 0, "redirect_time": 0, "redirect_url": "", "primary_ip": "127.0.0.1", "certinfo": [], "primary_port": 200, "local_ip": "127.0.0.1", "local_port": 52303, "http_version": 0, "protocol": 1, "ssl_verifyresult": 0, "scheme": "http", "appconnect_time_us": 0, "connect_time_us": 2136, "namelookup_time_us": 1899, "pretransfer_time_us": 2204, "redirect_time_us": 0, "starttransfer_time_us": 0, "posttransfer_time_us": 2214, "total_time_us": 10016296, "effective_method": "GET", "capath": "", "cainfo": "" }, "verbose_log": "* Host g-in.com:200 was resolved.\n* IPv6: (none)\n* IPv4: 127.0.0.1\n* Trying 127.0.0.1:200...\n* Name '127.0.0.1' family 2 resolved to '127.0.0.1' family 2\n* Local port: 0\n* Connected to g-in.com (127.0.0.1) port 200\n* using HTTP\/1.x\n> GET \/index.php?format=json&p=chack_token_to_sp&Module=sub_projects&token_sub_project=kjsadouewio&token_user=AIAvo7yAhWqMrQJl271P&nick=administrator HTTP\/1.1\r\nHost: g-in.com:200\r\nUser-Agent: PHP\/cURL\r\nAccept: application\/json\r\nCache-Control: no-cache\r\nConnection: close\r\n\r\n* Request completely sent off\n* Operation timed out after 10016 milliseconds with 0 bytes received\n* closing connection #0\n", "duration": 10.016844987869263, "url": "http:\/\/g-in.com:200\/index.php?format=json&p=chack_token_to_sp&Module=sub_projects&token_sub_project=kjsadouewio&token_user=AIAvo7yAhWqMrQJl271P&nick=administrator" }
-
לתכנת דף PHP שיתחבר לקורא כרטיסים@barbar לפעמים פריטים כאלו מגיעים אם אישזהו תוכנה (אולי בדיסק) שאפשר להשתמש בפונקציות שלה באיזשהו צורה. גם אם לא PHP ישירות.
-
זיהוי אקרודים בפייתוןדרך לזיהוי אקורדים או רק בפייתון?
-
איפה משתמשי נטפרי יכולים להתעדכן במצב בזמן אמת?אפליקציית צופר ואתר פיקוד העורף
-
דרוש מידע על מחשב מרוחק בענן שניתן להתקין עליו סינון אינטרנט -
עזרה עם שרת שהתחיל לעבוד בצורה מאוד איטיתתכתוב בקונסול top
-
הוצאת נתונים מדוח שעון נוכחותעשיתי גוגל שיט, עם גוגל סקריפט שיוצר לשונית של ניתוח נוכחות (כשלוחצים על הכפתור 'ניתוח נוכחות')
https://docs.google.com/spreadsheets/d/1Pa8CheRXgVoyvEKLcuHhKWi0dcTMv_1PZwdYA5C6d4Q/edit?gid=1196887316
תבדוק אם זה עונה על צרכיך.נ.ב. משום מה זה הוגדר בנטפרי כקובץ שהתפרסם לציבור, אולי כי הלינק מוגדר עכשיו (בשביל הפרסום בפורום) שכל מי שיש לו את זה יכול לפתוח, עכ"פ שלחתי פניה לפתוח את זה.נ.ב. 2 כמובן שהקרדיט לclaude.
-
הוצאת נתונים מדוח שעון נוכחותhttps://jsfiddle.net/3Lfatxmy/
תסתכל מה הוא מדפיס בקונסול. זה טוב לך?