我正在尝试设置我的httpd.conf,以便能够在子目录中运行多个laravel项目,而无需不断更新每个项目的httpd.conf。
例如,
我希望能够访问我的网站127.0.0.1/my_projects并拥有几个动态子目录,这些子目录可以在不编辑httpd.conf的情况下启动我的特定应用程序。这可以实现吗?
答案 0 :(得分:1)
您可以使用VirtualDocumentRoot
来实现此目的。
在您的情况下,您可以设置开发子域来访问您的网站。
<VirtualHost *:80>
ServerName testsites.localhost.com
ServerAlias *.test.localhost.com
VirtualDocumentRoot /var/www/dev/%1/public
</VirtualHost>
现在,如果您访问http://project1.test.localhost.com
,它会指向/var/www/dev/project1/public
,http://project2.test.localhost.com
将指向/var/www/dev/project2/public
等。
为了使其正常工作,您还必须启用模块virtual_host_alias
LoadModule vhost_alias_module modules/mod_vhost_alias.so
请注意,您必须在/etc/hosts
中为您的子域添加条目,并指出它们由127.0.0.1解析。
127.0.0.1 project1.test.localhost.com
127.0.0.1 project2.test.localhost.com
如果您不想为hosts文件中的每个子域编写条目,可以考虑设置一个简单的DNS服务器,您可以在其中通配所有子域*.test.localhost.com
和告诉他们解决127.0.0.1
您可以阅读有关动态虚拟主机here的更多信息。
答案 1 :(得分:0)
您可以通过创建&#39; my_projects&#39;来实现此目的。公用文件夹中的目录(public,public_html等)。
例如,您可以将Laravel1和Laravel2项目放在&#39; my_projects&#39;文件夹,然后您可以通过键入&#39; 127.0.0.1/my_projects/Laravel1'来访问您的项目;和&#39; 127.0.0.1/my_projects/Laravel2'。
答案 2 :(得分:0)
对于每个子项目,您需要主要2级目录,一个用于公用文件夹,另一个用于laravel应用程序。
比如说你想在127.0.0.1/my_projects中运行几个laravel应用程序。你需要在root中放置不同的laravel实例(除了它的'公共文件夹),让我们调用这些应用程序laravel1,laravel2,laravel3等。
现在,在127.0.0.1/my_projects下你想要的每个项目创建一个子文件夹,在这个子文件夹中移动相应laravel app的公共文件夹的内容,并编辑index.php文件以加载相应的bootstrap.php文件。即通往“../../laravel1/”或“../../ laravel2/”等。
如果您有任何疑问,请与我们联系。很乐意提供帮助。