如何在XAMPP上创建虚拟主机

Par*_*ora 72 php apache xampp zend-framework virtualhost

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

XAMPP正在端口8081上运行,因为80正被某些Windows进程占用,我需要使用虚拟主机,我使用以下代码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>    
Run Code Online (Sandbox Code Playgroud)

并更新hosts文件127.0.0.1 comm-app.local并尝试重新启动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
Run Code Online (Sandbox Code Playgroud)

Ste*_*ini 63

我看到两个错误:

<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> 
Run Code Online (Sandbox Code Playgroud)

固定版本:

<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>
Run Code Online (Sandbox Code Playgroud)

有一点需要提及:

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

service apache2 configtest
Run Code Online (Sandbox Code Playgroud)

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

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

service apache2 restart
Run Code Online (Sandbox Code Playgroud)

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


小智 52

步骤1) C:\ WINDOWS\system32\drivers\etc \打开"hosts"文件:

127.0.0.1       localhost
127.0.0.1       test.com
127.0.0.1       example.com
Run Code Online (Sandbox Code Playgroud)

步骤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>
Run Code Online (Sandbox Code Playgroud)

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

#Virtual hosts
Include conf/extra/httpd-vhosts.conf
Run Code Online (Sandbox Code Playgroud)

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

www.example.com or www.test.com
Run Code Online (Sandbox Code Playgroud)

  • 嘿阿米特...我的令人惊讶地不起作用....我的设置中唯一的区别是: `127.0.0.4 mycustomdomain` 并且它在端口 90 上运行,所以我使用了 `&lt;VirtualHost 127.0.0.4:90&gt;` 。当我在浏览器中尝试“http://mycustomdomain”时失败 (2认同)

小智 6

将此代码添加到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>
Run Code Online (Sandbox Code Playgroud)

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

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

127.0.0.1 qa-staging.com

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


小智 5

将这些代码写在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
Run Code Online (Sandbox Code Playgroud)

虚拟主机标签之间.

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

添加文件的底部

127.0.0.1    www.siteurl.com
Run Code Online (Sandbox Code Playgroud)


小智 5

<VirtualHost *:80>
    DocumentRoot "D:/projects/yourdirectry name"
    ServerName local.yourdomain.com
    <Directory "D:/projects/yourdirectry name">
        Require all granted 
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

保存 Apache 配置文件。

有关详细信息,请参阅


小智 5

在您的磁盘驱动器:\xampp\apache\conf\extra\httpd-vhosts.conf 中存在一个示例,您可以使用您的配置对其进行编辑:

 ##<VirtualHost *:80>
 ##ServerAdmin webmaster@dummy-host.example.com
 ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
 ##ServerName dummy-host.example.com
 ##ServerAlias www.dummy-host.example.com
 ##ErrorLog "logs/dummy-host.example.com-error.log"
 ##CustomLog "logs/dummy-host.example.com-access.log" common
 ##</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

就像这样,作为示例,不要忘记为 localhost 本身添加 VirtualHost,以便可以在端口 80 上同时运行 phpmyadmin 和其他项目,例如我将用 store.local 项目展示

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

<VirtualHost *:80>
    ServerAdmin webmaster@store.local
    DocumentRoot "c:/xampp/htdocs/store.local/public"
    ServerName www.store.local
    ServerAlias store.local
    <Directory C:/xampp/htdocs/store.local>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

然后如上所述,您必须添加: C:\windows\system32\drivers\hosts 到文件底部

127.0.0.1    store.local
127.0.0.1    www.store.local
Run Code Online (Sandbox Code Playgroud)

重新启动 Apache 并在浏览器中尝试:

store.local or www.store.local
Run Code Online (Sandbox Code Playgroud)

也许第一次你必须这样添加:

http://store.local or http://www.store.local
Run Code Online (Sandbox Code Playgroud)

要使用其他端口,您必须在 VirtualHost 之前添加以下内容:

Listen 8081 or another which you prefer
Run Code Online (Sandbox Code Playgroud)

然后只需使用 VirtualHost 的端口,如下所示:

<VirtualHost *:8081>
ServerAdmin webmaster@store.local
DocumentRoot "c:/xampp/htdocs/store.local/public"
ServerName store.local
ServerAlias www.store.local
<Directory C:/xampp/htdocs/store.local>
    AllowOverride All
    Require all granted
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

然后重启Apache并在浏览器中尝试

store.local:8081 or www.store.local:8081
Run Code Online (Sandbox Code Playgroud)

并且只有您添加端口的项目才会在此端口上运行,例如其他项目和 phpmyadmin 仍将在端口 80 上运行