我的服务器上有两个虚拟主机。一个“网络”和一个“移动”。我可以正常查看“用户”目录下的“网页”中的文件,但我无法上传或创建目录下的文件?!!
例如:
<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>
答案 0 :(得分:0)
回答我自己的问题,如果有人在将来遇到同样的问题。
在移动目录下,所有对write的引用都必须将它们切换到绝对路径mkdir("users/newDir");
所以在“web”目录上它保持不变但在“mobile”目录下我改变了所有写操作以使用绝对路径,如:
mkdir("C:/Apache/webroot/users/newDir");
这会强制在“web”上创建新目录“newDir”,而不是在服务器上的“mobile”目录中创建。