使用XAMPP托管多个本地站点

Gre*_*reg 26 php xampp localhost

我是新手使用XAMPP所以这对某些人来说可能很简单.

我有几个php项目,我希望能够在本地调试并在浏览器中查看(不是同时,但不必每次我想在不同的项目上工作时都要更改配置文件/复制项目文件夹).

在IIS上,您可以设置多个站点来从您的计算机上提供服务,我正在寻找XAMPP中类似的东西.使用IIS时,我在Windows主机文件中添加了多条记录,因此我可以通过键入友好的Web样式地址(如http://myproject1.dev)来访问本地托管的站点

谢谢.

jbn*_*unn 47

格雷格,你几乎就在那里 - 你需要(像摩西所说的那样)来设置虚拟主机.

因此,如果您的Windows主机文件有

127.0.0.1    localhost
127.0.0.1    mysite-dev.com
127.0.0.1    anothersite-dev.com
Run Code Online (Sandbox Code Playgroud)

您的虚拟主机文件(httpd-vhosts.conf)可能如下所示:

<VirtualHost *:80>
  DocumentRoot C:/xampp/htdocs/
  ServerName localhost
</VirtualHost>

<VirtualHost *:80>

    ServerName mysite-dev.com

    DocumentRoot "C:/sites/mysite-dev"

    <Directory "C:/sites/mysite-dev">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

</VirtualHost>

<VirtualHost *:80>

    ServerName anothersite-dev.com

    DocumentRoot "C:/sites/anothersite-dev"

    <Directory "C:/sites/anothersite-dev">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

进行任何更改后,请不要忘记重新启动Web服务器.

  • +1,请注意,因为Apache 2.4你必须使用`Require all granted`而不是`Order allow,deny Allow from all` - http://stackoverflow.com/a/19588786/5108318 (7认同)

Bob*_*ego 7

这个问题差不多十年前就被问过,上面的答案有点过时了。请注意,当您安装 XAMPP 时,可以在仪表板上找到虚拟主机的“操作方法”。

从“欢迎使用 XAMPP for Windows”页面(本地主机/仪表板,首次加载本地主机时的默认设置),单击顶部菜单栏中的“HOW-TO”指南。从那里,查找链接“配置虚拟主机”,它将引导您进入本地主机页面“ http://localhost/dashboard/docs/configure-vhosts.html

简而言之,该过程涉及编辑“httpd-vhosts.conf”文件(通常位于 C:\XAMPP\apache\conf\extra 中)并将该文件的内容替换为如下内容:

<VirtualHost *:80>
        DocumentRoot "C:/xampp/htdocs/"
        ServerName localhost
</VirtualHost>

# vhosts - note sample entry from XAMPP how-to throws an error, so try this:
<VirtualHost *:80>
        DocumentRoot "C:/Users/jdoe/Documents/dev.mysite.com/htdocs"
        ServerName mysite.local
        <Directory "C:/Users/jdoe/Documents/dev.mysite.com/htdocs">
            Require all granted
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

可以通过克隆条目并修改 DocumentRoot 和 ServerName 指令以及端口号(例如 TLS (SSL) 为 443)来获得其他虚拟主机(包括 SSL 主机)。如果您想走这条路,您可以在网上找到有关创建和签署您自己的证书的教程。

最后一步是让您的 Windows 计算机将浏览器指向虚拟域的 Apache 主机(例如上面的http://mysite.local)。以管理员身份使用文本编辑器(Notebook 即可)将以下条目附加到您的主机文件中,该文件位于此处:

C:\Windows\System32\drivers\etc\hosts
Run Code Online (Sandbox Code Playgroud)

将此条目附加到主机文件:

127.0.0.1           mysite.local
Run Code Online (Sandbox Code Playgroud)

重要信息 - 您必须重新启动 Windows 计算机,否则新主机将不会响应。有些文档会告诉您只需重新启动浏览器和 Apache 服务器,但我发现这还不够。

IME、主机系统和 Apache 指令可能比较特殊,因此请耐心等待。您可能需要重建配置、重新启动 Apache,并多次重新启动计算机。


小智 5

我想补充一下最新信息。

\n\n

XAMMP 默认使用端口 80,我们可以发布 1 个网站。我还使用 IIS 进行 .Net 项目。对此,我将除80端口之外的端口设置为XAMMP。所以我避免冲突。

\n\n

当我们要发布多个网站时,我们应该对httpd.conf(这是当前的名称)进行以下操作。

\n\n

1. 设置端口

\n\n

在 httpd.conf 文件中找到 #Listen 表达式。\n将 Listen 80 更改为 Listen 8000(或您想要的任何其他内容)

\n\n
Listen 8000\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您需要 3 个不同的网站,请键入其他网站,包括每行 1 个定义,如下所示。

\n\n
Listen 8001\nListen 8002\nListen 8003\n
Run Code Online (Sandbox Code Playgroud)\n\n

2.定义通过端口访问的站点的文件路径

\n\n

再次在 httpd.conf 文件中查找。\n如下所示识别每个网站的文件夹。\n如您所见,我在 XAMMP 目录中的 htdocs 目录下创建了 3 个名为 8000、8001、8002 和 8003 的目录。

\n\n
<VirtualHost *:8000>\n\xc2\xa0DocumentRoot "C:\\XAMPP\\htdocs\\8000"\n\xc2\xa0ServerName localhost:8000\n<\\ VirtualHost>\n<VirtualHost *:8001>\n\xc2\xa0DocumentRoot "C:\\XAMPP\\htdocs\\8001"\n\xc2\xa0ServerName localhost:8001\n<\\ VirtualHost>\n<VirtualHost *:8002>\n\xc2\xa0DocumentRoot "C:\\XAMPP\\htdocs\\8002"\n\xc2\xa0ServerName localhost:8002\n<\\ VirtualHost>\n<VirtualHost *:8003>\n\xc2\xa0DocumentRoot "C:\\XAMPP\\htdocs\\8003"\n\xc2\xa0ServerName localhost:8003\n<\\ VirtualHost>\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 XAMMP 上重新启动 Apahche 服务器。\n您现在可以查看第三个站点,例如http://localhost:8003http://192.168.1.1:8003/

\n\n

希望有用。

\n