解决使用curl设置好COOKIEJAR文件时cookie无法保存的问题

今天使用curl来进行模拟登陆,在进行关于cookie的操作时,设置好了cookie

却发现无论如何都无法保存服务器返回的cookie

可能性1:是不是因为设置为同一个文件,由于读取时未释放cookie.txt的锁所以无法写入?

修改保存cookie到cookie1.txt,发现仍然无法写入。因此排除了因为锁定无法写入的问题

可能性2:是不是因为curl写入文件时必须要求文件路径全名?

为文件名加上realpath函数,还是没有解决。

到底是因为什么呢?我搜索了官方文档,发现官方文档是这么写的:

唯一的不同出在文件路径不一样。

忽然联想到前几天我用winscp使用非root账户连接到ubuntu server服务器时,无法操作除了home下自己文件夹中文件的事情。又想到重启apache2必须在root权限下。

会不会是因为php运行在root下,而我的php文件所在的www目录是在非root账户下,没有权限写入的原因呢?

马上把cookie.txt的属性从0664改成0666,再次访问php文件,问题解决。

以后遇到文件操作问题时要多注意linux下的权限,以免走弯路浪费时间。