Apache不会在httpd.conf的路径名中以空格开头(即使带有引号)

iecba09b  于 2022-11-16  发布在  Apache
关注(0)|答案(6)|浏览(148)

问题

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

hgncfbus1#

如果你还在寻找一个解决方案,你可以尝试创建一个连接,让你重新定位根文件夹的内容在一个路径与空格。
你需要微软的Junction。我认为你可以在没有它的情况下创建交叉点,但它更难。
创建一个apache_root.bat文件以将命令传递给junction.exe,并在删除交叉点并需要重新创建交叉点时重用该文件:

"G:\SysinternalsSuite\junction.exe" "G:\UniServerZ\www\test" "G:\Google Drive\test"

1.第一个字符串是juction.exe的路径。我认为如果.bat文件在同一个文件夹中,则只能写“junction.exe”;
1.第二个字符串是juction文件夹的路径,在我的例子中,这个“test”文件夹是created;
1.第三个字符串是连接文件夹的source。在我的例子中,这个“test”文件夹exists并且有子文件夹。
我使用统一服务器,它是便携式的,在UniServerZ文件夹中有根文件夹“www”。每次我更新服务器时,我都会删除整个UniServerZ文件夹,并运行.bat文件来重新创建连接文件夹“test”。
当然,当你删除连接时,源文件夹不会被删除。小心我在你的配置文件中看到的SymLink,它们确实删除了源文件夹。我几乎搞砸了我的Windows删除符号链接。

qjp7pelc

qjp7pelc2#

将目录路径放在双引号中,例如:

DocumentRoot  "C:\Users\Touhid Mia\OneDrive\xxx"
<Directory  "C:\Users\Touhid Mia\OneDrive\xxxxx">
m528fe3b

m528fe3b3#

当Dropbox将我的文件夹名称从E:\Dropbox更改为E:\Dropbox(Completa Content)时,我遇到了同样的问题,在我的文档根目录中,它看起来像这样:DocumentRoot E:/Dropbox,当我把它改成E:/Dropbox(Completa Content)时,给出了错误。几次尝试后,我意识到它只是把双引号DocumentRoot“E:/Dropbox(Completa Content)”,它就起作用了

qc6wkl3g

qc6wkl3g4#

在Windows 10上的Apache 2.4.54上,我最终在引号中使用了双反斜杠:

Alias /testing2022/ "D:\\Other Projects\\Testing 2022\\"

<Directory "D:\\Other Projects\\Testing 2022\\">
   Require all granted
</Directory>
j91ykkif

j91ykkif5#

您是否尝试过文档根目录“C:/用户/帕特里克/Google\驱动器/项目/我的\项目”?

a11xaf1n

a11xaf1n6#

我得到了它的工作通过使用DOS 8.3路径:

c:/users/patric~1/google~1/projec~1/myproj~1

您可以在命令行上使用dir /x来查看DOS路径。

相关问题