问题
如果虚拟主机配置中的路径名中有空格,则Apache将无法启动。
通常的解决方案是将路径名用双引号括起来,但这并不能解决它。
我想在我的路径名中加上空格,所以更改为短划线或不是真正的选项。
如果没有空格,则与下面的配置非常相似。
示例
<VirtualHost *:80>
DocumentRoot "C:/Users/Patrick/Google Drive/Projects/My Project"
ServerName local.example.com
ServerAlias local.example.com
<Directory "C:/Users/Patrick/Google Drive/Projects/My Project">
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Order allow,deny
Allow from all
<IfModule mod_php5.c>
php_admin_flag engine on
# choose the one you want:
# This is for E_ALL & ~E_STRICT & ~E_DEPRECATED
# php_admin_value error_reporting 22527
# This is for E_ERROR
php_admin_value error_reporting 1
</IfModule>
</Directory>
</VirtualHost>
答案 0 :(得分:8)
您是否尝试过DocumentRoot“C:/ Users / Patrick / Google \ Drive / Projects / My \ Project”?
答案 1 :(得分:1)
将目录路径放在双引号中,例如:
DocumentRoot "C:\Users\Touhid Mia\OneDrive\xxx"
<Directory "C:\Users\Touhid Mia\OneDrive\xxxxx">
答案 2 :(得分:0)
我在带有wampserver 2.4的Windows 7上遇到了同样的问题。相同的配置适用于unix系统,但不适用于Windows。
您是否找到了解决此问题的解决方案?
<强>更新强>
我在此主题中找到了解决方案:Use Google Drive Directory as Apache Virtual host
问题不是路径问题。如果路径中需要空格,请在双引号之间插入路径。问题是权限文件问题。
答案 3 :(得分:0)
如果您仍在搜索解决方案,可以尝试创建一个联接,以便您在具有空格的路径中重定位根文件夹的内容。我这样做了,它无缝地工作。
您需要Microsoft提供Junction。我认为你可以在没有它的情况下创建交汇点,但它更难。
创建一个apache_root.bat
文件,将命令传递给junction.exe,如果删除联结并需要重新创建它,则重复使用它:
"G:\SysinternalsSuite\junction.exe" "G:\UniServerZ\www\test" "G:\Google Drive\test"
我使用Uniform Server,它是可移植的,并且在UniServerZ文件夹中有根文件夹“www”。每次我更新服务器时,我都会删除整个UniServerZ文件夹并运行.bat文件来重新创建联结文件夹“test”。
当然,删除联结时不会删除源文件夹。请注意我在配置文件中提到的SymLinks,它们会删除源文件夹。我几乎搞砸了我的Windows,删除了一个符号链接。
答案 4 :(得分:0)
我使用DOS 8.3路径开始工作:
c:/users/patric~1/google~1/projec~1/myproj~1
您可以在命令行上使用dir /x
来查看DOS路径。
答案 5 :(得分:0)
当dropbox将我的文件夹名称从E:\ Dropbox更改为E:\ Dropbox(完整内容)时,我遇到了同样的问题,在我的文档根目录中,它看起来像这样:DocumentRoot E:/ Dropbox,当我更改它时到E:/ Dropbox(完整内容),给出了错误。经过几次尝试,我意识到它只是在双引号DocumentRoot“ E:/ Dropbox(Completa Content)”上奏效了