ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
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.
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.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.