Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache laravel多个站点主机的正确服务器配置_Apache_Laravel_File Permissions_Vps - Fatal编程技术网

Apache laravel多个站点主机的正确服务器配置

Apache laravel多个站点主机的正确服务器配置,apache,laravel,file-permissions,vps,Apache,Laravel,File Permissions,Vps,我在vps上上传了一个laravel项目,我不知道如何配置所有东西: vps上不止一个站点(laravel项目);(这很棘手,因为我发现的所有配置示例都在谈论将服务器的根指向公共laravel文件夹) 具有.env和.composer以及所有无法直接访问的系统文件夹 在各种文件夹上设置的正确用户和权限 在我的系统中: 具有标准权限的www数据经典apache组 非root用户,甚至用于访问mysql和ftp服务 根用户 我在ubuntu服务器16.04上使用apache2。根据这个问题,我假

我在vps上上传了一个laravel项目,我不知道如何配置所有东西:

  • vps上不止一个站点(laravel项目);(这很棘手,因为我发现的所有配置示例都在谈论将服务器的根指向公共laravel文件夹)
  • 具有.env和.composer以及所有无法直接访问的系统文件夹

  • 在各种文件夹上设置的正确用户和权限

在我的系统中:

  • 具有标准权限的www数据经典apache组
  • 非root用户,甚至用于访问mysql和ftp服务
  • 根用户
    我在ubuntu服务器16.04上使用apache2。

    根据这个问题,我假设您希望在VPS上托管多个Laravel站点,而不会搞砸任何事情<我们开始了! 假设您在
    /var/www
    目录中创建了站点的目录,因为它是基本Apache目录所在的位置。

    站点1的配置:
    ->站点1的虚拟主机

    ->站点2的目录(在此处上载您的项目):
    /var/www/site2



    这是诀窍!由于Laravel的
    index.php
    文件位于项目的Public文件夹中,因此您的域将指向特定站点的
    /var/www/site-x/Public
    文件夹!他们将在自己的
    /var/www/site-x/
    目录中拥有自己的
    composer
    config
    文件

    因此,这就是如何在同一VPS上托管多个Laravel站点,而不会造成任何混乱!我在用同样的技术!我认为这是唯一一个这样做的诀窍!让我知道这是否有效

    您可以创建多个虚拟主机,并为每个laravel文件夹定义不同的路径,以确保您有权更改apache配置@Rodrane我不能简单地将varius文件夹以正确的权限放入每个公用文件夹的.htacces?一个测试环境是否不适合真正的用户,或者是否可以从用户那里以某种方式访问,即使没有dns也可以工作,并且两者都指向同一端口?我没有www.site2或其他什么。。。只是一个普通的ip地址,您必须将域指向服务器的ip(记录)。除此之外,Apache将处理回答中给出的技巧!因此,没有dns是不可能的
    <VirtualHost *:80>
        DocumentRoot "var/www/site1/public"
        ServerName www.site1.com
    
        # Other directives here
    </VirtualHost>
    
    <VirtualHost *:80>
        DocumentRoot "var/www/site2/public"
        ServerName www.site2.com
    
        # Other directives here
    </VirtualHost>