03-15-2005, 03:28 PM | #1 (permalink) |
Crazy
Location: Seattle, WA
|
[php] Filesystem permissions
Hey all, I'm hosting my site (checkplease.dhs.org) off my own computer running Mac OS X 10.3.8 with PHP5 and MySQL4 and now that I have the display mostly hammered out, I'm working on submitting forms. I've got the whole database insertion working, but I need PHP to create directories and save text files and image files and for the life of me, I can't seem to give PHP the permissions to do so! I've spent the last two days crashing into this wall and am getting quite frustrated. All information I can find on the subject glosses over the permissions aspect and just assumes that PHP already has access to the filesystem. But how do I grant the permissions?Anyone have any ideas?
PS: authentication is completely lax right now. I'm focusing on functionality and THEN plan to tackle security and authentication. PPS: If you want to test the system out, go for it. Just tell me what you did so I can clean out the database. Thanks a bunch! |
03-15-2005, 06:12 PM | #2 (permalink) |
Crazy
Location: Salt Town, UT
|
Open a Terminal
Find wherever the PHP script is trying to write to. Run this command (it's bad, it puts your permissions WIDE OPEN so that anything can read write and delete there, but hey, it works): "chmod -R 777 dir_name/" That should fix up your permission problems for the time being, for a better solution, you could find the user that the webserver was running under, and chown it to that user, then you can get away with 700 permissions (To which only the webserver user has access to) |
03-15-2005, 07:04 PM | #3 (permalink) |
Crazy
Location: Seattle, WA
|
Awesome, that worked (on my laptop's test site). I had tried giving everyone read/write access to the directories via the finder's Get Info window, but that didn't do anything, so I assumed chmod wouldn't. Just goes to show you can't rely on the Finder in times like these...
As far as going the users/groups route, I've been trying to figure out what user PHP is using. I've seen it listed as "nobody" while others as "www" and so I added them both to the group I had assigned to the folder. Still didn't work. But perhaps this is another situation in which I need to get my hands dirty with Terminal. Thanks for the help! Last edited by exizldelfuego; 03-15-2005 at 07:06 PM.. |
03-16-2005, 06:48 PM | #4 (permalink) |
Crazy
Location: Salt Town, UT
|
I'm bad with ps on non-linux machines... but try running 'ps aux', it should give you a full list of every running process on your system, along with who is running them.
Look for a process with "apache" somewhere in the name, and then in the leftmost column, it should have the user that apache is running under. Another way to check, is to have PHP create a file, then (again, in terminal), run 'ls -al' on the file, it should list the user and group that owns that file, and that is the owner and group of the process that created that file. |
Tags |
filesystem, permissions, php |
|
|