这个标签在哪里?
我在哪里可以找到vhosts文件?
我在文档中找不到它。
<VirtualHost hostname:80>
...
SetEnv NS_ENV variable_value
...
</VirtualHost>
注意:首先,XAMPP和WAMP或Windows的其他Apache软件包之间的唯一区别是,问题是计算机上安装这些软件包的位置。
简介:vhost(虚拟主机)是一个很好的解决方案,如果您打算在php中开发许多独立项目并使它们彼此隔离,例如:
php.localhost
laravel.localhost
的Laravel项目codeigniter.locathost
的Codeigniterwordpress.locathost
的WordPress您应该已经安装了最新版本的XAMPP / WAMP。顺便说一下,就我而言,我只安装了Apache和MySQL。
*注意:默认情况下,大多数Web服务器将使用端口80作为默认端口,在某些情况下,如果您安装了另一个Web服务器(Microsoft IIS),它也使用端口80或者在其他情况下SKYPE也有时使用端口80就像某些用户在Windows 8/10中的情况一样,在这种情况下你可以做两件事
8080
,8081
等或其他一些空闲端口(注意:8080有时也会出现一些问题)我选择将Apache更改为端口8080。
注意: - 对于下一节,我们需要使用文本编辑器,如记事本或常规IDE。我使用了崇高的文本编辑器。 - 如果将Apache保留为默认端口80,请跳过此部分并转到虚拟主机
如果保留默认值,则更改XAMPP / WAMP端口(仅在必要时),然后跳转到设置虚拟主机
步骤1.编辑httpd.conf
单击配置 - > Apache(httpd.conf)或者您在此处找到C:\XAMPP\apache\conf\httpd.conf
,C:\XAMPP\apache2\conf\httpd.conf
,C:\Bitnami\wampstack\apache\conf\httpd.conf
或C:\Bitnami\wampstack\apache2\conf\httpd.conf
或类似位置的文件。
改变行
Listen 80
到8080或其他,免费端口。
Listen 8080
虽然我们打开httpd.conf
文件,但我们需要确保包括httpd-vhosts.conf
:包括conf/extra/httpd-vhosts.conf
注意:默认情况下,服务器文档位于
C:\XAMPP\htdocs
或C:\Bitnami\wampstack\apache2\htdocs
上,如果您只有一个项目或许多小测试文件,那就没问题。但是,如果您需要开发许多项目,那么建议通过虚拟主机将它们分开,如前所述。
步骤2.设置虚拟主机
c:\vhost
创建了一个你可以称之为项目等。c:\vhost
文件夹中我们创建一个子文件夹domain1或project1或任何其他,它取决于你(c:\vhost\project1
)httpd-vhosts.conf
文件C:\XAMPP\apache\conf\extra\httpd-vhosts.conf
根据您要创建的vhost数量,添加以下代码:<Directory C:/vhost>
AllowOverride All
Require all granted
</Directory>
#this is the default address of XAMPP
<VirtualHost *:8080>
DocumentRoot "C:/XAMPP/htdocs/"
ServerName localhost
</VirtualHost>
#this is the first vhost address in XAMPP
<VirtualHost *:8080>
DocumentRoot "C:/vhost/project1/"
ServerName php.localhost
SetEnv NS_ENV variable_value
</VirtualHost>
#this is the second vhost address in XAMPP for project like Laravel
<VirtualHost *:8080>
DocumentRoot "C:/vhost/Laravel-Blog/public"
ServerName laravel.localhost
</VirtualHost>
etc
注意:如果您使用Laravel项目,您可以创建无限的Laravel项目以及其他框架,如codeigniter,Yii等,关键是要在
c:\vhost\laravel1
,c:\vhost\laravel2
等上使用Laravel项目,并将c:\vhost\laravel1\public
设为DocumentRoot等,如图所示之前。每个Laravel项目都有自己的VirtualHost URL。
保存并关闭文件
一些额外的信息和说明:
localhost
<VirtualHost *:80>
8080
,则URL地址将为localhost:8080
project1.localhost:8080
等我们尚未准备好,请阅读更多内容。
步骤3.编辑Windows主机文件
C:\windows\system32\drivers\etc
中打开hosts文件,您需要管理员权限才能编辑该文件。我建议用Sublime文本编辑器直接编辑文件。127.0.0.1 project1.localhost
,保存并关闭文件。127.0.0.1 localhost
127.0.0.1 php.localhost
127.0.0.1 laravel.localhost
127.0.0.1 codeigniter.localhost
127.0.0.1 wordpress.localhost
127.0.0.1 laravel2.localhost
etc. those are just examples
保存文件
最后一步。再次启动/重新启动Apache和MySQL。
注意:在您的开发过程中,您可能会遇到缓存问题,因为您可能会冒险更新Laravel中的某些内容并且它不会出现在您的浏览器中。因此,您可能需要在本地环境中的开发过程中禁用php缓存。
在Apache(XAMPP或WAMP)文件夹中的php文件夹下打开文件php.ini
,将opcache.enable
更改为0
,如下所示:
[opcache]
zend_extension=php_opcache.dll
; Determines if Zend OPCache is enabled
opcache.enable=0
增加(替代解决方案)
重要提示:以下解决方案不适合测试Restful Api,canvas,重型解决方案等。这可能会给您带来一些麻烦,我建议使用默认端口80的虚拟主机解决方案。
可以部署临时虚拟服务器,而无需配置XAMPP / WAMP虚拟主机,启动CMD控制台并运行以下php命令:
php -S localhost:8001 -t c:\vhost\Laravel-Project\public
c:\vhost\Laravel...
路径应该改变为你的项目路径。在您的浏览器中,您只需要正确
http://localhost:8001/
关于403 Access forbidden错误的注意事项
如果在浏览到站点时出现403 Access forbidden错误,则可能需要将其添加到httpd.conf文件中:
<Directory path_to_dir>
AllowOverride none
Require all granted
</Directory>
您可以使本地主机指向不同端口号上的不同文件夹。请遵循以下简单步骤:
第1步:让你的apache听多个端口。转到C:\ xampp \ apache \ conf \ httpd.conf并搜索关键词Listen你可以看到类似这样的内容听80.现在告诉你的apache听多个端口,用下面的内容替换它
第2步:现在转到“C:\ xampp \ apache \ conf \ extra \ httpd-vhosts.conf”,这是实际播放器。在文件的末尾,您可以指定以下内容:
DocumentRoot“C:/ xampp / htdocs / project1”ServerName localhost:8001
DocumentRoot“C:/ xampp / htdocs / project2”ServerName localhost:8002
这告诉你的apache在点击不同的端口号时采取不同的文件夹。这是当你点击localhost:8001 /它将从project1获取内容,类似localhost:8002 /将指向你的project2文件夹。
通过这样做,我们在本地机器上运行2个不同的站点。
注意:每当您在httpd.conf或httpd-vhosts.conf中更改内容时,都需要重新启动Apache。
首先,以管理员身份打开记事本,然后单击file > open
。然后转到您的窗口驱动程序,现在搜索system32
文件夹,然后搜索drivers
文件夹,然后搜索etc
文件夹。
现在您将看到一个空文件的文件夹,所以不要担心在底部看到文本文档(*.txt
)。将视图更改为all files
然后您将看到vhost
文件。
打开并享受!
虚拟主机创建
注:首先打开您的编辑器(记事本等....)作为运行管理员模式,否则您无法保存这些文件。好。