You are here: 首頁 文章分類選單 PHP分享特區

飛朵啦學習手札

本網站建議使用Firefox2.0以上,或是使用Goole瀏覽器來瀏覽,並使用1024x768解析度來觀看.

PHP分享特區

DateTime::diff() 計算 年差異 出現錯誤問題

E-mail 列印 PDF

這一個問題是在計算年資時,出現了差異,DEBUG 數據如下:

===== DEBUG START =====
person_id = 1273
raw due_date = 2024-03-01
TODAY = 2026-03-12
NYD = 2027-01-01
calculateAnnualLeaveType2(date, TODAY) = 
Array
(
	[completed_years]=>1
    [leave_days] => 7
    [source_date] => 2026-03-01
    [expired_at] => 2027-02-28
    [title] => 115.03.01-116.02.28
)
===== DEBUG END =====

這是特休,理論上年度應該是兩年,計算是這樣:

 $hire = new DateTime($hire_date);  $last_anniversary = DateTime::createFromFormat('Y-m-d', $year . '-' . $md);  $completed_years = $hire->diff($last_anniversary)->y;
最近更新 ( 週五, 13 三月 2026 08:46 )
 
 

nginx 502 Bad Geteway 錯誤(php-fpm “stderr 未處理)

E-mail 列印 PDF

目前碰到一個很神奇的nginx 502 Bad Geteway錯誤問題。

出現錯誤的程式並不複雜,可以說只是跑一個大約30次的迴圈,而且不會是無窮迴圈,但在不同查詢條件下就會出現502的錯誤。

但為這在我測試電腦(apache)同一支程式,同樣條件,同樣的資料卻沒有出現502整頁掛掉的事情。

後來加上

ini_set('log_errors', 1);

ini_set('error_reporting', E_ALL);

ini_set('error_log', 'log/php_error.log');

程式便正常了,然後仔細一看錯誤訊息裡有許多的未定義,我修正未定義錯誤後,將error_log關掉,也正常了。

我將此問題丟到ChatGpt回應如下:

 

=======ChatGpt===============

 

你的直覺完全正確,而且你剛描述的狀況 正好踩到 Nginx + PHP-FPM 的一個很常見、但非常隱晦的「錯誤訊息 buffer」問題
這也是為什麼:

  • Apache (mod_php) 完全不會出問題

  • 同一支程式,在 Nginx 就會莫名其妙 502

  • 加上 error_log 後反而正常

你這次看到的狀況完全符合 php-fpm “stderr 未處理 + 大量錯誤訊息導致 worker 退出 / pipe broken” 這個經典問題。

下面我幫你把整個機制講清楚,你會完全理解為什麼會這樣(而且你以後遇到同型 502 都能瞬間定位)。

最近更新 ( 週二, 02 十二月 2025 09:53 )
 
 

錯誤SQLSTATE[HY000]: General error: 1 no such table: sessions

E-mail 列印 PDF

在composer裝好後,別忘了 使用下列指令建立基本資料庫

php artisan migrate

該狀況再在Laravel11出現

最近更新 ( 週五, 02 五月 2025 11:21 )
 

如何在Ubuntu 22.04 上安裝多個PHP 版本

E-mail 列印 PDF

本文轉自:https://devpress.csdn.net/linux/62ee9179c6770329307f3ca0.html

PHP是一種用於開發Web 應用程式的程式語言。您必須在Ubuntu 系統上安裝PHP 套件才能運行在其上編寫的應用程式。通常用於建立電子商務網站、部落格和API 應用程式。如果您正在尋找一種在Ubuntu 22.04 上安裝PHP 的簡單方法,那就別無所求。在這篇文章中,我們將向您展示如何快速輕鬆地做到這一點。

我們將使用Ondrej PPA在Ubuntu 22.04 LTS 系統上安裝PHP。其中包含PHP8.1,8.0,7.4,7.3,[7.22 10002 100027.1、7.0和PHP5.6包。您可以根據應用程式的需要安裝任何版本。建議新的應用程式開發人員使用最新的PHP 版本,即PHP 8.1。

在本教程中,您將學習如何在Ubuntu 22.04 LTS系統上安裝PHP。本教學也相容於Ubuntu 20.04和18.04系統。

第一步:系統更新

首先,透過控制台登入Ubuntu 22.04然後使用以下命令更新Apt 快取並升級系統的當前軟體包:

 

sudo apt- get update
sudo apt- get upgrade

最近更新 ( 週六, 02 十二月 2023 11:51 )
 

PHP .ini中display_errors = Off失效的解決

E-mail 列印 PDF

問題:

PHP 設置文件php .ini中明明已經設置display_errors = Off,但是在運行過程中,網頁上還是會出現錯誤信息。

解決:

1.經查log_errors= On,據官方的說法,當這個log_errors設置為On,那麼必須指定error_log文件,如果沒指定或者指定的文件沒有權限寫入,那麼照樣會輸 出到正常的輸出渠道,那麼也就使得display_errors 這個指定的Off失效,錯誤信息還是打印了出來。於是將log_errors = Off。

2.修改後請記得重啟(reload)php-fpm,不要只是重啟apache 或 nginx

 
第 1 頁, 共 8 頁