LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices

Reply
 
Search this Thread
Old 04-26-2005, 08:46 PM   #1
verbatim
Member
 
Registered: Apr 2005
Posts: 31

Rep: Reputation: 15
why isn't this php symlink script working


I was told that the code below would create symlinks in php.

Code:
$path = "/home/user/orig_file";
$path_new = "/home/user/link_file";

symlink($path_new, $path);
I 'reconfigured' it to work to my needs, but it doesnt.

the paths i am trying to link are below:


Code:
$path = "/home/some/dep/";
$path_new = "/home/mem/main/users/{$username}/";

symlink($path_new, $path);
the script is in the /home/mem/main/ directory by the way.

Any help offered would be greatly appreciated, thanks
 
Old 04-26-2005, 11:34 PM   #2
deiussum
Member
 
Registered: Aug 2003
Location: Santa Clara, CA
Distribution: Slackware
Posts: 895

Rep: Reputation: 31
Shouldn't it be the other way around?

symlink($path, $path_new);

Also, you need to make sure the permissions are set properly. What exactly doesn't work about it? Do you get a specific error message you could post?

Last edited by deiussum; 04-26-2005 at 11:36 PM.
 
Old 04-26-2005, 11:38 PM   #3
verbatim
Member
 
Registered: Apr 2005
Posts: 31

Original Poster
Rep: Reputation: 15
thanks.

i just got that myself and was trying to figure out how i set the chmod settings for the new folder.

is it

Code:
$path = "/home/some/dep/";
$path_new = "/home/mem/main/users/{$username}/";


symlink($path, $path_new, 0755);
 
Old 04-27-2005, 08:28 AM   #4
deiussum
Member
 
Registered: Aug 2003
Location: Santa Clara, CA
Distribution: Slackware
Posts: 895

Rep: Reputation: 31
The documentation for symlink on php.net (great PHP resource, btw) doesn't mention anything about passing in any sort of permissions. If you want to change permissions after it's created, you can use the chmod function.

What I meant when I said to make sure you have the correct permissions, is that if you are running this PHP script through Apache, it is getting run as a different user. For instance in my setup, apache runs as the user "nobody" in the Group "nobody." If "nobody" doesn't have permissions to create a file in the directory you are trying to create your link, you won't be able to create it.
 
Old 04-27-2005, 08:29 AM   #5
verbatim
Member
 
Registered: Apr 2005
Posts: 31

Original Poster
Rep: Reputation: 15
if i am set up to run as nobody on my server, how would i change that?
 
Old 04-27-2005, 08:32 AM   #6
verbatim
Member
 
Registered: Apr 2005
Posts: 31

Original Poster
Rep: Reputation: 15
i do have permission to create folders though, mkdir works for me.

i tried

[code:]$path = "/home/some/dep/";
$path_new = "/home/mem/main/users/{$username}/";


symlink($path, $path_new);
chmod ($path_new, 0755);
[/code]


it didnt work

Last edited by verbatim; 04-27-2005 at 08:36 AM.
 
Old 04-27-2005, 08:42 AM   #7
deiussum
Member
 
Registered: Aug 2003
Location: Santa Clara, CA
Distribution: Slackware
Posts: 895

Rep: Reputation: 31
Does mkdir work for you from within the PHP script, though...

Are you getting any specific errors you can share?

The user that Apache is run from is in the apache config. /etc/apache/httpd.conf on my Slackware system. I wouldn't recommend changing that, though, as it could be a security risk.

To test if your problem is a permissions one, try changing the permissions of the directory you are creating the link at to 777 temporarily to see if it works then. (Set it outside of the script from the shell.) If that works, you can decide from there how you want to set it up.

Last edited by deiussum; 04-27-2005 at 08:43 AM.
 
Old 04-27-2005, 09:04 AM   #8
verbatim
Member
 
Registered: Apr 2005
Posts: 31

Original Poster
Rep: Reputation: 15
got symlink working. my original path was incorrect.

thanks very much for the assistance!!!!


Last edited by verbatim; 04-27-2005 at 09:12 AM.
 
Old 04-27-2005, 09:13 AM   #9
deiussum
Member
 
Registered: Aug 2003
Location: Santa Clara, CA
Distribution: Slackware
Posts: 895

Rep: Reputation: 31
Since the link is just a symbolic link to another directory, you would change permissions on the original directory. Again, nobody will need to have write privileges to change that, though.

But, if you got everything working, I'm not sure you need to do any more with setting permissions.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to find symlink target name in script germanyzulu Linux - Software 3 08-09-2006 03:14 PM
issues with mirc script accessing our php script dtra Linux - Software 2 07-02-2005 04:30 PM
PHP -- How to execute a shell script from PHP using FTP functions?? zoonalex Programming 3 07-29-2004 11:51 AM
Simple php script with html form not working. sinsoush Programming 4 04-01-2004 08:02 PM
Java plugin Symlink not working? Davin Linux - Software 4 02-07-2004 07:08 PM


All times are GMT -5. The time now is 12:27 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration