PHP - 文章列表
共 48 页
-
PHP连接MySQL报错SQLSTATE[HY000] [2002] No such file or directory与Connection refused的排查方法(localhost与127.0.0.1区别、socket路径与3306端口定位)
PHP连接MySQL报SQLSTATE[HY000] [2002]时,No such file or directory表示走Unix域套接字没找到socket文件,Connection refused表示走TCP但端口没有进程在听。按报错串分诊:用php -i确认pdo_mysql.default_socket,用show variables查服务端真实socket路径,再区分skip-networking、bind-address、端口非3306、容器里127.0.0.1指向自身等六种情形,附2003、1045、2054报错的区分方法。
-
PHP报错Allowed memory size of 134217728 bytes exhausted的解决方法(memory_limit调整、memory_get_usage定位与内存泄漏排查)
PHP报Allowed memory size of 134217728 bytes exhausted时,括号里的tried to allocate不是已用内存,报错行号也不一定是真凶。这篇从php.ini与FPM pool配置的区别讲起,给出php_admin_value、.user.ini、ini_set、php -d四种改法的生效范围与各自的坑,再用memory_get_usage打点定位大文件一次性读取、fetchAll、GD大图这类写法,并给出memory_limit取值与pm.max_children、容器内存的换算思路。
-
PHP-FPM日志报server reached pm.max_children setting的排查与解决方法(pm.max_children计算与slowlog定位慢请求)
nginx日志刷connect() to unix:/run/php/php8.2-fpm.sock failed (11: Resource temporarily unavailable),php-fpm日志报server reached pm.max_children setting,多半是worker被占满。给出fpm-status状态页、按内存算pm.max_children的公式、pool配置示例、slowlog抓慢请求,以及OOM与listen.backlog的排查。
-
PHP上传大文件失败返回413或$_FILES为空的解决方法(upload_max_filesize与nginx client_max_body_size配置)
PHP上传大文件失败,$_FILES为空且服务端不报错,多半是php.ini、nginx与反向代理三层配置各有一处限制。按错误码定位是PHP挡的还是请求体在更外层被拒,再逐一放开upload_max_filesize、post_max_size与client_max_body_size,附curl复现与前端预校验写法。
-
php连接mysql时报错 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
php连接mysql时报错SQLSTATE[HY000][2054]Theserverrequestedauthenticationmethodunknowntotheclient原因是mysql8默认的身份验证方式是:caching_sha2_password用phpinfo查询loadedplugins,如果少了caching_sha2_password,就表明此版本的php不支持此验证方式解
-
php日期相加 增加天数,月数的方法
当前时间增加一天:?eccho?date(|acute;Y-m-d|acute;,strtotime(\"+1?day\"))当前时间增加一月:?strtotime(\"+1?month\")当前时间增加一年:?strtotime(\"+1?year\")当前时间增加一秒:?strtotime(\"+1?seconds\")已有时间增加一天:?$d=|acute;2012-10-11|acute;;eccho?date(|acute;Y-m-d|acute;,strtotime(\"{$d}?+1?day\"));更多的有echo???strtotime(?|acute;yesterday?|
-
PHP重定向三法
方法一: <?php GoTo=”index.php”;// 如果这里的目标链接取自数据库就实现了动态转向 header(sprintf(“Location: %s”, GoTo)); ?> 方法二: <?php echo “<script>window.location =”PHP_SELF”;</script>”;?> 方法三: <?php echo “<META HTTP-EQUIV=”Refresh” CONTENT=”0;URL=index.php”>”;?>
-
PHP编程常用技巧四则
PHP编程常用技巧四则: 1.配置PHP文件目录 作为服务器端解释执行的脚本语言,PHP程序放置在某个服务器可以访问的目录下,一般可以通过修改Apache的httpd.conj进行配置,例如我们在该文件中的一句: Alias /test/ “d:brhpwebsitebrhp/” 那么在浏览器端输入:“http://localhost/test/+PHP文件名”就可以访问d:brhpwebsitebrhp/下的PHP文件了;可见该行不过是为存放PHP文件的目录起一个别名。 其次,还可以通过指定DocumentRoot路径得到存放服务器文件的目录,在httpd.conj找到以下两
-
服务器上运行php需要禁用的一些函数
phpinfo()?功能描述:输出?PHP?环境信息以及相关的模块、WEB?环境等信息。?危险等级:中?passthru()?功能描述:允许执行一个外部程序并回显输出,类似于?exec()。?危险等级:高?exec()?功能描述:允许执行一个外部程序(如?UNIX?Shell?或?CMD?命令等)。?危险等级:高?system()?功能描述:允许执行一个外部程序并回显输出,类似于?passthru()。?危险等级:高?chroot()?功能描述:可改变当前?PHP?进程的工作根目录,仅当系统支持?CLI?模式?PHP?时才能工作,且该函数不适用于?Windows?系统。?危险等级:高?scan
-
iis下读不出php.ini的解决方法 Loaded Configuration File (none)
在iis下运行php的 phpinfo()这个命令,如果Loaded Configuration File 这一项的内容为 (none) ,将会无法访问mysql数据库首先,建立系统变量 PHPRC,值为php.ini所在路径。将php.ini这个文件加上users的相关权限最后,在cmd下执行 iisreset /RESTART 这个命令重启iis即可