日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

php fpm 不写errorlog,PHP-FPM不写入错误日志

發布時間:2024/9/19 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php fpm 不写errorlog,PHP-FPM不写入错误日志 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PHP-FPM不寫入錯誤日志

我剛剛安裝了一個nginx + php-fpm服務器。 一切似乎很好,除了PHP-FPM從不將錯誤寫入其日志。

fpm.conf

[default] listen = /var/run/php-fpm/default.sock listen.allowed_clients = 127.0.0.1 listen.owner = webusr listen.group = webusr listen.mode = 0666 user = webusr group = webusr pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.status_path = /php/fpm/status ping.path = /php/fpm/ping request_terminate_timeout = 30s request_slowlog_timeout = 10s slowlog = /var/log/php-fpm/default/slow.log chroot = /var/www/sites/webusr catch_workers_output = yes env[HOSTNAME] = mapsvr.mapking.com php_flag[display_errors] = on php_admin_value[error_log] = /var/log/php-fpm/default/error.log php_admin_flag[log_errors] = on

nginx.conf

server { listen 80 default_server; server_name _; charset utf-8; access_log /var/log/nginx/access.log rest; include conf.d/drops.conf.inc; location / { root /var/www/sites/webusr/htdocs; index index.html index.htm index.php; } # pass the PHP scripts to FastCGI server listening on socket # location ~ \.php$ { root /var/www/sites/webusr/htdocs; include /etc/nginx/fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /htdocs/$fastcgi_script_name; if (-f $request_filename) { fastcgi_pass unix:/var/run/php-fpm/default.sock; } } location = /php/fpm/status { include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php-fpm/default.sock; } location = /php/fpm/ping { include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php-fpm/default.sock; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }

我做了一個錯誤的PHP腳本并運行,并在Web瀏覽器上看到錯誤輸出。 另外nginx錯誤日志說明從同一個消息fpm的stderr輸出。 我已經檢查用戶有寫(甚至已經嘗試777)的權限到指定的日志文件夾。 甚至指定的error.log文件已經由php-fpm成功創build。 但是,無論php腳本發生了多大的錯誤,日志文件都是空的。

這是怎么回事?

[稍后find原因]

這是許可。 更改所有者到網站的用戶解決了這個問題。

這對我工作:

; Redirect worker stdout and stderr into main error log. If not set, stdout and ; stderr will be redirected to /dev/null according to FastCGI specs. ; Default Value: no catch_workers_output = yes

編輯:

要編輯的文件是configuration所需池的文件。 默認是:/etc/php-fpm.d/www.conf

在find我的php-fpm日志寫入/var/log/upstart/php5-fpm.log之前,我苦苦掙扎了很久。 這似乎是如何新貴和php-fpm交互之間的一個錯誤。 在這里查看更多: https : //bugs.launchpad.net/ubuntu/+source/php5/+bug/1319595

我有一個類似的問題,并不得不做以下的pool.d/www.conf文件

php_admin_value[error_log] = /var/log/fpm-php.www.log php_admin_flag[log_errors] = on

它還沒有寫日志文件,所以我實際上已經通過touch /var/log/fpm-php.www.log創build它,然后設置正確的所有者sudo chown www-data.www-data /var/log/fpm-php.www.log 。

一旦完成,php5-fpm重新啟動,日志恢復。

有多個PHPconfiguration文件,但這是你需要編輯的一個:

/etc/php(version)?/fpm/pool.d/www.conf

取消注釋:

catch_workers_output

這將允許PHP stderr去php-fpm的錯誤日志而不是/ dev / null。

在v5.3.9和直到現在(5.3.14和5.4.4)的php-fpm中有一個bug https://bugs.php.net/bug.php?id=61045 。 開發者承諾的修復將在下一個版本中生效。 如果您不想等 – 在該頁面上使用補丁并重新構build或回滾到5.3.8。

我從這里收集了大量的答案,并提出了一個全面的解決scheme:

所以,如果你用php5-fpm設置nginx并使用error_log()logging消息,你可以在/var/log/nginx/error.log默認看到它。

如果你想使用error_log(print_r($myArr, true));logging大量數據(比如數組),就會出現問題error_log(print_r($myArr, true)); 。 如果一個數組足夠大,看來nginx會截斷你的日志條目。

為了解決這個問題,你可以configurationfpm來pipe理日志。 以下是這樣做的步驟。

打開/etc/php5/fpm/pool.d/www.conf :

$ sudo nano /etc/php5/fpm/pool.d/www.conf

取消注釋以下兩行; 在行首:

;php_admin_value[error_log] = /var/log/fpm-php.www.log ;php_admin_flag[log_errors] = on

創build/var/log/fpm-php.www.log :

$ sudo touch /var/log/fpm-php.www.log;

更改/var/log/fpm-php.www.log所有權,以便php5-fpm可以對其進行編輯:

$ sudo chown vagrant /var/log/fpm-php.www.log

注意: vagrant是我需要給予所有權的用戶。 你可以通過運行$ ps aux | grep php.*www來看到這個用戶應該是什么 $ ps aux | grep php.*www和看第一列。

重新啟動php5-fpm:

$ sudo service php5-fpm restart

現在你的日志將在/var/log/fpm-php.www.log 。

在您的fpm.conf文件中,您沒有設置僅用于錯誤logging的2個variables

這個variables是error_log(錯誤日志文件的文件path)log_level(錯誤日志級別)

; 錯誤日志文件; 注意:默認的前綴是/ usr / local / php / var; 默認值:log / php-fpm.log

error_log = log/php-fpm.log

; 日志級別; 可能的值:警報,錯誤,警告,通知,debugging; 默認值:通知

log_level = notice

在我的情況下,我顯示錯誤日志是去/var/log/php-fpm/www-error.log 。 所以我在/etc/php-fpm.d/www.conf中評論了這一行

php_flag[display_errors] is commented php_flag[display_errors] = on log will be at /var/log/php-fpm/www-error.log

如上所述,我也沒有注意到這一行

catch_workers_output = yes

現在我可以在由nginx指定的文件中看到日志。

檢查“PHP-FPM”的所有者目錄

你可以做:

ls -lah /var/log/php-fpm/ chown -R webusr:webusr /var/log/php-fpm/ chmod -R 777 /var/log/php-fpm/

總結

以上是生活随笔為你收集整理的php fpm 不写errorlog,PHP-FPM不写入错误日志的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。