【问题标题】:Homestead Site Returning "Service Unavailable"Homestead 网站返回“服务不可用”
【发布时间】:2022-02-01 19:07:24
【问题描述】:

我之前使用 XAMPP 在 Windows 10 机器上本地运行 Web 应用程序,但我正在尝试过渡到使用 Homestead。我有一个用 Laravel 5.1 编写的现有项目(是的,需要升级到更新的 8x 框架,但这不是现在的问题)。它在 XAMPP 中运行良好,但我无法使用 Homestead 让网站在本地加载。我首先尝试使用标准 nginx 服务器,但一直收到 502 Bad Gateway 错误。当我将服务器类型切换为 Apache(无论如何我都应该使用它,因为我们的登台和生产环境使用 Apache)时,我收到了“服务不可用”错误。

我已经阅读了几个具有类似问题的堆栈溢出问题,并尝试遵循这些解决方案,但没有任何效果。

这是我的 Homestead.yaml 文件:

ip: "192.168.56.56"
memory: 2048
cpus: 2
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: C:\Users\thisuser\Documents\Sites\mySite
      to: /home/vagrant/mysite

sites:
    - map: mysite.test
      to: /home/vagrant/mysite/public
      php: "7.1.33"
      type: "apache"

databases:
    - homestead

features:
    - mysql: true
    - mariadb: false
    - postgresql: false
    - ohmyzsh: false
    - webdriver: false

services:
    - enabled:
          - "mysql"

来自我的 C:\Windows\System32\drivers\etc\hosts 文件的片段:

/etc/hosts 文件在我的 vagrant box 中的相关 pat(IP 以前是 127.0.0.1,但即使在更新它并重新启动 Apache 之后它仍然不起作用):

### HOMESTEAD-SITES-BEGIN
192.168.56.56   mysite.test
### HOMESTEAD-SITES-END

我的 .env 文件(我还重新生成了密钥并运行了 composer install 和 composer dump-autoload):

APP_ENV=local
APP_DEBUG=true
APP_KEY=LZKt8EK6iEeBt3Ec1ZIi2YePKMhdfNjT

#URL for making server-side rendered absolute links on some pages
APP_URL="http://mysite.test/"

#Determines whether to store sessions in file, in database, or using memcached
SESSION_DRIVER = 'database'
SESSION_ENCRYPT = true

我要查看此站点的 URL:http://mysite.test/

在一些 stackoverflow 答案中,提到 PHP 7.3 版存在 xdebug 问题。尽管我使用的是 7.1,但我尝试运行 sudo phpdismod xdebug,但这并没有任何明显的效果。

我检查了 storage/logs/laravel.log,但没有写入任何内容。我检查了 apache 服务器日志,没有看到任何错误。 /var/logs 中完全没有 php7-fpm 日志(但有一个 php8.1-fpm 日志)。

我不确定我做错了什么。有人可以解释我缺少什么,以便我可以通过 Homestead 在本地运行该站点吗?提前感谢您提供的任何帮助。

【问题讨论】:

  • 您的 PHP FPM 服务器日志应该会告诉您问题所在。 PHP 7 已报废; PHP 7.1 多年来一直不受支持。 Laravel 5 也是如此。在这些不安全的平台上运行应用程序是不好的做法。
  • @miken32 是的,我同意,这是一个旧堆栈。该项目主要使用 Laravel 8.1 和 PHP 8 重新编写,但在完成开发和 QA 之前,我们正在生产中运行旧应用程序,并且旧应用程序需要维护。我检查了 /var/logs 但我没有看到 php7.1-fpm.log;唯一可用的 php fpm 日志适用于 8.1,即使我在 yaml 文件中指定了 7.1 并在宅基地运行 php71。您还有其他意见或建议吗?
  • 如果 PHP 8.1 正在运行,它肯定不会与 Laravel 5 很好地配合,所以这将是你问题的根源。
  • @miken32 这很奇怪,因为当我进入我的项目文件夹并运行 php -v 时,它为我提供了我在 yaml 文件 (v7.1.33) 中指定的正确版本。
  • 我没有使用 Homestead 的经验,我只是在我的笔记本电脑上运行 MySQL 和 Apache,所以我在那里帮不上什么忙,恐怕 ????????‍♂️ 我会检查您的 Apache 配置并确保它指向 FPM 服务器的正确套接字或端口。

标签: laravel vagrant homestead


【解决方案1】:

我附上.env 文件的示例。

另外,我附上etc/hosts 文件的示例。

请查看Homestead.yaml 文件,尤其是文件夹块中的文件。

所以,这里可能有一个错字:

- map: ~/mysite
  to: /home/vagrant/mysite

最后,在站点部分尽量避免添加任何 php:"" 。

【讨论】:

  • 如果您认为此答案有帮助,请将其标记为已接受。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-16
  • 2014-11-01
  • 2018-03-12
  • 2012-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多