【发布时间】: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 服务器的正确套接字或端口。