将文件上载到Apache别名目录和子目录

时间:2013-09-30 23:31:47

标签: php apache directory virtualhost

我的服务器上有两个虚拟主机。一个“网络”和一个“移动”。我可以正常查看“用户”目录下的“网页”中的文件,但我无法上传或创建目录下的文件?!!

例如:

<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

?> 

我的移动虚拟机下面有以下内容指向我“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>

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,如果有人在将来遇到同样的问题。

在移动目录下,所有对write的引用都必须将它们切换到绝对路径mkdir("users/newDir");

所以在“web”目录上它保持不变但在“mobile”目录下我改变了所有写操作以使用绝对路径,如:

mkdir("C:/Apache/webroot/users/newDir");

这会强制在“web”上创建新目录“newDir”,而不是在服务器上的“mobile”目录中创建。