如何在XAMPP上创建虚拟主机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在XAMPP上创建虚拟主机相关的知识,希望对你有一定的参考价值。

我确信这个问题被多次询问,但我没有遇到问题。我正在使用XAMPP配置Zend框架。

XAMPP正在端口8081上运行,因为我需要使用虚拟主机的某些Windows进程占用80,我在C:/xampp/apache/config/extra/httpd-vhosts.config(或新版本中的C:/xampp/apache/conf/extra/httpd-vhosts.conf)中使用以下代码进行配置。

<VirtualHost *:80>
ServerName comm-app.local
DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/CommunicationApp/public"
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>    

并使用127.0.0.1 comm-app.local更新hosts文件并尝试重新启动apache但它显示错误。

15:03:01  [Apache]  Error: Apache shutdown unexpectedly.
15:03:01  [Apache]  This may be due to a blocked port, missing dependencies, 
15:03:01  [Apache]  improper privileges, a crash, or a shutdown by another method.
15:03:01  [Apache]  Press the Logs button to view error logs and check
15:03:01  [Apache]  the Windows Event Viewer for more clues
15:03:01  [Apache]  If you need more help, copy and post this
15:03:01  [Apache]  entire log window on the forums
答案

我看到两个错误:

<VirtualHost *:80> -> Fix to :8081, your POrt the server runs on
    ServerName comm-app.local
    DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
    SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/CommunicationApp/public" -> This is probably why it crashes, missing >
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
 -> MIssing close container: </VirtualHost> 

固定版本:

<VirtualHost *:8081>
    ServerName comm-app.local
    DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
    SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/CommunicationApp/public">
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

有一点需要提及:

您始终可以尝试运行命令:

service apache2 configtest

这将告诉您何时遇到格式错误的配置,甚至可以告诉您问题出在哪里。

此外,它有助于避免LIVE系统中的不可用性:

service apache2 restart

将关闭,然后无法启动,这个配置测试你事先知道“oops我做错了什么,我应该先解决这个问题”但是apache本身仍在使用旧配置运行。 :)

另一答案

我参加派对的时间有点晚了,但我为Mac写了一个小的bash脚本,它通过终端创建了一个VirtualHost:

#!/bin/bash

echo "Welcome to the VirtualHostCreator! Press <RETURN> to continue."

read

echo "Enter the name the VirtualHost you would like to create. No spaces or dashes, please."

read hostname

echo "Enter the document root of the VirtualHost."

read doc_root

echo "Creating VirtualHost "$hostname". You may be prompted for your password."

hosts_file="/etc/hosts"
vhosts_file="/Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf"
restart_command="sudo /Applications/XAMPP/xamppfiles/xampp restart"

cat >> $vhosts_file << EndOfMessage
<VirtualHost ${hostname}>
    ServerName ${hostname}
    DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/${doc_root}"
</VirtualHost>
EndOfMessage

sudo sh -c "echo "127.0.0.1       $hostname" >> $hosts_file"

$restart_command

我确信可以做一些改进,它只有vhost(服务器名称和文档根目录)的两个必需选项,但它比打开和编辑所有文件更快更有效地完成工作手动,然后自动重启XAMPP。

这假定您具有XAMPP的默认安装位置,可以更改所有位置。

另一答案

步骤1)在“C: Windows System32 drivers etc”下打开主机文件

127.0.0.1  vipsnum.mk

步骤2)在“C: xampp apache conf extra”下打开httpd-vhosts.conf文件

<VirtualHost vipsnum.mk:80>
    ServerName vipsnum.mk
    DocumentRoot "C:/xampp/htdocs/vipnum/"
    SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/vipnum/">
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost> 
另一答案
1. C:xamppapacheconfhttps.conf
Virtual hosts
Include conf/extra/httpd-vhosts.conf


2. C:WindowsSystem32driversetchosts
127.0.0.1       localhost
127.0.0.1       helpdesk.local


3. C:xamppapacheconfextrahttpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/helpdesk/public"
    ServerName helpdesk.local
</VirtualHost>


Now, Restart Apache and go through the link. 
URL : http://helpdesk.local
另一答案

在我的情况下xampp的问题是指定使用除htdoc之外的其他文件夹,特别是对于多个域和专用文件夹。这是因为httpd-ssl.conf也引用了<VirtualHost>

要做到这一点,请删除<VirtualHost>下的整个httpd-ssl.conf条目

从那里,您在httpd-vhosts.conf中所做的任何设置都将按照预期更新httphttps引用。

另一答案

我已将下面的配置添加到httpd.conf并重新启动了lampp服务,它开始工作。感谢上述所有帖子,这有助于我逐一解决问题。

Listen 8080
<VirtualHost *:8080>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/opt/lampp/docs/dummy-host2.example.com"
    ServerName localhost:8080
    ErrorLog "logs/dummy-host2.example.com-error_log"
    CustomLog "logs/dummy-host2.example.com-access_log" common
    <Directory "/opt/lampp/docs/dummy-host2.example.com">
        Require all granted 
    </Directory>
</VirtualHost>
另一答案

简单,您可以看到以下模板并相应地使用它。它非常常见,创建一个虚拟主机并且非常简单。当然下面的模板将工作。

<VirtualHost *:8081>
DocumentRoot "C:/xampp/htdocs/testsite"
ServerName testsite.loc
ServerAlias www.testsite.loc
<Directory "c:/xampp/htdocs/testsite">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

有关虚拟主机的更多参考,请访问此站点。 http://www.thegeekstuff.com/2011/07/apache-virtual-host

谢谢,

另一答案

如果您需要轻松安装

https://github.com/scyzho/xampp

下载到你的htdocs文件夹

并输入您的主机

另一答案

步骤1)C: WINDOWS system32 drivers etc 打开“hosts”文件:

127.0.0.1       localhost
127.0.0.1       test.com
127.0.0.1       example.com

步骤2)xampp apache conf extra httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot C:/xampp/htdocs/test/
    ServerName www.test.com
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot C:/xampp/htdocs/example/
    ServerName www.example.com
</VirtualHost>

步骤3)C: xampp apache conf httpd.conf。向下滚动到最后的Supplemental配置部分,找到以下部分(第500行左右),从第二行的开头删除#,这样该部分现在如下所示:

#Virtual hosts
Include conf/extra/httpd-vhosts.conf

步骤4)重新启动XAMPP,现在在浏览器中运行:

www.example.com or www.test.com
另一答案

将这些代码写在C: xampp apache conf extra httpd-vhosts.conf文件的末尾,

DocumentRoot "D:/xampp/htdocs/foldername"
ServerName www.siteurl.com
ServerAlias www.siteurl.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common

虚拟主机标签之间。

并编辑文件System32 / Drivers / etc / hosts使用记事本作为管理员

添加文件的底部

127.0.0.1    www.siteurl.com
另一答案

在C: xampp apache conf extra httpd-vhosts.conf中添加此代码

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName qa-staging.com
ServerAlias www.qa-staging.com
<Directory "c:/xampp/htdocs">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

现在在下面的文件中添加您的虚拟主机名。

C:WindowsSystem32driversetchosts

127.0.0.1 去啊-staging.com

如果您无法将此代码保存在主机文件中,请右键单击notpad选择以管理员身份运行,然后您就可以保存自定义代码,现在重新启动XAMP

另一答案

只需将端口更改为8081,以下虚拟主机即可运行:

<VirtualHost *:8081>
ServerName comm-app.local
DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/CommunicationApp/public">
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory> 
</VirtualHost>
另一答案
<VirtualHost *:80>
    DocumentRoot "D:/projects/yourdirectry name"
    ServerName local.yourdomain.com
    <Directory "D:/projects/yourdirectry name">
        Require all granted 
    </Directory>
</VirtualHost>

保存Apache配置文件。

有关详细信息,请参阅this以上是关于如何在XAMPP上创建虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

如何从虚拟机访问由 XAMPP 创建的虚拟主机?

如何在 XAMPP 上设置虚拟主机?

如何在 Windows 上的 xampp 中为 QCubed 项目创建虚拟主机?

html 在xampp - localhost站点上创建虚拟主机到某个域名

如何在 XAMPP 服务器上创建 wordpress 数据库?

在 xampp 上设置虚拟主机