使XAMPP / Apache服务于htdocs之外的文件

是否可以将 xampp 配置为在 htdocs 目录?

例如,说我有一个文件位于如下:

<�代码> C:\项目\ transitCalculator \树干\ TransitCalculator.php </代码>

并且我的 xampp 文件通常从以下位置提供:

<�代码> C:\ XAMPP \ htdocs中\ </代码>

(因为这是默认配置)有什么方法可以让Apache识别并提供我的 TransitCalculator.php 文件,而不必在 htdocs 下移动它?最好我希望Apache能够访问/访问项目目录的全部内容,并且我不想移动 htdocs 下的项目目录。

编辑:编辑将Apache添加到问题标题以使Q / A更“可搜索”

0
额外 编辑
意见: 1
我同意安德鲁·科佩尔的观点,但是在这一点上,整个堆交换生态圈这种强有力的不友好行为并不令人惊讶。 ¯_(?)_ /¯
额外 作者 cmcculloh,
我认为,标签应该足够可搜索。
额外 作者 icedwater,
我帮助我的伙伴为大学项目制作了一些这样的东西,哇,这些东西都疯了!我只记得有一大堆麻烦试图将杠杆粘在前面的微动开关上(所以当它碰到墙壁时它会转身)。我想他已经购买了基本套件,所以我们将它们制作成旧电脑鼠标。我认为他们是一款出色的起动机器人套件!
额外 作者 titanous,
设计一个闪烁的机器人,并且光线明亮,以便鼠标追逐之后,这会很常见!
额外 作者 titanous,
这个问题不应该被关闭。这是一个XAMPP问题。这是一个开发者问题。
额外 作者 Andrew Koper,
Maby关闭主题,但只是想提示:有些时候,一种选择是将目录转移到您的“htdocs”文件夹中,例如。如果您希望能够在本地主机的Google云端硬盘中打开文件;)( stackoverflow.com/questions/41751330/…
额外 作者 Gordova,
在Ubuntu上,一个sym链接是所有需要的。 ( brettclapper.wordpress.com/2012/07/06/&shelip;
额外 作者 M.C.,
除了所有的答案,我想补充一个。从PHP 5.4.0开始,您可以使用命令行移动到项目根目录并执行 PHP -S : 。例如 PHP -S localhost:80
额外 作者 radiantshaw,

6 答案

我想象一下电机的正向连接上的一个电阻可以做到这一点。您可能需要尝试一下价值才能正确。

5
额外
是的,这确实有用。我在我的一个机器人中使用它,它的工作非常好。获得一个高转10k电位器,你可以很容易地找到你需要的值。
额外 作者 Blair Conrad,
这很酷,你可以得到一个立体声电位器,然后你可以用一个旋钮调节两个电机的最高速度,然后你可以改变不同应用/演示的速度。
额外 作者 titanous,

降低进入电机的电压会导致电机变慢。正如Jim所说的,在进入电机之前放置一个电阻器是一种很好的方法,但是每次您想要加速时都需要切换电阻器。最好使用一个普通的电阻,你可以尝试一个可变电阻的电位器。您可以用同样的方法使用它,但可以上下调节电位器以提供更快或更低的速度

2
额外

好的,根据 pix0r 的, Sparks '和 Dave 的答案,看起来有三种方法可以做到这一点:


虚拟主机

  1. Open C:\xampp\apache\conf\extra\httpd-vhosts.conf.
  2. Un-comment line 19 (NameVirtualHost *:80).
  3. Add your virtual host (~line 36):

    
        DocumentRoot C:\Projects\transitCalculator\trunk
        ServerName transitcalculator.localhost
        
            Order allow,deny
            Allow from all
        
    
    
  4. Open your hosts file (C:\Windows\System32\drivers\etc\hosts).

  5. Add

    127.0.0.1 transitcalculator.localhost #transitCalculator
    

    to the end of the file (before the Spybot - Search & Destroy stuff if you have that installed).

  6. Save (You might have to save it to the desktop, change the permissions on the old hosts file (right click > properties), and copy the new one into the directory over the old one (or rename the old one) if you are using Vista and have trouble).
  7. Restart Apache.

现在,您可以通过浏览至 http://transitcalculator.localhost/ 来访问该目录。


制作别名

  1. Starting ~line 200 of your http.conf file, copy everything between and (~line 232) and paste it immediately below with C:/xampp/htdocs replaced with your desired directory (in this case C:/Projects) to give your server the correct permissions for the new directory.

  2. Find the section (~line 300) and add

    Alias /transitCalculator "C:/Projects/transitCalculator/trunk"
    

    (or whatever is relevant to your desires) below the Alias comment block, inside the module tags.


更改文档根目录

    在C:\ xampp \ apache \ conf \ httpd.conf中编辑〜第176行;将DocumentRoot“C:/ xampp / htdocs”更改为 #DocumentRoot“C:/ Projects”(或任何你想要的)。
  1. 编辑〜第203行以匹配您的新位置(本例中为 C:/ Projects )。


Notes:

  • You have to use forward slashes "/" instead of back slashes "\".
  • Don't include the trailing "/" at the end.
  • restart your server.
0
额外
如果您正在使用opendns,在尝试保存主机文件时是否也收到“正在使用文件”警告?我可以创建一个符号链接而不禁用我的dns吗?
额外 作者 Wolfpack'08,
由于某种原因,它给了我“禁止访问!”,但是当我更改httpd.conf时,它工作正常。任何想法为什么?
额外 作者 ilyo,
使用 Order allow,拒绝全部允许不适用于我,但要求所有授予的工作。
额外 作者 Danny Beckett,
我没有得到Alias解决方案的工作,但DocumentRoot像一个魅力。 (注意:最简单的方法是搜索“C:/ xampp / htdocs”的所有实例并进行替换,因为各种版本中的亚麻布号会有所不同)总之:+1
额外 作者 SKuijers,
如果您只更改httpd.conf中的documentroot,如果您拥有*:80的虚拟主机,则无法在其他位置指向它。因此,请更改那里的文件。
额外 作者 trogne,
它不会重新启动,唯一有效的是documentroot方法..
额外 作者 Juan,
如果你得到403错误,请参考这个链接
额外 作者 Wojtek Owczarczyk,
在步骤(3)编辑C:\ Windows \ System32 \ drivers \ etc \ hosts。首先以管理员身份运行编辑器(记事本,记事本++或任何编辑器)的最佳实践。所以你可以直接保存到C:\ Windows \ System32 \ drivers \ etc \文件夹中。
额外 作者 CallMeLaNN,
在我将 部分移出 部分之前,我无法得到这个工作(我也得到了“拒绝访问”),因此使它们兄弟姐妹部分。值得一试,如果你仍然有问题。
额外 作者 bart,
使用Order allow,在Win7上拒绝全部允许会返回403错误,因为此选项已被弃用。使用要求所有授予。 stackoverflow.com/questions/9110179/…
额外 作者 kmike,
这应该是答案。所选的一个将整个Apache移动到另一个文件夹中。
额外 作者 Kat Lim Ruiz,
仅供参考,这一步对我来说似乎不是必要的:Un-comment line 19(NameVirtualHost *:80)
额外 作者 Silverback,
虚拟主机解决方案在2015年仍然有效:)
额外 作者 ericgrosse,

VirtualHost也可以为此工作,并且可能对您更好,因为您可以托管多个项目而不需要子目录。这是你如何做到的:

httpd.conf(或者相对于httpd.conf的\ httpd-vhosts.conf文件中,后缀斜杠“\”可能导致它不起作用):

NameVirtualHost *:80
# ...
  
    DocumentRoot C:\projects\transitCalculator\trunk\
    ServerName transitcalculator.localhost
      
        Order allow,deny  
        Allow from all  
    
 

HOSTS文件(通常为c:\ windows \ system32 \ drivers \ etc \ hosts):

# localhost entries
127.0.0.1 localhost transitcalculator.localhost

现在重新启动XAMPP,您应该可以访问 http://transitcalculator.localhost/ ,它会直接映射到该目录。

如果您尝试复制生产环境,而您正在开发一个位于域名根目录的网站,这可能会有所帮助。例如,您可以指向带有绝对路径的文件,该文件将传递给服务器:

My Logo

而在使用别名或子目录的环境中,您需要确切地跟踪“images”目录相对于当前文件的位置。

0
额外
我的电脑上有几个网络驱动器已映射到驱动器号(例如 X:\ myfolder )。当我使用这种方法时,我得到一个“Access Forbidden”警告。这是否意味着Apache用户无法读取驱动器?
额外 作者 harryg,
Directory 下,使用替换 Order allow,deny 和全部允许要求所有授予的。请参见 stackoverflow.com/questions/9110179/…
额外 作者 Michiel,

您可以通过编辑XAMPP \ apache \ conf \ httpd.conf中的 DocumentRoot 设置来重定位它。

它目前应该是:

C:/ XAMPP / htdocs中

将其更改为:

C:/项目/ transitCalculator /中继线

0
额外
这也适用于XAMP mac吗?
额外 作者 angry kiwi,
不要忘记在需要DocumentRoot的两行中编辑它。如果您只更改最上面的那个,您将会看到读取错误等。
额外 作者 Arcolye,
现在通过哪个URL,可以访问索引页面?
额外 作者 Manish Kumar,

您可以将Apache设置为从任何地方提供任何限制的页面,但它通常以更安全的形式分发。

编辑你的apache文件(http.conf是更常见的名称之一)将允许你设置任何文件夹,使它出现在你的webroot中。

编辑:

别名myapp c:\ myapp \

我编辑了我的答案,在http.conf文件中包含用于创建别名的格式,这种格式有点像Windows中的快捷方式或un * x下的符号链接,其中Apache'假装'文件夹位于webroot中。从长远来看,这可能对你更有用。

0
额外