PHP开发问题汇总

标签: Php 分类: 未分类 创建时间:2021-03-04 08:39:40 更新时间:2025-01-17 10:39:22

1.session_start(): open(/usr/local/php/tmp/sess_s28gg603s01dj8tmm1pe9lfen2, O_RDWR) failed: Permission denied

使用 php -i|grep php.ini 命令,查看我的php.ini文件(/usr/local/php/lib/php.ini)。其中的session.save.path,发现session的目录是/usr/local/php/tmp,执行下面的方法尝试解决权限的问题:

(1) 尝试:chmod -Rf 777 /usr/local/php/tmp

(2) 尝试:chmod -Rf 777 /usr/local/php

(3) 尝试:chmod -Rf 777 /var/lib/php

(4) 尝试:chown 777 -R /tmp和chown 777 -R /usr/local/php/tmp

(5) 尝试重启php:service php-fpm restart

(6) 我创建了/usr/local/php/session文件夹,尝试修改:/usr/local/php/etc/php-fpm.d/www.conf 文件,添加:php_value[session.save_path] = /usr/local/php/session

(7) 尝试修改 /usr/local/php/lib/php.ini , 将session.save_path 改为/usr/local/php/session

以上方法都不起作用。

最后的解决办法修改:/usr/local/php/etc/php-fpm.d/www.conf 文件,添加:php_value[session.save_path] = /tmp

经过我的观察和分析,/tmp文件夹和/usr/local/php/session文件的不同点就是/ tmp 文件夹的权限后面有个点:“drwxrwxrwx.”,而session只有“drwxrwxrwx”,没有点。这个点是SELinux特有的,但是我查看了系统的SElinux状态,并没有开启。

参考文章:
1.PHP Warning Permission denied (13) on session_start() [duplicate] (这里说是文件的权限问题)
2.How to Fix PHP Session Errors while Respecting Security with Correct Permissions ()
3.What permissions / ownership to set on PHP Sessions Folder when running FastCGI / PHP-FPM (as user “nobody”)? (这里说是修改/var/lib/php/session这个文件夹的权限,但是实际上我没有这个文件,还有说删除/tmp里面的文件,这个也不行)
4.session_start() open failed Permission denied (13)错误 (找到php.ini中记载的关于session的文件路径,配置权限,不起作用)
5.What are correct permissions for /tmp ? I unintentionally set it all public recursively (这个没什么用)
6.[乐意黎原创]PHP启用session后抛 session_start(): open(/var/lib/php/session/sess_… 的解决办法 (也是找到session文件夹,然后进行权限更改。里面提到了因为使用的是 php-fpm, session.save_path 在 /etc/php.ini中设置后不生效,)
5.访问phpMyAdmin报错
6.Linux文件权限属性后面的点的含义(ls -l)
7.thinkphp的runtime设置777还是报没有权限 (这篇文章也是设置了777没有效果,最后修改了www.conf中的user和group为nginx,重启php-fpm生效)
8.tp框架上出现警告session_start() open failed Permission denied (13)错误 (这个也是创建文件夹,修改权限777)
9.[PHP] 查找使用的哪个配置文件php.ini strace -e open php -m 这个没有用。

2.由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

3.文件上传不上去

我已经设置了nginx的上传文件大小,配置了thinkphp文件上传大小,最后还是获取不到文件。折腾了很久,总是找不到原因,我尝试进行了try 捕获,也没有错误消息。

[解决]
根据参考文章,我觉得没有file文件,或许是php.ini中的文件上传大小限制了,于是找到了php.ini文件,修改了 upload_max_filesize,将默认的2M改为了5M,结果真的有了文件。还有一个地方要注意,我有两个地方有配置文件,一个是 /et/php.ini,一个是/usr/local/php/etc/php.ini文件,修改完之后,记得重启php。

4.session缓存

最近一直困扰我的事情,就是我修改了别人写的php程序,重启php-fpm之后,也无法生效。我猜猜就是有缓存的。后来发现,果然是如此。php的session可能存在这几个地方:

(1) 程序中是否使用了 session_save_path,定义session存储位置
(2) 如果没有定义,查看 php.ini,是否有定义 seesion.save_path 存储了session
(3) 查看 /usr/local/php/etc/php-fpm.d/www.conf 文件,是否有定义 php_value[session.save_path]
(4) 查看系统 /tmp 目录,是否存在大量类似sess_xxxxxx的session文件。

参考文章:
1.php session缓存,php中session临时文件和缓存说明 在服务器中,如果将所有用户的 session 都保存到临时目录中,会降低服务器的安全性和效率,打开服务器存储的站点会非常慢。在Windows上PHP默认的Session服务端文件存放在C:\WINDOWS\Temp下,如果说并发访问很大或者 session建立太多,目录下就会存在大量类似sess_xxxxxx的session文件,同一个目录下文件数过多会导致性能下降
2.缓存 PHP session 变量
3.如何在Linux中自动删除或清理/tmp文件夹内容

5.页面重定向

总共有三种方案,我这里只写一种好了:1.location和“:”号间不能有空格,否则不会跳转。2.”Localtion:”后面有一个空格。3.在用header前不能有任何的输出,所以此函数只能放在文件的顶端。

1
2
3
4
5
6
<?php   
//重定向浏览器
header("Location: http://blog.csdn.net/abandonship");
//确保重定向后,后续代码不会被执行
exit;
?>
参考文章:
1.php重定向页面的三种方式 header()函数、Meta标签、Javascript代码
2.php 的 header头 是怎么实现跳转的 ?
3.PHP页面跳转几种实现方法 这是一样的三种方法
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。