I have two virtual hosts on my server. One "web" and one "mobile". I can view files from the "web" under the directory "users" normally but I cannot upload or create directories under it?!!
for example:
<img src='http://m.domain.com/users/imgs/sample.png' /> this is viewable
//this is not possible
<?php
mkdir("users/newDir"); //fails
$img = file_get_contents("http://images.devshed.com/fds/belts/ds_forums.gif");
$file = "users/newDir/sample.gif";
file_put_contents($file, $img); //fails
$img = file_get_contents("http://images.devshed.com/fds/belts/ds_forums.gif");
$file = "users/sample.gif";
file_put_contents($file, $img); //fails
?>
I have the following under my mobile virtual to point to the files on my "web":
<VirtualHost *:80>
ServerName domain.com
ServerAlias m.domain.com
DocumentRoot "C:/Apache/mobileroot"
<Directory "C:/Apache/mobileroot">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /users/ "C:/Apache/webroot/users/"
<Directory "C:/Apache/webroot/users/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
To answer my own question if someone stumbled the same issue in the future.
Under the mobile directory all references to write had to switch them to absolute path the case of mkdir("users/newDir");
So on the "web" directory it stays the same but on the "mobile" directory I changed all write actions to use absolute path like:
mkdir("C:/Apache/webroot/users/newDir");
This forces the new directory "newDir" to be created on the "web" not on the "mobile" directory on the server.