开发者

open a file in PHP CLI

开发者 https://www.devze.com 2023-02-18 16:18 出处:网络
The file was created by apache using mkdir() and fopen() etc.. How do i let my php CLI program be allowed to read that file that apache (that is what it says the user is) created so i dont get this e

The file was created by apache using mkdir() and fopen() etc..

How do i let my php CLI program be allowed to read that file that apache (that is what it says the user is) created so i dont get this error:

Warning: fil开发者_运维知识库e_get_contents(./sessions/nl2larsjl6n3315mesghmspts7.txt): failed to open stream: No such file or directory in /var/www/html/cli.php on line 58

in the cli this my code for getting the file:

$alert = file_get_contents('./sessions/'.$sessionID.'.txt');


Short answer: when you create it, you should run chmod(0777) on it.

Long answer: chmod(0777) means "world readable and writable, and not actually recommended. Checkout http://en.wikipedia.org/wiki/Filesystem_permissions, http://www.linuxforums.org/articles/file-permissions_94.html for a complete explanation on these numbers. Basically if you need it to be writable by a user, and readable by any user, do a chmod(0644)


EDit: i was quick to wrinte an answer... without reading the question carefully.

You seem to try and open the file from a different directory than the folder where you created it. Try and see the result on echo getpwd() in the CLI script and then in the script running under www. I bet you will see different locations. When executing CLI scripts you should either do a chdir() before running the command or use absolute paths at all times for the files you access. I personally prefer the chdir() method.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号