【问题标题】:How to change apache domain name(locally) for a laravel site on ubuntu?如何在 ubuntu 上更改 laravel 站点的 apache 域名(本地)?
【发布时间】:2018-08-05 04:08:09
【问题描述】:

在我的应用程序中大家好,我想将 laravel 在运行 php artisan serve 时用于服务站点的普通 http://127.0.0.1:8000/ 更改为 example.com,并且这应该具有像 app1.example.com 和 app2.example.com 这样的子域。

我主要尝试通过在etc/apache2/sites-available/example.com.conf 中创建一个 .conf 文件来为我的站点创建一个虚拟主机,它的外观如下:

<VirtualHost *:80>


    ServerAdmin webmaster@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /home/tangaye/sites/example/public/index.php

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

之后,我通过运行 sudo a2ensite example.com.conf 和 sudo service apache2 reload 重新加载 apache2 配置和 sudo service apachIe2 restart 来启用我创建的虚拟主机,然后将我的站点指向的地址添加到 /etc/hosts:

127.0.0.1   localhost    example.com
127.0.1.1   tangaye

当我从我的 laravel 站点目录运行 php artisan serve 后,我仍然看到我的站点是这样启动的:

Laravel 开发服务器启动:http://127.0.0.1:8000

毕竟我做了这么多,我希望看到这个:

Laravel 开发服务器已启动:example.com

最糟糕的是,当我尝试在浏览器中访问 example.com 时,它往往会在互联网上搜索它。

在这一点上,我真的不明白我到底在做什么。我想要的只是能够自定义我的站点域名 LOCALLY 并添加其他子域。 将不胜感激任何帮助。谢谢!

【问题讨论】:

    标签: php laravel apache


    【解决方案1】:

    您不能在/etc/hosts 中指定端口号。没有办法绕过那部分。

    您应该可以在 localhost 定义之后抛出 example.com:

    127.0.0.1 localhost example.com
    

    然后它也将解析为 127.0.0.1 ...那么这只是 Apache 中基于名称的托管配置的问题。您的文件看起来不错,但DocumentRoot 指定的是文件夹,而不是文件。请记住执行a2ensite 以启用您的站点(实际上只是在sites-enabled 中创建一个指向sites-available 文件的符号链接)并重新启动Apache。

    为避免您的浏览器将网址解释为搜索词,您可以为其添加前缀http://

    【讨论】:

    • 对我如何在 Apache 中进行基于名称的托管配置有想法吗?我也做了你建议的改变,但还是没有运气。
    • sites-available 中的文件控制 Apache 的基于名称的托管。规则集使用ServerName 中的值。使用ping example.com 验证名称解析...它应该达到 127.0.0.1。查看启用站点以确认符号链接存在。这就是它的全部内容。
    • 我得到:ping:未知主机 example.com
    • 那么它没有正确添加到/etc/hosts。仔细检查。在您的计算机尝试使用 DNS 进行名称解析之前会查阅该文件。
    • 哦,我疯了,我在 /etc/hosts 的 example.com 之前添加了 http:// 它现在正在 127.0.0.1 上进行 ping 操作
    【解决方案2】:

    请注意,PHP 的内置开发服务器和 Apache 是提供 PHP 网页/应用程序的两种完全不同的方式。

    php artisan serve 是一种快速开发工具,无需设置成熟的 Web 服务器(例如 Apache)即可轻松访问 PHP 项目。你只需要 PHP 就可以运行 Laravel 或其他 PHP 项目。 (同样重要的是要注意,这应该仅用于开发,切勿用于生产。)

    另一方面,Apache 是一个功能齐全的 Web 服务器,具有所有的花里胡哨,包括虚拟主机管理。它在端口 80 上工作,因此无需将端口添加到您的 URL。

    如果您想在开发环境中使用命名 URL,您应该:

    1. 安装 Apache
    2. 配置 Apache,包括虚拟主机和 PHP 配置。
    3. 修改您的 hosts 文件,将您选择的开发域名指向您的本地机器(或为您的应用程序提供服务的机器,如果您选择使用此类工具,可以是 Vagrant box、Docker 等)。
    4. 根本不用php artisan serve。

    【讨论】:

    • 我已经安装了 apache。至于配置,我不知道我的配置有多好。我认为 apache 工作正常,因为当我将项目文件夹复制到 /var/ww/ 并在浏览器中输入 localhost 时,我看到它试图启动我的项目,只是我遇到了一些错误。
    • 您应该在帖子中包含您遇到的任何错误。您在帖子中概述的大多数步骤似乎都是正确的。当你转到example.com 时会发生什么?
    • 我终于解决了所有错误。现在我遇到的问题是我可以查看我的网站的唯一方法是在浏览器中输入localhost。 example.com 什么也没给我,但是当我 ping 它时,我在 127.0.0.1 上看到它
    猜你喜欢
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 2021-05-16
    • 1970-01-01
    • 2021-05-30
    • 2018-10-28
    • 2011-06-09
    相关资源
    最近更新 更多