如何在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
中所做的任何设置都将按照预期更新http
和https
引用。
我已将下面的配置添加到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上创建虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章 如何在 Windows 上的 xampp 中为 QCubed 项目创建虚拟主机? html 在xampp - localhost站点上创建虚拟主机到某个域名