在子目录中设置几个Laravel 5项目

时间:2015-05-18 19:17:25

标签: apache laravel

我正在尝试设置我的httpd.conf,以便能够在子目录中运行多个laravel项目,而无需不断更新每个项目的httpd.conf。

例如,

我希望能够访问我的网站127.0.0.1/my_projects并拥有几个动态子目录,这些子目录可以在不编辑httpd.conf的情况下启动我的特定应用程序。这可以实现吗?

3 个答案:

答案 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/publichttp://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/”等。

如果您有任何疑问,请与我们联系。很乐意提供帮助。