好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

.php-fpm报错 php文件报错

很多站长朋友们都不太清楚.php-fpm报错,今天小编就来给大家整理.php-fpm报错,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php-fpm错误日志不能记录怎么办 2、 docker-compose启动php-fpm报错问题 3、 php-fpm start报错:/etc/php-fpm.conf:1: parser error : Document is empty,parser error : 4、 centos配置lnmp问题,整个环境都配置成功了,Php-fpm启动老是报错却又启动成功,如何解决 5、 docker 部署nginx、php-fpm错误记录 6、 nginx+php 生成缩略图的时候发现没有jpeg支持安装完了重启php-fpm出错 php-fpm错误日志不能记录怎么办

要想让php-fpm显示错误日志,首先需要配置php-fpm。

在php-fpm的配置文件中(一般位于php安装目录下的etc/php-fpm.conf)配置php错误日志的文件路径。

1

2

3

4

5

6

; Error log file

; If it's set to "syslog", log is sent to syslogd instead of being written

; in a local file.

; Note: the default prefix is /home/wangwei/php/var

; Default Value: log/php-fpm.log

;error_log = log/php-fpm.log

如上是我的php-fpm.conf文件中配置错误日志的地方。把error_log = log/php-fpm.log之前的;去掉,然后修改为:

; Error log file

; If it's set to "syslog", log is sent to syslogd instead of being written

; in a local file.

; Note: the default prefix is /home/wangwei/php/var

; Default Value: log/php-fpm.log

error_log = /home/work/log/php-fpm.log.wf

修改之后,保存配置,然后重启php-fpm就可以啦。

注意如果用相对路径的话,的路径的前缀是基于php安装目录的var目录的。

docker-compose启动php-fpm报错问题

当你的机子关闭了ipv6启动php-fpm会出现:

address family not supported by protocol

鲁莽解决方法用命令 find / -name zz-docker.conf 找到配置文件位置

直接修改listen = [::]:9000 为 listen = 0.0.0.0:9000

官方DockerFIle:

一般正确做法是修改建立新的dockerfile,

sed "s/[::]:/0.0.0.0:/g" zz-docker.conf

(/var/lib/docker/aufs/diff/864a8992572a0791d45316907d130acaff7f61fe878662b3937c49477496d85c/usr/local/etc/php-fpm.d/zz-docker.conf)

另外解决方法就是不用compose,而是建立Dockerfile文件,里面跑ubuntu,nginx等,然后顺便安装phpfpm,相当于一个镜像,这样和外部本机ipv6环境无关啦。

php-fpm start报错:/etc/php-fpm.conf:1: parser error : Document is empty,parser error :

这个明显的是php-fpm.conf配置文件的问题,我给你份我用的

<configuration>

All relative paths in this config are relative to php's install prefix

<section name="global_options">

Pid file

<value name="pid_file">/opt/php/logs/php-fpm.pid</value>

Error log file

<value name="error_log">/opt/php/logs/php-fpm.log</value>

Log level

<value name="log_level">notice</value>

When this amount of php processes exited with SIGSEGV or SIGBUS ...

<value name="emergency_restart_threshold">10</value>

... in a less than this interval of time, a graceful restart will be initiated.

Useful to work around accidental curruptions in accelerator's shared memory.

<value name="emergency_restart_interval">1m</value>

Time limit on waiting child's reaction on signals from master

<value name="process_control_timeout">5s</value>

Set to 'no' to debug fpm

<value name="daemonize">yes</value>

</section>

<workers>

<section name="pool">

Name of pool. Used in logs and stats.

<value name="name">default</value>

Address to accept fastcgi requests on.

Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'

<value name="listen_address">/tmp/php-cgi.sock</value>

<value name="listen_options">

Set listen(2) backlog

<value name="backlog">-1</value>

Set permissions for unix socket, if one used.

In Linux read/write permissions must be set in order to allow connections from web server.

Many BSD-derrived systems allow connections regardless of permissions.

<value name="owner"></value>

<value name="group"></value>

<value name="mode">0666</value>

</value>

Additional php.ini defines, specific to this pool of workers.

<value name="php_defines">

<value name="sendmail_path">/usr/sbin/sendmail -t -i</value>

<value name="display_errors">1</value>

</value>

Unix user of processes

<value name="user">www</value>

Unix group of processes

<value name="group">www</value>

Process manager settings

<value name="pm">

Sets style of controling worker process count.

Valid values are 'static' and 'apache-like'

<value name="style">static</value>

Sets the limit on the number of simultaneous requests that will be served.

Equivalent to Apache MaxClients directive.

Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi

Used with any pm_style.

<value name="max_children">128</value>

Settings group for 'apache-like' pm style

<value name="apache_like">

Sets the number of server processes created on startup.

Used only when 'apache-like' pm_style is selected

<value name="StartServers">20</value>

Sets the desired minimum number of idle server processes.

Used only when 'apache-like' pm_style is selected

<value name="MinSpareServers">5</value>

Sets the desired maximum number of idle server processes.

Used only when 'apache-like' pm_style is selected

<value name="MaxSpareServers">35</value>

</value>

</value>

The timeout (in seconds) for serving a single request after which the worker process will be terminated

Should be used when 'max_execution_time' ini option does not stop script execution for some reason

'0s' means 'off'

<value name="request_terminate_timeout">0s</value>

The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file

'0s' means 'off'

<value name="request_slowlog_timeout">0s</value>

The log file for slow requests

<value name="slowlog">logs/slow.log</value>

Set open file desc rlimit

<value name="rlimit_files">65535</value>

Set max core size rlimit

<value name="rlimit_core">0</value>

Chroot to this directory at the start, absolute path

<value name="chroot"></value>

Chdir to this directory at the start, absolute path

<value name="chdir"></value>

Redirect workers' stdout and stderr into main error log.

If not set, they will be redirected to /dev/null, according to FastCGI specs

<value name="catch_workers_output">yes</value>

How much requests each process should execute before respawn.

Useful to work around memory leaks in 3rd party libraries.

For endless request processing please specify 0

Equivalent to PHP_FCGI_MAX_REQUESTS

<value name="max_requests">10240</value>

Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.

Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)

Makes sense only with AF_INET listening socket.

<value name="allowed_clients">127.0.0.1</value>

Pass environment variables like LD_LIBRARY_PATH

All $VARIABLEs are taken from current environment

<value name="environment">

<value name="HOSTNAME">$HOSTNAME</value>

<value name="PATH">/usr/local/bin:/usr/bin:/bin</value>

<value name="TMP">/tmp</value>

<value name="TMPDIR">/tmp</value>

<value name="TEMP">/tmp</value>

<value name="OSTYPE">$OSTYPE</value>

<value name="MACHTYPE">$MACHTYPE</value>

<value name="MALLOC_CHECK_">2</value>

</value>

</section>

</workers>

</configuration>

centos配置lnmp问题,整个环境都配置成功了,Php-fpm启动老是报错却又启动成功,如何解决

一、安装httpd。

yum install -y httpd

安装完成之后使用以下命令启动httpd服务:

systemctl start httpd.service #启动apache

systemctl stop httpd.service #停止apache

systemctl restart httpd.service #重启apache

systemctl enable httpd.service #设置apache开机启动 可以在浏览器中输入服务器所在的主机的IP即可看到apache的欢迎界面。要在另外一台主机上实现这种访问,需要关闭系统的防火墙。 在CentOS7中,修改防火墙的机制已经做了修改,在CentOS 6.x系统中可以使用以下命令:

service iptables stop

chkconfig iptables off // 开机禁止启动

而在CentOS7中只能使用以下命令,如果使用上面的命令并不会报任何错误,但是起不到关闭防火墙的效果:

systemctl stop firewalld.service

systemctl disable firewalld.service //禁止防火墙开机启动关闭SeLinux:

使用getenforce命令可以查看SeLinux的状态,SeLinux有三种状态,分别为enforcing、permissive和disabled。因为我们的服务器只在内部使用,所以这里我们选择完全关闭(disabled)。具体的做法为修改/etc/sysconfig/selinux文件,具体操作可以看里面的说明。

成功安装httpd(apache)的效果图为:

二、安装MySQL数据库。

MySQL数据库,新版本已经更名为Mariadb,所以这里需要安装Mariadb,可以使用下面的命令进行安装:

yum install -y mariadb

安装完成以后使用下面的命令开启数据库服务:

systemctl start mariadb.service #启动MariaDB

systemctl stop mariadb.service #停止MariaDB

systemctl restart mariadb.service #重启MariaDB

systemctl enable mariadb.service #设置开机启动

三、安装PHP。

使用下面的命令可以安装PHP:

yum -y install php

使用下面的命令安装php对Mariadb的支持:

yum install php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash

使用下面的命令重启Mariadb和httpd服务:

systemctl restart mariadb.service #重启MariaDB

systemctl restart httpd.service #重启apache

docker 部署nginx、php-fpm错误记录

最近要使用docker部署nginx和php-fpm服务,因为以前部署过无数次的nginx+php-fpm,本以为轻车熟路,很快搞定,但是在这个最熟的环节却出了问题,耗费了小半天的时间,特把解决问题的过程记录如下:(使用docker 部署 nginx,php-fpm的具体步骤网上较多,不再此进行详述了)

问题:docker 部署完成 nginx,php-fpm后,运行服务,出现:recv() failed (104: Connection reset by peer) while reading response header from upstream

多次修改修改无果后,开始自己查找此错误:

证明php-fpm服务已经启动了,但是未知原因php-fpm把链接中断了。怀疑是底层tcp链接问题,使用netstat -s | grep reject,未发现异常链接。想不出啥原因,查看php-fpm error.log未发现有用信息

nginx+php 生成缩略图的时候发现没有jpeg支持安装完了重启php-fpm出错

nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息。

nginx把对php的请求发给php-fpm fastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errors log里也看不到php的errorlog

原因是php-fpm的配置文件php-fpm.conf中默认是关闭worker进程的错误输出,直接把他们重定向到/dev/null,所以我们在nginx的error log 和php-fpm的errorlog都看不到php的错误日志。

调试起来就很痛苦了。解决nginx下php-fpm不记录php错误日志的办法:

1.修改php-fpm.conf中配置 没有则增加

catch_workers_output = yes

error_log = log/error_log

2.修改php.ini中配置,没有则增加

log_errors = On

error_log = "/usr/local/lnmp/php/var/log/error_log"

error_reporting=E_ALL~E_NOTICE

3.重启php-fpm,

当PHP执行错误时就能看到错误日志在"/usr/local/lnmp/php/var/log/error_log"中了

请注意:

1. php-fpm.conf 中的php_admin_value[error_log] 参数 会覆盖php.ini中的 error_log 参数

所以确保你在phpinfo()中看到的最终error_log文件具有可写权限并且没有设置php_admin_value[error_log] 参数,否则错误日志会输出到php-fpm的错误日志里。

2.找不到php.ini位置,使用php的phpinfo()结果查看

3.如何修改PHP错误日志不输出到页面或屏幕上

修改php.ini

display_errors = off //不显示错误信息(不输出到页面或屏幕上)

log_errors = on //记录错误信息(保存到日志文件中)

error_reporting = E_ALL //捕获所有错误信息

error_log = //设置日志文件名

程序中修改以上配置

ini_set("display_errors",0)

ini_set("error_reporting",E_ALL); //这个值好像是个PHP的常量

ini_set("error_log","<日志文件名>")

ini_set("log_errors",1);

4.如何将php的错误日志输出到nginx的错误日志里

在PHP 5.3.8及之前的版本中,通过FastCGI运行的PHP,在用户访问时出现错误,会首先写入到PHP的errorlog中

如果PHP的errorlog无法写入,则会将错误内容返回给FastCGI接口,然后nginx在收到FastCGI的错误返回后记录到了nginx的errorlog中

在PHP 5.3.9及之后的版本中,出现错误后PHP只尝试写入PHP的errorlog中,如果失败则不会再返回到FastCGI了,错误日志会输出到php-fpm的错误日志里。

所以如果想把php错误日志输出到nginx错误日志,需要使用php5.3.8之前的版本,并且配置文件中php的error_log对于php worker进程不可写

关于.php-fpm报错的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于.php-fpm报错 php文件报错的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did211497
更新时间:2023-05-03   阅读:25次

上一篇: php循环嵌套 phpwhile循环

下一篇:php提交表单后跳转 php提交表单跳转页面

最新资料更新

  • 1.php中文注释乱码 php注释语句
  • 2.php使用嵌套for php解析嵌套json
  • 3.php页面加ico php嵌入网页
  • 4.php登陆检测 php登录原理
  • 5.链式作用域php php 链式调用
  • 6.php判断多个数字 php判断字符串是否为数字
  • 7.phpword读写 php读写word 文档
  • 8.php微信推送提醒 php主动推送消息到安卓
  • 9.phpoa推荐 php推荐书籍
  • 10.php代码修改按钮大小 php内容修改
  • 11.php换文字颜色 php文字颜色代码
  • 12.php查询模块 php函数查询
  • 13.php内核源码剖析 php源码使用教程
  • 14.php版本怎么更新 php版本升级
  • 15.php下载liunx php下载器
  • 16.phphuoqv多选 php选择语句
  • 17.iconv函数php iconv函数参数
  • 18.phpsql添加记录 php数据表里怎么添加数据
  • 19.php判断字符串的编码 php 判断字符串是否存在某个字符串
  • 20.php半角全角 全角半角字符切换

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]