Abhinav
Abhinav

Reputation: 39884

mkdir not working in PHP

Have been pulling out my hair for the past 2 hours on this and am sure I am doing something really stupid.

<?php
mkdir("blah", 0777);
?>

This works through the command line and the folder gets created. But the same thing doesn't work when I try to run it through the browser. Any file permission issues?

Upvotes: 6

Views: 10832

Answers (4)

ilorez
ilorez

Reputation: 1

To make mkdir code run in Linux you need to add permission a+rwx to this file by sudo chmod a+w [file/path] or

sudo chmod a+rwx [file/path]

Upvotes: 0

Faruk Omar
Faruk Omar

Reputation: 1193

you can try with the umask, When PHP is being used as a server module, the umask is restored when each request is finished.

$old = umask(0); 
mkdir($path,0777); 
umask($old); 

Upvotes: 0

Dolph
Dolph

Reputation: 50650

Your web server (apache?) is running as it's own user, and doesn't have permission to write to the directory you're running mkdir in.

Give your web server's user permission to write to the directory by either A) making it Owner, B) adding it to the Group if the Group has write permission, or C) give Everyone write permission (not recommended for most setups).

Upvotes: 4

Tyler Carter
Tyler Carter

Reputation: 61547

Could it possibly be that while running under the command line, the script inherits your permissions, but when running from the browser it doesn't?

In that case you would want to make your directory permissions 'write' for group.

Upvotes: 11

Related Questions