【问题标题】:Laravel Apache two or more project on developer machine开发者机器上的 Laravel Apache 两个或多个项目
【发布时间】:2020-09-13 07:30:18
【问题描述】:

我在开发者机器上有两个 laravel 项目,这台机器只启用了 80 端口。如何使用 apache 安装两个或更多项目?这是我需要的:

浏览器中的示例应该是:

       10.20.30.40/project1 
       10.20.30.40/project2
       10.20.30.40/project3
       ...

我已经在 apache 上配置了这些虚拟主机:

<VirtualHost *:80>
    ServerName 10.20.30.40
    ServerAlias 10.20.30.40/project1
    ServerPath /project1
    DocumentRoot /var/www/html/project1/public
    <Directory /var/www/html/project1/public>
    AllowOverride All
    </Directory>
    ErrorLog /var/www/project1/log/error.log
    CustomLog /var/www/project1/log/requests.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName 10.20.30.40
    ServerAlias 10.20.30.40/project2
    ServerPath /project2
    DocumentRoot /var/www/html/project2/public
    <Directory /var/www/html/project2/public>
    AllowOverride All
    </Directory>
    ErrorLog /var/www/project2/log/error.log
    CustomLog /var/www/project2/log/requests.log combined
</VirtualHost>

但不工作...任何帮助?

谢谢

【问题讨论】:

  • 你想在不同的端口上运行同一个项目吗?
  • 奥马尔。是同一端口上的不同项目,但使用 /project1、/project2 等
  • 你想用apache还是用php artisan serve命令来做?
  • apache 虚拟主机

标签: php laravel apache server virtualhost


【解决方案1】:

您的 ServerName 和 ServerAlias(可选)对于每个虚拟主机都必须是唯一的。您应该在 /etc/hosts 文件(假设 Linux 或 Mac)中定义 project1 和 project2 并设置 ServerName 属性以匹配。我认为您不需要 ServerAlias 或 ServerPath。听起来您应该在 /etc/hosts 文件中定义 project1 和 project2,如下所示:

10.20.30.40        project1
10.20.30.40        project2

然后在您的 apache 配置中:

<VirtualHost *:80>
    ServerName project1
    DocumentRoot /var/www/html/project1/public
    <Directory /var/www/html/project1/public>
    AllowOverride All
    </Directory>
    ErrorLog /var/www/project1/log/error.log
    CustomLog /var/www/project1/log/requests.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName project2
    DocumentRoot /var/www/html/project2/public
    <Directory /var/www/html/project2/public>
    AllowOverride All
    </Directory>
    ErrorLog /var/www/project2/log/error.log
    CustomLog /var/www/project2/log/requests.log combined
</VirtualHost>

【讨论】:

  • 这假定访问只能来自本地主机。如果您需要其他人访问它,他们必须以一种或另一种方式指向这些“域”,具体取决于您的网络设置方式以及它们是 LAN 还是 WAN。
  • 很多用户访问这台服务器...修改每个人的hosts文件会很头疼。我认为最好给他们一个网址:比如 10.20.30.40/project1 或 10.20.30.40/project2.... 如果可能的话
  • 所以如果这样的 url 没问题,我认为你不是在寻找虚拟主机。在最简单的情况下,您只需要一个默认服务器设置,当它们转到 10.20.30.40/project1 时,它们将位于目录 /var/www/html/project1 中,但您希望它们位于 /var/www/html /project1/公共。所以也许你可以为此使用 mod_alias 或 mod_rewrite?
猜你喜欢
  • 1970-01-01
  • 2020-02-15
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
  • 2018-06-05
  • 2018-11-12
  • 2017-03-06
  • 1970-01-01
相关资源
最近更新 更多