问题
如果虚拟主机配置中的路径名中有空格,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>
6条答案
按热度按时间hgncfbus1#
如果你还在寻找一个解决方案,你可以尝试创建一个连接,让你重新定位根文件夹的内容在一个路径与空格。
你需要微软的Junction。我认为你可以在没有它的情况下创建交叉点,但它更难。
创建一个
apache_root.bat
文件以将命令传递给junction.exe,并在删除交叉点并需要重新创建交叉点时重用该文件:1.第一个字符串是juction.exe的路径。我认为如果.bat文件在同一个文件夹中,则只能写“junction.exe”;
1.第二个字符串是juction文件夹的路径,在我的例子中,这个“test”文件夹是created;
1.第三个字符串是连接文件夹的source。在我的例子中,这个“test”文件夹exists并且有子文件夹。
我使用统一服务器,它是便携式的,在UniServerZ文件夹中有根文件夹“www”。每次我更新服务器时,我都会删除整个UniServerZ文件夹,并运行.bat文件来重新创建连接文件夹“test”。
当然,当你删除连接时,源文件夹不会被删除。小心我在你的配置文件中看到的SymLink,它们确实删除了源文件夹。我几乎搞砸了我的Windows删除符号链接。
qjp7pelc2#
将目录路径放在双引号中,例如:
m528fe3b3#
当Dropbox将我的文件夹名称从E:\Dropbox更改为E:\Dropbox(Completa Content)时,我遇到了同样的问题,在我的文档根目录中,它看起来像这样:DocumentRoot E:/Dropbox,当我把它改成E:/Dropbox(Completa Content)时,给出了错误。几次尝试后,我意识到它只是把双引号DocumentRoot“E:/Dropbox(Completa Content)”,它就起作用了
qc6wkl3g4#
在Windows 10上的Apache 2.4.54上,我最终在引号中使用了双反斜杠:
j91ykkif5#
您是否尝试过文档根目录“C:/用户/帕特里克/Google\驱动器/项目/我的\项目”?
a11xaf1n6#
我得到了它的工作通过使用DOS 8.3路径:
您可以在命令行上使用
dir /x
来查看DOS路径。