Apache不会以httpd.conf中的pathname中的空格开头(即使是引号)

时间:2013-02-20 21:33:19

标签: apache wampserver httpd.conf

问题

如果虚拟主机配置中的路径名中有空格,则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 个答案:

答案 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"
  1. 第一个字符串是juction.exe的路径。我想如果.bat文件在同一个文件夹中,你只能写“junction.exe”;
  2. 第二个字符串是juction文件夹的路径。在我的情况下,这个“测试”文件夹是 的创建
  3. 第三个字符串是联结文件夹的来源。在我的情况下,这个“测试”文件夹存在并且有子文件夹。
  4. 我使用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)”上奏效了